分体控制 vs 全身控制

Two real launch paths in ocs2_arm_controller, also offered as split body / full body in the open-deploy-ws arx-lift2s README.

分体控制 (split)

全身控制 (whole-body)

Meaning

Arms and body/head (and typically hands) run as separate controllers

One unified whole-body MPC controller

Arm / body

ocs2_arm_controller + basic_joint_controller (setup_body_controllers for body and head)

ocs2_wbc_controller using ocs2_wheel_humanoid

Launch

ros2 launch ocs2_arm_controller split_body.launch.py (launch_mode split_body)

ros2 launch ocs2_arm_controller full_body.launch.py (launch_mode full_body) when the robot config type is ocs2_wbc_controller/Ocs2WbcController

Lift2S menu

./quick_start.sh → Launch → Lift2S → split body

same menu → full body

split_body.launch.py is the split (分体) path. Whole-body control uses full_body.launch.py (there is no public standalone ros2 launch ocs2_wbc_controller … entry).

Packages

  • Basic Joint Controller (basic_joint_controller) — joint FSM HOME / HOLD / MOVEJ; /fsm_command is std_msgs/Int32. How-to: Use Basic Joint Controller.

  • OCS2 Arm Controller (ocs2_arm_controller) — arm MPC FSM HOME / OCS2 / HOLD (package README).

  • OCS2 WBC Controller (ocs2_wbc_controller) — private submodule; 全身 MPC. States and topics are in that package README after access.

FSM command values, Action / Service tables, and WBC Cartesian topics: FSM and Topics. Controllers index: Controllers reference.

/body_target*, /head_target*, /mode_command, and WbcCurrentState need ocs2_wbc_controller and that robot’s 全身 launch/config. Default mock demos (demo.launch.py) and 分体 do not imply those features are present; capability bits are machine-dependent. Public Taku mock uses split_body.launch.py robot:=taku; full_body.launch.py robot:=taku still needs the private ocs2_wbc_controller submodule (shipping config/ocs2/fixed_base_tcp.info is not enough).