Tutorials/1.5/bullet


 * 1) This page is under construction ###


 * 1) Bullet in Gazebo (Experimental) ###

Integration of the Bullet physics library into Gazebo is still work in process. Collisions between simple shapes are functional and joints are partially supported. Effort is also being put into validating results produced by bullet and making sure they are consistent with ODE.

Before you decide to make the switch from ODE to bullet, see the bullet integration status below.


 * 1) Status of features in Gazebo that use bullet ###

Link
 * Gravity: Done
 * Inertia: Done
 * Static: Done
 * Self Collision: Done
 * Kinematic: TODO

Collision
 * Box: Done
 * Sphere: Done
 * Cylinder: Done
 * Trimesh: Convex - DONE, concave - TODO
 * Plane: Done
 * Heightmap: Need testing

Joints
 * Revolute (HingeJoint): Almost done
 * Revolute2 (Hinge2Joint): Partially implemented
 * Prismatic (SliderJoint): Partially implemented
 * Screw (ScrewJoint): Partially implemented
 * Ball (BallJoint): Partially implemented
 * Universal (UniversalJoint): Partially implemented

Sensor
 * Ray sensor - Done
 * IMU - Need testing (Done in 1.6)
 * Contact Sensor - TODO (Done in 1.6)

Bullet Physics Engine Param Loading
 * SDF: TODO (Done in 1.6)
 * Transport msgs: TODO (Setting solver and constraint params through GUI is not yet functional) (Done in 1.6)


 * 1) Installation ###

By default, installing Gazebo 1.5 will pull in bullet 2.81 (Ubuntu Precise and Quantal packages) from the OSRF repository. See the installation tutorial for instructions on how to accept software from packages.osrfoundation.org.

Note: for those in Quantal with the default libbullet2.80 package, our libbullet will conflict with it, so you will need to uninstall it first.


 * 1) Usage ###

There are two ways to configure Gazebo to use bullet:

- SDF

Locate the tag in the world SDF file and specify bullet as the value to the type attribute. See example bellow

0 0 -9.8        0.001

- Command line -e arg:

A -e option is added to the command line arguments which lets you specify which physics engine to use. This will override the one specified in the SDF. Currently "bullet" and "ode" are supported.

gazebo -e bullet

If no physics engine is specified, Gazebo uses ODE by default.


 * 1) Compatible Tutorials ###

Here are the list of tutorials that work in bullet mode. Try these tutorials and add the "-e bullet" argument to every gazebo or gzserver command.


 * 1) Gazebo Version 1.5


 * 1) Beginner


 * Install: Installation instructions
 * Quick Start: How to run Gazebo with a simple environment.
 * Components: This page provides and overview of the basic components in a Gazebo simulation.
 * Make a model: Describes models, and how to use 3rd part modeling software to create custom models.
 * Importing Meshes: How to import 3D meshes into Gazebo for use as visual and collision entities.
 * Using the GUI: How to use the graphical interface.
 * Random numbers: How to set the random number seed.
 * Subscribing to Topics: How to subscribe to gazebo topics


 * 1) Building a Robot

1. Make a mobile robot: How to make a 2-wheeled mobile robot. 1. Attach meshes: Improve visual appearance by attaching Collada meshes. 1. Add a sensor to a robot: How to add a laser sensor to a robot. 1. Make a simple gripper: Build a simple pinching gripper. 1. Attach Gripper to Robot: Connect the simple gripper to the mobile robot.


 * 1) Plugins

1. Plugins 1. Creating and Using Custom Messages


 * 1) Making a World

1. Building a World: How to populate a simulated world with simulated objects. 1. Modifying a World: How to change scene and physics parameters of a world using the GUI. 1. Programmatic World Control: How to manipulate a world through a plugin.


 * 1) ROS Integration

1. Building a ROS-enabled Model Plugin.