Can you suggest the Gazebo plugin for the Mecanum wheel robot ? Because planar move and ros force based move don't work for me

asked 2019-07-14 05:51:37 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Hi, I am quite new to ROS and Gazebo. I have try the planar move plugin for my Mecanum robot. It seem to be good except that the this plugin override physics. That means even I change mass, inertia, friction in URDF of my robot. There is no effect. When I move robot 1000 kg or 1 kg it yield the same results. Therefore I use ros force based plugin for my multiple Mecanum robots instead of the planar move. refer to

You can check the ros_force_based_move plugin here

However, I still found a problem here.

  • When I spawn the robot, there are always offset of robot position in my map and also the yaw direction offset for 90 degrees. Hence, I have to edit the arguments for static transform node in order to solve this problem. Here are some parts of my launch file to call a single robot with the namespace.

<node pkg="tf" type="static_transform_publisher" name="odom_map_broadcaster" args="0 0 0 0 0 0 /map $(arg robot_name)/odom 10" />

Note that when I set to 0 0 0 0 0 0 the robot will offset in Rviz when compare to the Gazebo So I have to change the offset here. But when I use the original planar move there is no problem.

  • When I move robot sideways in the y-axis, the odometry in Rviz does not change even though in gazebo it has change position already. For move straight and backward in X-axis, there is no problem.

Here is the part of my URDF file to call the plugin in

<gazebo> <plugin name="ros_force_based_controller" filename=""> <commandTopic>cmd_vel</commandTopic> <odometryTopic>odom</odometryTopic> <odometryFrame>odom</odometryFrame> <odometryRate>100.0</odometryRate> <robotBaseFrame>base_link</robotBaseFrame> <publishOdometryTf>true</publishOdometryTf> <yaw_velocity_p_gain>500</yaw_velocity_p_gain> <x_velocity_p_gain>1000</x_velocity_p_gain> <y_velocity_p_gain>1000</y_velocity_p_gain> <cmdVelTimeOut>0.25</cmdVelTimeOut> </plugin> </gazebo>

Finally, I have studied from ridgeback robot simulation from Clearpath robotics. It seems that they modify the ros force based move to not publish odometryTF. But they use this information from "gazebo_ros_control" instead. This simulation is work for me. But I can't migrate code to make multiple Mecanum robots. So I still looking for the best solution plugin for my multiple mecanum robot.

The link of Ridgeback robot URDF is here

edit retag flag offensive close merge delete