There are a number of Robotic Simulation Systems out there covering a range of use cases, Smashingrobotics.com has a nice overview at http://www.smashingrobotics.com/most-advanced-and-used-robotics-simulation-software/.
But I want a simple tool to create and manage gaits and animations for legged NodeBot critters.
So I start working on a small browser-based simulation system, mostly as an excuse to explore some web technologies currently missing in my toolbox.
The system will consist of an editor to define the geometry of the NodeBot, and a timeline to control its motion.
The most common method for describing the geometry of a robot, is URDF (http://wiki.ros.org/urdf). URDF stands for Unified Robot Description Format and it is the standard ROS (http://www.ros.org) XML representation of a robot model.
Almost any robot can be described as a kinematic chain of links attach to each other by joints. The least amount of information we need in our system is the length of the links and the type and orientation of the joints. URDF is overkill for this project, so the internal format will be a simple JSON structure.
The editor will be able to save, edit and load geometries. It will also provide tools to customize the visual representation of links and upload STL files to replace the default boxes and cylinders.
The timeline will allow motion control at a higher level than single joint positioning.
It should be able to control the position of a chain’s end-effector using inverse kinematics, to calculate the rotation of the individual joints. The calculation will be perform by Tharp (https://github.com/dtex/tharp), an Inverse Kinematics solver, develop by Donovan Buck (@dtex).
I’ll be using Three.js (http://threejs.org) for the 3D viewer and React (https://facebook.github.io/react/) to render the UI.