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

Revision history [back]

There are python bindings for the Bullet Physics engine, called PyBullet. PyBullet comes with various collision checking facilities that are fast. The python bindings also have some functionality to spawn URDFs and geometric primities. For a quick script, that should do the job.

My experiences with PyBullet are:

PRO:

  • It is easy to set up a simple experimental application.
  • The framework is fast, considering that you are coding the top part in Python.
  • The developers are responsive and helpful on github. They have quickly responded to issues, merged PRs, and even fixed bugs that we encountered.

CON:

  • PyBullet has not been designed with ROS integration in mind. So as a ROS developer, at some time frustration sets in.
  • The way the python bindings are done, it feels a lot like coding good-old C and not pythonic, at all.
  • Not all Bullet features are wrapped for Python. So, sometimes you hit a brick wall because you're missing an essential feature.
  • The architecture of the framework is complicated with a Client-Server setup and Python-C-C++-Wrappings. Hence, you need a lot of expertise to provide new features or further wrappings.