跳到正文

Wiki

多接口與硬件類型

約 3 分鐘閱讀

本文由簡體中文內容確定性轉換,並受版本化術語表保護。

多接口聲明不等於設備允許所有模式同時工作;組件類型也應按通信與管理邊界選擇。

1.示例 1:官方多接口實例

source /opt/ros/jazzy/setup.bash
source ~/ros2_control_jazzy_demos_ws/install/setup.bash
ros2 launch ros2_control_demo_example_3 rrbot_system_multi_interface.launch.py gui:=false

在另一個同樣 source 的終端查看控制器和接口。先閲讀該提交的配置文件,記錄實際控制器名稱,再發送切換請求,不套用其它版本的截圖名稱。

2.兩階段模式切換

prepare_command_mode_switch(start_interfaces, stop_interfaces) 檢查這組切換是否可行;perform_command_mode_switch 在框架安排的執行路徑中完成切換。

位置、速度和力矩接口名字不同,仍可能受同一設備控制模式互斥約束。硬件必須明確支持的組合、停止的模式和初始目標。

3.示例 2:選擇組件類型

類型 典型通信邊界 閲讀實例
System 多關節共用一次通信與管理 example_1、4
Actuator 獨立通信和生命週期的執行器 example_6
Sensor 只提供狀態 example_5

一條總線上的多個電機可以由一個 System 管理,不能只按“物理上是一台電機”判斷一定使用 Actuator。

4.閲讀和檢查

有哪些完整接口名?
哪些模式允许启动?
哪些模式必须先停止?
同组关节是否要求一致?
失败后硬件和控制器处在什么状态?

模式切換與生命週期是不同維度。設備 active 時仍可能需要選擇控制模式;控制器切換成功也應確認設備模式真實生效。

源碼:ros2_control_demos/example_3/hardware/rrbot_system_multi_interface.cpp。將切換檢查與 read/write 中實際使用的模式變量一起閲讀。


返回 Jazzy 總覽 · 上一篇:Harmonic差速底盤仿真 · 下一篇:從零編寫控制器