SIMNOS Robot simulator
BackgroundTo accelerate the development of control strategies for CRONOS, a virtual robot ‘SIMNOS’ has been built to provide a highly reconfigurable simulation of CRONOS in a dynamic environment. This simulation replicates the large numbers of degrees of freedom and general composition of the real robot and it has been created using Ageia PhysX, which provides a scalable, highly stable, soft real-time physics engine on desktop PCs and gaming platforms. The availability of cheap physics processing hardware developed for the PhysX engine will allow large scale environments consisting of thousands of interacting dynamical objects to run in real time on a modern PC, enabling the provision of a rich environment for SIMNOS to explore.

Figure 1. User view of SIMNOS with debug data showing muscle anchor locations (small spheres), connecting the linear muscles (rendered here as thick red lines). The robot body and environment are rendered in real time and a simple mouse and keyboard interface allows user interaction, applying external forces as desired.
CRONOS’ skeletal body components are modelled in SIMNOS as jointed rigid bodies, with spring-damper systems at each joint in place of the un-powered elastic tendons. The muscles on CRONOS consist of a length of Dyneema kiteline wound around a rotary motor axis, situated at the first anchor site of the muscle. The free end of the line attaches to the second anchor site via a piece of elastic shock cord. By winding in the line, after all slack has been removed in both kiteline and cord, the elastic element pulls the anchor points together. The design of the series-elastic actuator restricts the possible forces developed in the system to pulling on the anchor points. The simulated CRONOS muscle abstracts from this system and models the muscle with a single parallel spring-damper system with asymmetrical conditioning of the system stiffness and damping coefficents.
Whole body movements and controller issues
The elastically coupled multi-degree of freedom structure and series-elastic actuators provide robustness to failure induced through unplanned environment impacts. All body loads are transferred throughout the structure and so, unlike traditional robotics platforms, all limb movements and robot-environment interactions are whole body movements. Control of SIMNOS and CRONOS must be performed within the context of both the local limb actuation and the composite body movement that results from this.
Sensory data and spike train coding
The sensory data generated by this simulator includes 25 Euler angle values that monitor the relative rotations of thorax-pelvis and head-thorax and every degree of freedom in each hand, arm and shoulder complex. The robot is currently equipped with 41 muscles and the current length is available for each muscle, together with the control values that were issued to it, giving a total of 164 values per time step. The virtual robot is configurable to have either one or two eyes, which provide a continuous visual stream from the virtual environment. To interact with the SpikeStream simulator a simple model has been developed to convert the real valued sensor data into a time varying spike train.

Figure 2. Camera view from SIMNOS of the above scene. The video stream can be connected to through a simple TCP/IP protocol, and provides a colour image stream as well as a depth map for each frame of simulation.
At present, SIMNOS' environment contains rigid bodies that are either simple geometrical shapes or triangular meshes. Objects in the virtual environment can be loaded and used with two levels of interactive complexity. In the simplest mode a cube or sphere bounds the object and this is used primarily for visualisation purposes. In the second mode an object model is loaded that creates a physical surface for each triangle of the model mesh. Jointed dynamic models can be added to the environment and cloth- and fluid-based objects are also possible within the PhysX framework. These are currently being developed for use in the simulator.


Figure 3. Two views of a simple example environment, with a novel object with which the simulated robot can interact. The object being held has various interesting properties including a colour changing behaviour activated by a specific shaking motion. In the bottom left hand corner of each scene, the visual output from the robot camera is also shown. In this configuration a space varying retina simulation is used.
The simulator has been designed so that all the parameters of the robot and its environment can be updated and reloaded during simulation, either using a graphical interface or an XML file. This enables various configurations of muscles, limb proportions and other muscular structural properties to be altered and updated during simulation. Sensory data can be retrieved and muscle command data set in the simulator using a TCP/IP socket communication protocol, an example client written Java will be made available.
Automatic discovery of musculature models
It is desriable for a robot to have the ability to learn its body topology, and the required muscle function for behavioural control, automatically.
Recently, a simple set of experiments have shown that clustering of neighbouring and joined muscles and limbs is possible using the proprioception available,
where a measure of mututal information between each pair of proprioceptive receptors in the robot body is used as a measure of topological closeness. Furthermore,
extension of the mutual information measure to include one of the receptors conditioned on the time of receptor value provides information about the causal relationships
in the system, locating which of the system values are muscle control inputs.
The website is maintained by Richard Newcombe.

