bulletphysics / bullet3

Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
http://bulletphysics.org
Other
12.17k stars 2.85k forks source link

Support for Omni-wheels missing? #2849

Closed dennisushi closed 3 years ago

dennisushi commented 4 years ago

I recently imported (through URDF) a robot that has a Robotnik base composed of four omnidirectional/ Swedish/ Mecanum wheels. PyBullet regards these as Revolute and does not allow for the proper lateral movement. Are there any plans for adding support for omni-wheels? Is there any possible workaround this?

yanshil commented 4 years ago

I have a mecanum wheel vehicle model where I modeled all the satelite wheels. It can somewhat generate the parallel moving behavior of omni wheels, but there is still strange behavior in the simulations. Refer to issue #2851

Moreover, this strange behavior not only shows in my mecanum robot, but also for common 4-wheel robot. So I cannot tell if the parallel moving behavior in the simulator is correct or not.

dennisushi commented 3 years ago

For anyone searching for this in the future, the best workaround I could find is to just move the base with resetBasePositionAndOrientation() for the simulation and then let a ROS controller determine the actual wheel actuation based on the state of the base centre if needed.

erwincoumans commented 3 years ago

There is a suggestion by Steve here, did you try it? https://github.com/bulletphysics/bullet3/issues/2851

JiayunjieJYJ commented 1 year ago

For anyone searching for this in the future, the best workaround I could find is to just move the base with resetBasePositionAndOrientation() for the simulation and then let a ROS controller determine the actual wheel actuation based on the state of the base centre if needed.

Hi, do you find a good way to control Omni-wheels robots? It seems that it is difficult to control a Mecanum robot in Pybullet because the complex frictions...

scpeters commented 1 year ago

we implemented support for Mecanum wheels in gz-sim with the dartsim plugin using the following changes: