跳到正文

Wiki

完整機器人與進階例項

約 3 分鐘閱讀

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

從單執行器擴充套件為完整機器人時,保留介面契約,顯式管理每個裝置的對映和有效性。

1.示例 1:多關節對映

joint1 → 设备 A → 方向、零点、范围 A
joint2 → 设备 B → 方向、零点、范围 B

不能把先收到的幀當作第一個關節。通訊快照應保留裝置身份、時間和故障狀態;部分裝置過期時,要按整機策略決定是否允許繼續控制。

整機一次收發更適合統一 System;獨立執行器則結合 Actuator 的生命週期與故障邊界組織。

2.示例 2:真實差速底盤

沿用輪子 velocity 命令與 position/velocity 反饋,統一轉換到輸出輪軸單位。先分別校驗方向,再驗證同號目標是否前進,隨後標定輪半徑與有效輪距。

open_loop=false 表示里程計使用反饋,但仍可能因輪胎、接觸和打滑漂移。定位融合屬於後續系統整合,不能僅憑 odom Topic 存在就認定完成定位。

3.Jazzy 進階例項地圖

例項 閱讀目標
example_4、5 整合與外部感測器
example_6、14 獨立執行器與附加狀態
example_7 六自由度工程組織
example_8 傳動與電機側、關節側變數
example_10 GPIO 介面
example_12 控制器串聯和 reference 介面
example_13、15 多機器人、namespace 和多管理器
example_16 差速底盤與串聯控制
example_17 硬體狀態與診斷髮布

基礎章節只選擇構建部分例項。進階例項需按固定提交的實際目錄和說明,另行安裝依賴、構建和驗證。不存在於所用提交的例項,應先核對版本,不能直接混入其它分支檔案。

4.示例 3:按需構建

以傳動例項為例:

source /opt/ros/jazzy/setup.bash
cd ~/ros2_control_jazzy_demos_ws
rosdep install --from-paths src --ignore-src -r -y --rosdistro jazzy
colcon build --symlink-install --packages-up-to ros2_control_demo_example_8 \
  --cmake-args -DBUILD_TESTING=OFF
source install/setup.bash
ls $(ros2 pkg prefix ros2_control_demo_example_8)/share/ros2_control_demo_example_8/launch

再按實際檔名執行,先檢視 --show-args。閱讀一個例項時記錄“增加了什麼介面、元件或管理邊界”,然後再決定怎樣引入自己的工程。

4.1.框架非同步元件與通訊執行緒

框架非同步 read/write 或不同更新頻率,和 Asio 執行緒處理位元組流不是同一功能。前者排程元件,後者完成協議與裝置 IO;兩者仍要解決快照、時效和資源生命週期。

4.2.診斷與控制迴圈

get_node 等擴充套件能力應以固定原始碼版本為準。低頻狀態釋出放在非即時回撥中,不能在每輪 read 中構造大量字串並無限制釋出。

官方入口:Jazzy demos。


返回 Jazzy 總覽 · 上一篇:單執行器實物適配 · 下一篇:綜合工程與系統排錯