Robotics StackExchange | Archived questions

Inconsistent contact behaviour on similar surfaces

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 marbletable model but not on other objects with similar physics properties (e.g. a cube or the groundplane 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 maxvel, mindepth bouncethreshold and restitutioncoefficient 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!

Asked by Rellum on 2022-12-17 16:11:40 UTC

Comments

Answers

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 tag within the tag.

Asked by Gavriel-CTO on 2023-01-01 06:43:49 UTC

Comments