Hello,
I’ve created a model of a spherical mobile robot rolling on the floor, actuated by two internal rotors. The motion is based on the conservation of angular momentum, and I apply motor torques to simulate the robot’s movement.
However, during faster or more complex motions, the spherical shell appears to slip on the floor and deviates from its intended path. For instance, when I set the motor torques as T₁ = 0 and T₂ = 0.2, and orient the robot to move in a straight line with constant acceleration, it initially follows the expected trajectory. But after some time, it begins to slip and follows a more complex 2D path.
Since I need to simulate the robot under the assumption of perfect rolling contact (i.e., no slipping), I would greatly appreciate any guidance on how to enforce or model this constraint accurately in CoppeliaSim.
Thank you!
Define a Perfect Rolling Contact
Re: Define a Perfect Rolling Contact
Hello,
you won't be able to achieve a perfect dynamics simulation: errors, even small ones, will gradually accumulate and become visible.
In addition, how well you will be able to simulate a specific aspect highly depends on the used physics engine (you haven't mentioned which one you are using): some engines allow to adjust several parameters related to friction and contact handling.
Finally, in your situation, since you need a ideal behavior, I would go with a kinematically simulated robot (i.e. do not use dynamics). It should be quite straight-forward to compute the next position of the robot based on the rotation amounts of the spheres.
Cheers
you won't be able to achieve a perfect dynamics simulation: errors, even small ones, will gradually accumulate and become visible.
In addition, how well you will be able to simulate a specific aspect highly depends on the used physics engine (you haven't mentioned which one you are using): some engines allow to adjust several parameters related to friction and contact handling.
Finally, in your situation, since you need a ideal behavior, I would go with a kinematically simulated robot (i.e. do not use dynamics). It should be quite straight-forward to compute the next position of the robot based on the rotation amounts of the spheres.
Cheers
Re: Define a Perfect Rolling Contact
Thank you for your response.
I have used the MuJoCo engine for this problem with its default settings. As you mentioned, achieving a perfect dynamic simulation is not possible. However, I would like to model the rolling constraint between the spherical robot and the ground as closely as possible to the ideal (non-slipping) rolling condition. I would be very grateful if you could provide guidance on how to configure the MuJoCo engine settings to better model such constrained motion.
Best regards,
I have used the MuJoCo engine for this problem with its default settings. As you mentioned, achieving a perfect dynamic simulation is not possible. However, I would like to model the rolling constraint between the spherical robot and the ground as closely as possible to the ideal (non-slipping) rolling condition. I would be very grateful if you could provide guidance on how to configure the MuJoCo engine settings to better model such constrained motion.
Best regards,
Re: Define a Perfect Rolling Contact
You will have to look at Mujoco's 3 friction values mujoco.friction and maybe also mujoco.solref and mujoco.solimp. You'll need to play with those values and find the combination that best handles your task.
Cheers
Cheers