The robot can be programmed in the script language urbiscript by uploading instructions to the Urbi engine through a client application. Specific functions, competencies and parameters can be accessed by API (Application Programming Interface) as hierarchical structure called the structure tree "robot", whose small sample has been shown below. From the point of view of Urbi, each component in the tree is an object, and it contains attributes pointing to its sub-components. The leaves of the tree are called devices, and they usually match physical devices in the robot: motors, sensors, lights, camera, etc. FLASH's control system can be run on few another robots (Pioneer, PeopleBot, FLASH, EMYS, custom). The system allows to assemble the robots freely, e.g. mobile platform + head, arm + hands, etc. In consequence, the system can be applied to hybrid designs like Pioneer/EMYS, PoepleBot/customHead, and other.
Full list of structure robot
When two identical components, such as the two arms, are present in the same sub-component, an extra node is inserted in the hierarchy to dierentiate them. This node is of the Localizer type, and provides a [ ] operator, taking a Localization argument, used to access each of the identical sub-components. The Urbi SDK provides an implementation for the Localizer and Localization classes. When possible, localization should be simple geometrical qualier like right/center/left, front/middle/back or up/in-between/down.