分体控制 vs 全身控制¶
ocs2_arm_controller 中有两条真实 launch 路径,在 open-deploy-ws arx-lift2s README 中也对应 分体 / 全身。
分体控制(split) |
全身控制(whole-body) |
|
|---|---|---|
含义 |
手臂与身体/头(通常还有手)由各自独立的控制器运行 |
一个统一的全身 MPC 控制器 |
手臂 / 身体 |
ocs2_arm_controller + basic_joint_controller( |
ocs2_wbc_controller,使用 |
启动 |
|
当机器人配置 type 为 |
Lift2S 菜单 |
|
同一菜单 → 全身(菜单: |
split_body.launch.py 是分体路径。全身控制用 full_body.launch.py(没有公开的单独 ros2 launch ocs2_wbc_controller … 入口)。
软件包¶
Basic Joint Controller(
basic_joint_controller)— 关节 FSM HOME / HOLD / MOVEJ;/fsm_command是std_msgs/Int32。操作指南:使用 Basic Joint Controller。OCS2 Arm Controller(
ocs2_arm_controller)— 机械臂 MPC 的 FSM:HOME / OCS2 / HOLD(包 README)。OCS2 WBC Controller(
ocs2_wbc_controller)— 私有子模块;全身 MPC。状态与话题见开通后该包 README。
FSM 命令取值、Action / Service 表以及 WBC 笛卡尔话题:FSM 与话题。控制器索引:控制器参考。
/body_target*、/head_target*、/mode_command 以及 WbcCurrentState 需要 ocs2_wbc_controller 以及该机型的全身启动/配置。默认 mock 演示(demo.launch.py)和分体并不表示这些能力可用;能力位取决于机型。公开的 Taku mock 使用 split_body.launch.py robot:=taku;full_body.launch.py robot:=taku 仍需要私有 ocs2_wbc_controller 子模块(描述里有 config/ocs2/fixed_base_tcp.info 并不够)。