
About
This site documents the Gazebo-Siconos repository, a fork of the upstream Gazebo repository on bitbucket, extended to feature an experimental physics back-end powered by Siconos.
Gazebo is a simulation interface for robotics, featuring integration with ROS, and supports multiple physics back-ends. The upstream repository can be found at bitbucket, with an active pull request for the project open here.
See here to find more information on Siconos, the non-smooth dynamical systems simulation framework for C++ and Python.
Try with Docker
To try this experimental Gazebo without compiling it yourself, you may run a pre-built Docker image.
Pre-requisites
Since Gazebo is a graphical application, we piggy-back off the Nvidia effort to make Docker work with graphics cards. Therefore using this Docker image requires nvidia-docker, and only works for Linux-based operating systems with Nvidia graphics cards.
For Mac or Windows, you must build Siconos and Gazebo on your local system outside of a container, which requires some more work; instructions will be added here in the future, or you may adapt from the Dockerfile.
Docker run command
This is the basic command, in all its glory, needed to get a prompt allowing to test Gazebo:
nvidia-docker run --rm -it --net=host --privileged
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw"
-v ~/.Xauthority:/root/.Xauthority --env=DISPLAY
siconos/gazebo /bin/bash
You may need to customize it, e.g., to add a volume with -v
in order
to make your world file accessible.
It is recommended to test that X11 and OpenGL are correctly made available by running the following commands within the container’s bash prompt:
# apt-get update -y && apt-get install -y xterm mesa-utils
# xterm # should open a new console window, tests X11 without GLX
# glxgears # should open a window with spinning gears using OpenGL
If these tests are successful, you can run Gazebo as detailed in the next section.
Testing
To run Gazebo with Siconos, you must specify the physics engine with
-e
. It is also recommended to start with physics paused, by
specifying -u
:
# gazebo -e siconos -u <filename>.world
You can also just replace /bin/bash
in the nvidia-docker
command
above with gazebo -e siconos -u
.
Providing a world file is optional, otherwise you can click on “Insert” in the top-left and insert any Gazebo models available in the online repository. Note that as this is a project in development, not all models work yet.
One that does work is “Simple Arm”, which we recommend testing first, as it demonstrates a simple mechanism with two joint types.
You may also compare against other physics backends by changing
siconos
for ode
, bullet
, or simbody
. Currently the dart
engine is not included in this build.
Build the Docker image yourself
This is optional. If you wish to build it yourself instead of relying
on the uploaded pre-built image, you may do so using a Dockerfile and
the docker build
command.
Once downloaded, build the image using the command,
# cd <path containing Dockerfile>
# docker build -t gazebo-siconos .
It may take an hour or two, as it installs several Ubuntu “dev” packages, downloads and builds Gazebo and Siconos pre-requisites, then builds Siconos and Gazebo. You should have around 10 GB of hard drive space available. This image erases the source files before cleaning up so as to save space, so the final image should be around 2 GB.
Removing the rm
and other clean-up commands allows to use this
environment for development, should you wish to contribute.
Physics tests
The following is a table documenting what tests can be run for various Gazebo physics features.
TODO, add the table.
Results
TODO, add some results of simulations listed above, as embedded plots, screenshots and videos, or links to YouTube.