Model Based on C/C++ for Simulation of a 3D Snake Robot with Experimental Validation
Abstract
A simulator based on the Open Dynamics Engine (ODE) is presented in this report. The simulator is validated experimentally with varying results, but simulation speed and stability of the simulator is excellent. This report provides an overview over strategies that have been used for modeling and simulation of snake robots. The methods can be divided into three categories: mathematical models, physics engines and robot developer tools. The first is the method most commonly used in this area, while the two latter are rarely used. Developing your own mathematical model often require high-level skills in physics and mathematics, and sometimes lead to simulators with slow speeds, but you are totally in control yourself over the simulator. Physics engines handles the physics for you, and let you work with rigid bodies, joints and forces, and putting them together. They are however often designed with speed in mind, sacrificing accuracy. Developer tools are commonly based on physics engines, and provide an even simpler interface, but are typically limited to one robot type. The simulator developed in this work is a 3D simulator for snake robots with surrounding obstacles. Obstacles and parameters of the snake robots can easily be changed using functions in the simulator. Because it is built on a physics engine, modifications to the simulator itself can be made with ease once you get acquainted with ODE's interface. 'Aiko', a real snake robot developed by NTNU/SINTEF, is the inspiration behind one of the snake robot models in the simulator, and this is the robot that is used to perform the experimental validation. To validate the simulator, three tests are made, all of which are based on existing snake robot locomotion: sidewinding, sidewinding into an obstacle and lateral undulation on a flat surface. Several discrepancies are revealed, such as that the simulated snake robots move faster than Aiko in general, and are not following the same path. The latter is not the case in the sidewinding into obstacle case though, where both the simulated snakes and Aiko follow the same trajectory. The differences are blamed on the approximative physics and inaccurate integrator in ODE, and characteristic of Aiko left out of the model, including a more complex contact surface and free play in the joints. Apart from the the apparent inaccuracies, ODE is in our use considered an adequate, user-friendly physics engine that is both fast and stable. A comfortable testing environment is provided in our simulator, lacking the bothersome problems that can arise during live experiments. The results we get are, after all, qualitatively sensible, and the simulator may some day be used in development of snake robot locomotion.