Robotics StackExchange | Archived questions

Single wheel drive plugin - ROS + Gazebo + MoveIt

Hi,

I'm having a problem with configuring robot with a single motorized wheel (it can rotate around two axis, let's say x and z) and 2 passive wheels. I was wondering if there is a plugin avaliable for this kind of mechanism or how to do it, to be able to get odometry information (other plugins like differential drive use four wheels).

Thank you for your help!

Asked by marshall107 on 2021-12-07 04:29:59 UTC

Comments

Anyone please?

Asked by marshall107 on 2021-12-27 03:44:13 UTC

Hi @marshall107 have you seen this tutorial: https://www.generationrobots.com/blog/en/robotic-simulation-scenarios-with-gazebo-and-ros/

Asked by osilva on 2021-12-27 17:30:12 UTC

I think is closer to what you need to do, unless you want to create your own plugin

Asked by osilva on 2021-12-27 17:31:45 UTC

Answers

That's 3 very broad questions. I haven't seen any mechanism like that ready-made. The differential drive you mention is by far the closest one. I don't know if you have much more choice than to dive in and tinker with the parts.

If I was in your shoes and wanted to simulate that robot, I would probably try to find a working wheeled robot setup in Gazebo and change the links so it looks more like yours. At least you'll have a starting point. I can't recommend anything, but there are multiple ROSCon talks about racecars that seem to have shared their work. It would be helpful for future readers if you added links to what you find to this question (or answer it later when you feel more confident).

Note that MoveIt is for planning and does not simulate your passive wheels. You will need to use Gazebo for that (and don't expect much in terms of precision – contacts are difficult to simulate).

Asked by fvd on 2021-12-27 07:25:09 UTC

Comments

Thanks for your answer! I've managed to get odometry from Gazebo via this: https://github.com/mit-racecar/racecar_gazebo/blob/master/racecar_gazebo/scripts/gazebo_odometry.py To simulate my motorized wheel I used PositionJointInterface (changing angle while the robot is turning) and VelocityJointInterface (makes robot move). However I'm not sure if this is correct approach if I'm planning to use gmapping for autonomous navigation.

Asked by marshall107 on 2022-01-10 08:44:11 UTC