Behind every robot there is a story of how it was made. Though there was no mama robot or papa robot, there is a story of ideation, prototyping, debugging and the usual repeat till satisfied. In my humble opinion, if humans could be brought into this world the same way, we would all be far better off, but that is a different story and a different scheme of thinking.
A robotics simulator is kind of a nanny equivalent for a robot baby. It teaches it the basics of obeying commands, lets it foster in a safe environment, not unlike how Neo trained with Morpheus in the movie Matrix. Robots can learn from this environment and proceed to become the best version of the idea that birthed them. There are a lot of solutions easily available for people interested in taking up this task but, without doubt, the one solution which I am a huge fan of is Gazebo simulator.
Development for Gazebo began in the fall of 2002 at University of Southern California, USA. To fill the need for simulating robots in outdoor conditions, bringing together the various elements that affect the body of one, Dr Andrew Howard and Nate Koenig started work on a high-fidelity simulator. The name Gazebo, which means an outdoor pavilion-like structure, was to reflect the fact that the work was to simulate outdoor environments. A little too easy, but the fact remains that most of the work on Gazebo is done to simulate indoor environments.
The simulator to have
An ideal robotics simulator makes testing of environments and the actual robot very simple. It makes it possible to rapidly test algorithms, design robots, perform regression testing and train artificial intelligence (AI) systems that can be adaptive as well as possessive of the tenacity trait. Gazebo is a simple, easy-to-learn simulator that lets you conduct simulation of a variety of robot forms in a bevy of environment options. Gazebo possesses a very robust physics engine, high-quality graphics, and convenient programming and graphical interfaces. And as you may have guessed, if you are a regular reader of my feature in Electronics For You Plus, this software is open source and fully free to use and distribute.
Gazebo has access to multiple high-performance Physics engines including ODE, Bullet, Symbody and DART. This allows it to have dynamic simulation environments, which are a huge benefit to the developing robot as it can be configured to specific tastes.
OGRE 3d, another brilliant graphics rendering engine, is also available on Gazebo platform, thereby making sure your environment rendering is coming from the best open source engines available.
Lighting, which is a crucial element of behaviour based robotics, is extremely realistic, as are the shadows and textures. Gazebo also has provisions to generate sensor data from a huge repository of sensors in its database, which includes 2D/3D cameras, Kinect-style sensors, force-torque and so on.
In addition, there are a number of robots already available for use off-the-cuff, like the traditional PR2, Pioneer2 DX, iRobot Create and TurtleBot. There are also many ways to make your own custom bot using the platform itself. The software uses TCP/IP transport by letting you run simulation from a remote server, while allowing for interfacing through socket based messaging.
Last, since everyone we now know is on the Cloud, one way or the other, Gazebo has not left that avenue at all. It is possible to run Gazebo on your personal Cloud, or on Amazon, Softlayer or OpenStack. As always, the sheer number of people who use Gazebo are also a source of immense documentation and code, to help us small little birds out with early flight lessons.
Gazebo for robot development
Gazebo now comes with a very cool graphical model editor, so that your model can be built by utilising graphical building blocks instead of code blocks. Inclusion of torsional friction and wide-angle camera sensors for when you need to go in so much detail that you would not mind the friction of rotating wide-angle cameras. ArduPilot based plugin simulates lift and drag forces, so you can now be in 2017 vis-à-vis the drone and aircraft fad.
There is a bundle of complex robots that can now be simulated effectively in Gazebo, for example, Atlas, Valkyrie or the impressively-named Robonaut 2. The code that you run on Gazebo is the same one that you will run on your final robot. In that way, it reduces a lot of efforts from all sides.