Home | Tutorials | Wiki | Issues
Ask Your Question
0

Jackal simulator flipping and flying in Gazebo 5.1

asked 2015-06-25 10:22:05 -0500

mikepurvis gravatar image

updated 2015-06-25 12:38:58 -0500

Hi all,

I'm working on a platform related to Jackal, using Jackal's simulator as a base. This is a URDF-described robot which leverages gazebo_ros_control and diff_drive_controller. It seems to work great in Gazebo 2. Description here:

https://github.com/jackal/jackal/blob/indigo-devel/jackal_description/urdf/jackal.urdf.xacro https://github.com/jackal/jackal/blob/indigo-devel/jackal_description/urdf/jackal.gazebo

Unfortunately in Gazebo 5.1, issuing a command causes the robot to do nothing, and then abruptly leap forward in summersaults. It's as if the wheels are being held still and the chassis is being turned relative to the stationary wheel. This is especially apparent when I place the robot on a box so that the wheels are not in contact with anything at all.

Any thoughts what's going on here? Is there a good reference for a wheeled base working in Gazebo 5 with which I can compare?


To reproduce, clone the following repos into your workspace:

And run the following:

roslaunch jackal_gazebo jackal_world.launch
roslaunch jackal_viz view_robot.launch

You should be able to drive with the interactive markers, which will trigger the behaviour.

edit retag flag offensive close merge delete

Comments

Can you recommend a set of launch files to reproduce the problem?

scpeters gravatar imagescpeters ( 2015-06-25 12:26:26 -0500 )edit

Whoops, sorry for the oversight— have now added repos and launchers.

mikepurvis gravatar imagemikepurvis ( 2015-06-25 13:09:01 -0500 )edit

1 Answer

Sort by » oldest newest most voted
1

answered 2015-07-03 23:06:25 -0500

mikepurvis gravatar image

Okay, looks like the issue has to do with the built-in PID controller which is used by Gazebo to convert a commanded joint velocity into torque/effort. There doesn't seem to be any documentation covering how this works or how to set the gains for it, but a workaround (at least for ROS robots) is to disable it and instead use the PID controller built into gazebo_ros_control. Example use:

<rosparam param="/gazebo_ros_control/pid_gains">
  front_left_wheel:
    p: 10
    i: 0.1
    d: 0
</rosparam>

No more flipping and flying robots.

edit flag offensive delete link more
Login/Signup to Answer

Question Tools

Stats

Asked: 2015-06-25 10:22:05 -0500

Seen: 875 times

Last updated: Jul 03 '15