前 言
本文檔主要演示ROS系統(版本:ROS2 Foxy)使用說明,包括鏡像編譯、鏡像替換,以及ROS系統測試的方法。
開發環境
Windows開發環境:Windows764bit、Windows1064bit
Linux開發環境:VMware16.2.5、Ubuntu20.04.664bit
sysroot:rk3562-Tronlong-Desktop-20.04-sysroot-[版本號].tar.gz
系統版本:Tronlong-Desktop20.04(類Ubuntu)、Linux-5.10.209、U-Boot-2017.09
ROS:ROS2 Foxy
備注:本文基于2GByte LPDDR4X、16GByte eMMC配置單板機進行演示。
術語表
為便于閱讀,下表對文檔出現的關鍵術語進行解釋;對于廣泛認同釋義的術語,在此不做注釋。

注意事項
(1)我司ROS系統源碼基于ROS官方獲取,并基于瑞芯微官方參考文檔編譯。更多詳細信息請查看“6-開發資料Rockchip官方參考文檔cnLinuxApplicationNote”目錄下的《Rockchip_Instruction_Linux_ROS2_CN》文檔。
(2)無特殊說明情況下,本文默認從eMMC啟動系統,使用DEBUG作為調試串口,使用欣瑞達的XT070YTA23R_A6LVDS電阻屏作為顯示輸出。
圖 1
1ROS系統測試
執行如下命令,配置單板機測試環境。
Target# export COLCON_CURRENT_PREFIX=/opt/ros
Target# source /opt/ros/local_setup.sh
圖 2
執行如下命令,創建Log目錄,用于保存ROS程序運行的Log。
Target# mkdir -p /root/.ros/log
圖 3
執行如下命令,啟動ROS節點訂閱消息。
Target# ros2 run demo_nodes_py listener &
圖 4
執行如下命令,啟動ROS節點發布消息,實現訂閱消息節點與發布消息節點之間的通信。此時單板機串口調試終端將會打印兩節點間通信的信息,如下圖所示。按"Ctrl + C"可退出測試程序,即讓發布消息的節點退出。
Target# ros2 run demo_nodes_py talker
圖 5
執行如下命令,查看并根據系統進程號關閉所有ROS節點。進程號請以實際情況為準。
Target# ps -a
Target# kill 2827
Target# kill 2830
圖 6
1.2基于C++的通信功能測試
執行如下命令,創建Log目錄,用于保存ROS程序運行的Log。
備注:若已創建Log目錄,可跳過此步驟。
Target# mkdir -p /root/.ros/log
圖 7
執行如下命令,啟動ROS節點訂閱消息。
Target# ros2 run demo_nodes_cpp listener &
圖 8
執行如下命令,啟動ROS節點發布消息,實現訂閱消息節點與發布消息節點之間的通信。此時單板機串口調試終端將會打印兩節點間通信的信息,如下圖所示。按"Ctrl + C"可退出測試程序,即讓發布消息的節點退出。
Target# ros2 run demo_nodes_cpp talker
圖 9
執行如下命令,根據系統進程號關閉所有ROS節點。進程號請以實際情況為準。
Target# ps -a
Target# kill 3060
Target# kill 3062
圖 10
1.3turtlesim(小海龜)測試
請通過DVI線將LVDS顯示屏連接至單板機LVDS OUT接口。然后執行如下命令,配置單板機測試環境。
備注:若已配置單板機測試環境,可跳過此步驟。
Target# export COLCON_CURRENT_PREFIX=/opt/ros
Target# source /opt/ros/local_setup.sh
圖 11
執行如下命令,創建Log目錄,用于保存ROS程序運行的Log。
備注:若已創建Log目錄,可跳過此步驟。
Target# mkdir -p /root/.ros/log
圖 12
執行如下命令,后臺運行小海龜程序。
Target# ros2 run turtlesim turtlesim_node &
圖 13
圖 14
執行如下命令,發布話題消息,使小海龜轉圈。
Target# ros2 topic pub --rate 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"
圖 15
參數解析:
ros2 topic pub:發布消息到主題;
--rate 1:發布消息速率,設置為1次每秒;
/turtle1/cmd_vel:主題名稱;
geometry_msgs/msg/Twist:發布消息類型;
{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}:發布消息的內容,線速度(linear)為x方向上的2.0、角速度(angular)為z軸方向上的1.8。
圖 16
2ROS開發
請先參考《開發環境搭建》文檔進行VMware虛擬機與Ubuntu安裝,并參考《應用開發手冊》文檔正確安裝sysroot。本小節主要演示基于上位機Ubuntu的ROS系統編譯與鏡像制作方法。
2.1開發環境搭建
打開Ubuntu終端,執行如下命令,安裝編譯所需的colcon工具。
Host# sudo apt install curl
Host# curl -s https://packagecloud.io/install/repositories/dirk-thomas/vcstool/script.deb.sh | sudo bash
Host# sudo apt update
Host# sudo apt-get install -y python3-pip python3-rosdep2 python3-rosinstall-generator python3-vcstool build-essential
Host# pip3 install -U colcon-common-extensions
Host# pip3 uninstall empy
Host# pip3 install empy==3.3.4
圖 17
圖 18
圖 19
圖 20
圖 21
圖 22
圖 23
執行如下命令,配置環境變量。
Host# export PATH=${PATH}:/home/tronlong/.local/bin
圖 24
由于篇幅過長等原因,部分內容均不逐一展示,如需獲取完整版詳細資料,請關注Tronlong創龍科技微信公眾號或官網,或者評論區留言,感謝您的支持!
審核編輯 黃宇
-
嵌入式
+關注
關注
5202文章
20538瀏覽量
335597 -
單板機
+關注
關注
1文章
44瀏覽量
18893 -
編譯
+關注
關注
0文章
695瀏覽量
35232 -
RK3562
+關注
關注
0文章
104瀏覽量
730
發布評論請先 登錄
RK3562 單板機 Linux-RT 系統開發指南:內核配置、實時性優化與案例詳解
SBC8100單板機設計及使用指南
《嵌入式 - STM32開發指南》手把手教你搭建STM32開發環境 [Windows版 - 3]
《嵌入式 - STM32開發指南》手把手教你搭建STM32開發環境 [Linux版 - 3]
基于模塊電源的船舶集控系統嵌入式單板機電源設計
嵌入式開發必備-RK3562演示Linux常用系統查詢命令(上)觸覺智能出品
RK平臺ROS2適配全指南:從編譯到運行,手把手搞定嵌入式機器人開發
RK3562單板機系統使用與開發手冊:基礎操作、升級部署與工具鏈配置(一)
3562 單板機 Linux 系統固化完全指南:從 SD 卡啟動到 eMMC 永久部署
RK3562 單板機系統開發完全手冊:U-Boot/Kernel/Rootfs 開發與性能優化
RK3562 單板機 Linux 應用開發實戰手冊:LED/CAN/TCP/UART 案例與 Python 開發(二)
RK3562 單板機多媒體開發完全手冊:視頻輸入輸出與 GStreamer 案例詳解(二)
RK3562 單板機嵌入式 ROS2 開發指南:環境搭建與工程編譯
評論