.. include:: alias.rst Overview ======== This document provides the documentation for the *Robot Integrated Development Environment (RIDE)*. RIDE is a command-based programming environment for creating different robot skills via custom state machines including apps and groups. It interacts with the Franka Operating System as shown in the following figure: .. figure:: _static/overview.png :align: center System architecture overview. The Franka Operating System running on Franka robots has the following main components: * State machines, which are the basic units of execution in the system. They call operations from services, execute scripts, and may contain other state machines. All apps as seen in Desk are state machines. The model behind state machines - its syntax and semantics - is called the |rcm|. State machines are grouped together into bundles, which also store related resources such as icons. State machines are programmed in a domain-specific language called |lf| and stored in .lf files. * Services are nodes which run on Control (internal services) or any external computer (external services). They communicate with the |core| via the |race-com| library and can provide operations and publish events periodically. The most relevant service is the robot service, which provides all operations to command the robot such as move or applyForce. * The |core| orchestrates the execution of state machines, stores installed bundles and ensures that newly uploaded bundles are consistent with existing ones. It also implements three system interfaces: - The Franka Application Interface (FAI), the interface used by Desk to command and monitor the system. - The Franka Professional Interface (FPI), the interface used by |cli| to manipulate, run and install state machines and apps in the system. - The Franka Service Interface (FSI), the interface used by the |race-com| library to connect external services to the system. The Application Software layer represents the access point for users. There are currently two clients in the system: * Desk, which can start the execution of tasks (which are sequences of state machines) and trigger other specific functionalities such as opening the brakes or turning the power on or off. * |cli|, the main app development tool, which provides a command-line interface to start, compile, install, monitor and debug the execution of state machines.