Orccad [Simon et al., 1993; Simon et al., 1999; Simon and Girault, 2001; Simon et al., 1997] is a CAD system and approach aimed at the development of robotic systems from high-level specifications down to the implementation details. It deals with hybrid systems where continuous-time aspects relating to control laws, must be merged with discrete-time aspects related to control switches and exception handling.
The approach taken by Orccad is based on the following considerations:
A robotic application may be defined as a set of robot actions, the design of which needs expertise in several domains: knowledge in mechanics, control theory and computer science.
Most actions performed by robots can be solved efficiently through control theory and the use of feedback control loops.
The system needs to be accessible by users with different competence, from the end-user, who is mainly concerned with application specification and verification, to the control engineer, who is concerned with designing actions, to the computer scientist, who is concerned with implementation details.
Real-time mechanisms for the execution of the final system need to be
specified and verified since they influence the overall system performance.
The object-oriented paradigm and code generation need to be used to improve software reliability and reusability.
The first step in designing a control application is to identify all the necessary elementary tasks involved. Then, for each of the tasks, issues from automatic control (such as defining the regulation problem, control law design, design of reactions to relevant events) and implementation (such as the decomposition of the control law into real-time tasks, and selection of timing parameters) aspect need to be considered. Finally, all the real-time tasks should be mapped on a target architecture. During this design, the control engineer has a lot of degrees of freedom to meet the end-user requirements and Orccad aims at allowing the designer to exploit these degrees of freedom. Orccad promotes a controller architecture which is naturally “open” since it allows access to every level by different users: the “application” layer is accessed by the end-user, the “control” layer is programmed by the control expert, and the “system” layer is accessed by the system engineer. Orccad provides formalised control structures, which are coordinated using the synchronous paradigm, specifically using the Esterel language (while the control laws are periodic and can be programmed using tasks and an RTOS, the discrete-event controller manages these control laws and handles exceptions and mode switching).
The main entities used in the Orccad framework are:
A robot task (TR), the elementary task representing basic robotic actions where the control aspects are predominant.
A module task (MT), a real-time task.
A robot procedure (RP), a hierarchical composition of RTs and other existing RPs, forming more complex structures.
The RT characterizes continuous-time closed-loop control laws, along with their temporal features and the management of associated events. From the application perspective, the RT’s set of signals and associated behaviours represent the external view of the RT, hiding all specification and implementation details of the control laws. More complex actions, the RPs, can then be composed from RTs and other RPs in a hierarchical fashion leading to structures of increasing complexity. RPs can be used to fulfil a single basic goal through several potential solutions, or to fulfil a full mission specification. The Orccad methodology is bottom-up, starting from the design of control laws by control engineers, to the design of more complex missions.
More information on Orccad (p.44)