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
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
...]
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