Gazebo | Ignition | Community
Ask Your Question

Inconsistent contact behaviour on similar surfaces

asked 2022-12-17 15:11:40 -0600

Rellum gravatar image

updated 2022-12-18 07:29:17 -0600

Hello everyone!

I am using a mini robot I made in a gazebo 11 simulation. The robot has a cylindrical shape, 5 cm in diameter, with 3 supports on the bottom placed on the edges of an equilateral triangle. It uses vibration motors to move, while the motors spin the robot uses the friction created on the supports to move in space. As an analogy, you can think of this movement as a smartphone vibrating on a table, slowly moving in some direction but in the case of this micro robot this is done in a controlled manner. An important point is that the robot should always contact a surface on all 3 supports, otherwise it's impossible to control.

image description

I managed to make a controller using ROS1 and successfully drive it to specific points. The problem is that the robot only has stable contacts on the gazebo's marble_table model but not on other objects with similar physics properties (e.g. a cube or the ground_plane with altered physics parameters).

Here is a picture of the robot on the marble table model, i have enabled the contacts visualization from gazebo. You can see 3 stable blue spheres on the place where the supports are. image description

And here is the robot on a cube that has the same properties as marble table but the contacts are continuously flashing all around the outer edge of the robot. image description

I have tried to eliminate the issue by tuning the max_vel, min_depth bounce_threshold and restitution_coefficient but nothing seems to work.

Is there a way to have stable contacts on all surfaces, is this a simulation stability issue?

Thank you for your time!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2023-01-01 05:43:49 -0600

Gavriel-CTO gravatar image

If you are not getting enough information from your contact sensors, maybe you could try increasing the max_contacts parameter of your collision elements using the <max_contacts> tag within the <collision> tag.

edit flag offensive delete link more
Login/Signup to Answer

Question Tools

1 follower


Asked: 2022-12-17 15:11:40 -0600

Seen: 155 times

Last updated: Jan 01