Design · Rule-Based Robot Control Software Architecture

Jul 31, 2023 | Tech Software

Figure 1: System Configuration
        flowchart TD
        Arm[Arm
n-DOF] Ext[External axes
m-DOF] Controller[Whole body controller] Stacking[Motion, force, vision, posture tasks with dynamic stacking] Arm & Ext --> Stacking --> Controller ArmControl[Control n-dof arm only] SystemControl["Coordinate (n+m)-DOF entire system"] Controller --> ArmControl & SystemControl
Figure 2: Data Structure Initialization
        flowchart LR
        Configuration[Configuration files]
        Data[Dimension, safety, limits, ...]
        Controller[Whole body controller]
        URDF[URDF
- Dynamics
- Kinematics
- Graphics] SRDF[SRDF
- Joint groups
- Group start index
- Group DOF] Check[X Check] FD[Forward dynamics] Command[Control mode handler] API[Abstract API] Configuration --> Data & Controller & URDF & SRDF & Behaviors Controller --> FD --> Command URDF & SRDF --> Check Check --> Task & Dynamics & Observer & Graphics Task & Dynamics & Observer & Graphics --> API Behaviors --> PT-1 & PT-2 & PT-3 --> Mode Task[Control task Factory] Dynamics[Dynamics Factory] Observer[Observer Factory] Graphics[Graphics Factory] Behaviors[Behaviors] PT-1[Primitive 1] PT-2[Primitive 2] PT-3[...] Mode[Control mode
Task 1
Task 2
...]
Figure 3: Robot Operation Pipeline
        flowchart LR
        World[Task & Environment]

        World --> Planning & Perception

        Perception --> Control

        Planning --> Behavior --> Control

        subgraph Planning[Behavior Planner Layer]
        Agent[AI or human agent]
        Reasoning[Reasoning]
        Subtask1[Subtask 1]
        Subtask2[Subtask 2]
        Subtasks[...]

        Agent --> Reasoning --> Subtask1 & Subtask2 & Subtasks
        end

        subgraph Behavior[Behavior Graph Layer]
        P1[Primitive 1
        --- --- ---
        goals
        constraints]
        P2[Primitive 2
        --- --- ---
        goals
        constraints]
        P3[Primitive 3
        --- --- ---
        goals
        constraints]
        P4[...]

        P1 --> | Transition | P2 --> | Transition | P4
        P2 --> | Transition | P3
        end

        subgraph Perception[Perception Layer]
        SLAM
        Vision
        Trajectory[Trajectory planner]
        MP[Motion planner]

        SLAM --- Vision
        Trajectory --- MP
        end

        subgraph Control[Control Layer]
        WBC[Whole Body Controller
        --- --- ---
        task 1, goal 1, cons. 1
        task 2, goal 2, cons. 2
        ...]
        Tasks[Tasks
        --- --- ---
        motion-force
        visual-servo
        impedance-admittance]
        Torque["τ = τ_Task + τ_Bias"]
        Position["q, q', q''"]

        WBC --> | Task specifications | Tasks --> | Control law | Torque --> | Forward dynamics | Position
        end

        Control --> Joint

        subgraph Joint[Joint Layer]
        TorqueMode[Torque Loop
        τ_Task, τ_Bias, τ_DOB]
        PositionMode[Torque Loop
        τ_Bias, τ_DOB
        --- --- ---
        Position Loop
        q, q', q'']

        DOB[Disturbance Observer
        τ_DOB]

        DOB --> | Torque Mode | TorqueMode
        DOB --> | Position Mode | PositionMode
        end
    
For the behavior graph layer, see Design · Rule-Based Behavior Graph Abstraction.