ROSE Robot Simulation

Tags: modular, nasa, robots, simulation, vision

While I was developing my first modular robotic system at NASA, I was also simultaneously developing a physics-based robot simulation package that would allow us to simulate the robot’s behavior with moderate fidelity very quickly.  Speed was more critical that perfect fidelity because the robot simulation itself was to be used in the inner loop of robot morphology and controller optimization and search algorithms.

The physics simulation was based on a modified version of the Open Dynamics Engine, which I customized to improve the fidelity somewhat.  I then wrapped it in a modular C++ framework that mirrored the modular nature of the robots themselves, making it very easily to quickly assemble a virtual robot and simulate its behavior.

Simulated WalkerIn addition to high-speed simulation, I also wanted to be able to periodically render high-fidelity images of the robot and its surroundings that could be used when simulating the robot operating under the control of its own vision. While the block-rendered image above shows the level of fidelity that was most often used in quickly simulating the rover’s contact with the environment, the image at left reveals the fidelit at which the system was capable of simulating and rendering images when needed.

This simulation system (called ROSE, for RObot Simulation Engine) was used extensively only once, in the proof-of-concept research that led up to this CEC paper on qudruped gait optimization, before the funding for the project was cut amid NASA's restructuring in the wake of Bush’s new Vision for Space Exploration.