Soft body robot simulation with bullet physics

I was inspired by the the grasping sandbox ROSCon talk to add more features to bullet_server to create a soft material grasping demonstration:

It takes about 60% of a cpu core so the ability to run faster than real time is limited (though running in parallel is easy). Running with a lower fidelity sphere or skimping on simulation steps isn’t recommended with soft body simulation, the most likely result is either instability, object penetration, or bodies that move without any external forces other than gravity.

A pure rigid body version takes much less cpu so can be made to run possibly at 10x real time.

Since I started this project the Bullet Physics Library has added a lot of python support and made a client server architecture that might make a lot of what I’ve done redundant, but there still needs to a be (an even more) thin layer to turn bodies into rviz Markers for visualization, publish their positions into tf, and spawn and manipulate them through service calls and topics.

I’d like to next turn the gripper into a five fingered hand, and try anchoring soft body finger tips to each to see how well grasping a soft body with another soft body works, as well as grasping a rigid object.

A Bullet feature unimplemented in bullet_server is the fracturing capability, it would be interesting to make rigid bodies that will shatter under too much strain and see how well the grasping works.

1 Like