After having built a couple of small wheeled platforms (a crude attempt called XMP-1 and a slightly better one called XMP-2) I was curious what simulation tools were out there specifically geared toward robotics design.

This is just a quick summary of one of the simulation tools that are available, called Gazebo.

 

Gazebo was incredibly easy to get going – a single command line will install it onto Linux, and when run it is easy to add bits and pieces from the toolbar and get going.

I’ve yet to work through the tutorials but I’m hoping to eventually simulate XMP-2 so I can write better code easily.

 

Here is a screenshot of Gazebo, and a quick video showing some basic physics, pushing the robot into coke cans.

gazebo-crop.png

 

Video:

 

More complex movements are possible too. Here is a robot gripper with torque being applied to part of it:

hand.jpg

Video:

 

The simulation includes gravity and friction and many attributes are configurable.

The models can be created in XML files, and the tutorials look comprehensive.

The example below from a tutorial shows a snippet of a robot, where a box-shaped chassis is needed. The <pose> element contains the position (xyz, and orientation in three dimensions). The <collision> and <geometry> elements contain a <box> element which defines a box of size 0.4x0.2x0.1m in this example.

Usually they are the same; one element is used for the graphics, and the other is for the collision-detection algorithm to use.

gazebo-xml.png

 

The simulation can be connected up to real hardware or software through the use of an application programming interface (API), so it is possible to test robotics software before you've built the hardware, or you can interface your sensors and start programming movements.

It all looks extremely interesting!

Check out the second part by clicking here, which goes into detail about how to construct a model (based on a real hardware robot called XMP-2) and how to control it using external stimulus.