ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Robot wabbles in gazebo

asked 2017-05-27 15:12:52 -0500

matrhint gravatar image

updated 2017-06-29 18:03:29 -0500

I have been working on a robot, and have got it to move in gazebo. Unfortunately, the robot does not go straight when given the command:

rostopic pub /cmd_vel geometry_msgs/Twist "linear: x: 1.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0"

it makes the robot move forward in a wabble or teetering way that seems like one wheel is moving at a time.

The files are located here: https://github.com/matrhint/src

A video is posted here with just joints being shown: https://youtu.be/Z8d7ynoP_RQ

A video is posted here with joints, collisions, and contacts being shown: https://youtu.be/Ye9SlvWYKrw

It appears that there may be some Issues with the wheels being off center of the joint (one higher on one side and one lower on the other), thus leading to the one stopping while the other is free to turn. I am uncertain on how to make this perfectly center. I believe this is my issue but I think I might have to resize the wheel, re-measure it, or just change the xacro file to have a more precise radius for the joint (I may have rounded it too much-- and shouldn't have rounded at all).

Thanks in advance for any help.

Update 6/29/17: I found that the wheels were (slightly) oval in shape an not perfect circle. I remade the wheels and still have the same symptom. I have also tried to change the location of the wheel joints.

edit retag flag offensive close merge delete

Comments

It would be helpful to see a video of what is happening. Even better if collision and contacs visualization is on.

chapulina gravatar image chapulina  ( 2017-05-30 19:07:26 -0500 )edit

I am out of idea to try on this issue

matrhint gravatar image matrhint  ( 2017-06-29 18:22:44 -0500 )edit
1

One thing I would try is to make the robot's collision objects into actual geometries, rather than using CAD files. Also try to add a small amount of friction in the joints and see what happens, especially the joint above the casters.

ufr3c_tjc gravatar image ufr3c_tjc  ( 2017-06-29 18:39:57 -0500 )edit

Thanks a lot for responding! I will give that a try and let you know what happens soon.

matrhint gravatar image matrhint  ( 2017-06-29 18:55:36 -0500 )edit
1

@matrhint: this seems to be really a Gazebo question, which we typically close and have people repost over at answers.gazebosim.org. Not because we don't want to help you, but because you have a higher chance of getting good answers there.

Do please link back if you open a new question.

gvdhoorn gravatar image gvdhoorn  ( 2017-06-30 01:43:37 -0500 )edit

@ufr3c_tjc: It worked! Thanks

matrhint gravatar image matrhint  ( 2017-07-03 22:04:48 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2017-07-03 22:51:33 -0500

ufr3c_tjc gravatar image

Expanding upon earlier comment:

One thing I would try is to make the robot's collision objects into actual geometries, rather than using CAD files. Also try to add a small amount of friction in the joints and see what happens, especially the joint above the casters.

Changing from CAD files to actual geometric objects simplifies the collision model object and reduces the chance that small imperfections in your CAD geometry will mess with Gazebo when it calculates collisions. From our experience, it also reduces the chance of spurious errors arising due to collision models intersecting at joint axes (even though these collisions should be turned off). We now use geometric objects for all our collision models, with CAD being visual-only. At a revolute joint, we also reduce the size of the collision object slightly so that two adjoining links do not have the collision models intersect ever. I would also guess that changing from CAD collision models would reduce the CPU intensity of the calculations.

With regards to friction, every moving joint in your URDF should have at least some friction applied. A completely friction free joint is fictitious, and will mess with Gazebo in some way. Small perturbations will have no reactive force, which will lead to odd behavior.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2017-05-27 15:12:52 -0500

Seen: 936 times

Last updated: Jul 03 '17