前 言本文主要介紹創龍科技TL3576-MiniEVM評估板演示基于Ubuntu的ROS系統(版本:ROS2 Foxy)使用說明,包括鏡像編譯、鏡像替換,以及ROS系統測試的方法。適用開發環境如下。 Windows開發環境:Windows 10 64bit Linux虛擬機環境:VMware16.2.5、Ubuntu22.04.5 64bit U-Boot:U-Boot-2017.09 Kernel:Linux-6.1.115 ROS:ROS2 Foxy ROS(Robot Operating System,下文簡稱"ROS")是一個適用于機器人的開源的元操作系統。它提供了操作系統應有的服務,包括硬件抽象,底層設備控制,常用函數的實現,進程間消息傳遞,以及包管理。它也提供用于獲取、編譯、編寫、和跨計算機運行代碼所需的工具和庫函數。 我司ROS系統源碼基于ROS官方獲取,并基于瑞芯微官方參考文檔編譯。更多詳細信息請查看“6-開發參考資料\Rockchip官方參考文檔\Linux\ApplicationNote\”目錄下的《Rockchip_Instruction_Linux_ROS2_CN》文檔。 請先按照調試工具安裝、開發環境搭建相關文檔,安裝SecureCRT串口調試終端、VMware虛擬機等相關軟件。無特殊說明情況下,本文默認使用Power IN/USB TO UART0作為調試串口,使用eMMC啟動系統,通過路由器與PC機進行網絡連接,請確保PC機、Ubuntu系統可正常訪問互聯網。 評估板簡介創龍科技TL3576-MiniEVM是一款基于瑞芯微RK3576J/RK3576高性能處理器設計的4核ARM Cortex-A72 + 4核ARM Cortex-A53 + ARM Cortex-M0國產工業評估板,Cortex-A72核心主頻高達2.2GHz,Cortex-A53核心主頻高達2.0GHz。評估板由核心板和評估底板組成,核心板CPU、ROM、RAM、電源、晶振等所有元器件以及評估底板元器件均采用國產工業級方案,國產化率100%。同時,評估底板大部分元器件亦采用國產工業級方案,國產化率約為99%(按元器件數量占比,數據僅供參考)。核心板經過專業的PCB Layout和高低溫測試驗證,支持選配屏蔽罩,質量穩定可靠,可滿足各種工業應用環境要求。 評估板引出2路Ethernet、2路USB、Micro SD、UART等通信接口,同時引出2路MIPI CSI、MIPI DSI、DP Display、HDMI OUT、MIC IN/HP OUT等音視頻多媒體接口,支持4K@60fps H.265/H.264視頻編碼、8K@30fps H.265/4K@60fps H.264視頻解碼。 評估板體積小巧,尺寸為80mm*130mm,可作為卡片式電腦使用,且便于產品集成,方便用戶快速進行產品方案評估與技術預研。 評估板硬件資源圖解1 評估板硬件資源圖解2 ROS系統測試請使用網線將評估板ETH1 RGMII網口、PC機連接至同一個路由器,執行如下命令,安裝netifaces庫。 Target# apt-get update Target# apt-get install python3-netifaces 圖 1 執行如下命令,配置評估板測試環境。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 基于Python的通信功能測試 執行如下命令,啟動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 1667 Target# kill 1668 圖 6 基于C++的通信功能測試 執行如下命令,啟動ROS節點訂閱消息。 Target# ros2 run demo_nodes_cpp listener & 圖 7 執行如下命令,啟動ROS節點發布消息,實現訂閱消息節點與發布消息節點之間的通信。此時評估板串口調試終端將會打印兩節點間通信的信息,如下圖所示。按"Ctrl + C"可退出測試程序,即讓發布消息的節點退出。Target# ros2 run demo_nodes_cpp talker 圖 8 執行如下命令,根據系統進程號關閉所有ROS節點。進程號請以實際情況為準。Target# ps -a Target# kill 1765 Target# kill 1766 圖 9 turtlesim(小海龜)測試 請使用HDMI線將HDMI顯示器與評估板HDMI OUT接口連接。然后執行如下命令,配置評估板測試環境。 執行如下命令,后臺運行小海龜程序。 Target# ros2 run turtlesim turtlesim_node & 圖 10 圖 11 執行如下命令,發布話題消息,使小海龜轉圈。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}}" 圖 12 參數解析:(1) ros2 topic pub:發布消息到主題; (2) --rate 1:發布消息速率,設置為1次每秒; (3) /turtle1/cmd_vel:主題名稱; (4) geometry_msgs/msg/Twist:發布消息類型; (5) {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。 圖 13 ROS開發請先參考《Ubuntu系統使用手冊》文檔“SDK安裝”章節正確安裝SDK。本小節主要演示基于Ubuntu的ROS系統編譯與鏡像制作方法。 開發環境搭建 打開Ubuntu終端,執行如下命令,安裝編譯所需的colcon工具。 Host# sudo apt-get 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 圖 14 圖 15 圖 16 圖 17 圖 18 圖 19 執行如下命令,配置環境變量。Host# export PATH=${PATH}:/home/tronlong/.local/bin 圖 20 編譯ROS軟件包請根據交叉編譯工具鏈實際解壓路徑,執行如下命令,配置交叉編譯工具鏈。 Host# source /home/tronlong/RK3576/rk3576_linux6.1_release/ubuntu/environment 圖 21 執行如下命令,創建ROS軟件包的工作目錄,并進入該目錄,目錄可命名為任意名稱。Host# mkdir ros2_project_test Host# cd ros2_project_test 圖 22 執行如下命令,創建ROS軟件包源碼目錄,并進入該目錄。Host# mkdir src Host# cd src 圖 23 執行如下命令,在源碼目錄下生成my_package包。本案例以構建CPP功能包為例,如需構建Python功能包可將參數ament_cmake改為ament_python。Host# ros2 pkg create --build-type ament_cmake --node-name my_node my_package 圖 24 參數解析:--build-type ament_cmake :指定軟件包的構建類型為ament_cmake; --node-name my_node:為軟件包指定了一個my_node節點; --my_package:軟件包的名稱為my_package。 完成構建后,ROS軟件包源碼目錄結構如下所示。可根據實際需要對"my_package/src/my_node.cpp"進行修改。 圖 25 返回ROS軟件包工作目錄,編譯軟件包。Host# cd .. Host# colcon build 圖 26 編譯完成后在當前目錄下生成如下目錄,目錄內容如下表所示。圖 27 ROS軟件測試 請將完成編譯的ROS軟件包中install目錄拷貝至評估板文件系統"/opt/ros/"目錄下,執行如下命令配置ROS的運行環境與命令行工具。 Target# export COLCON_CURRENT_PREFIX=/opt/ros Target# source /opt/ros/local_setup.sh 圖 28 執行如下命令,加載ROS軟件包環境。Target# export COLCON_CURRENT_PREFIX=/opt/ros/install Target# source /opt/ros/install/local_setup.sh 圖 29 執行如下命令,運行ROS軟件包,可以看到當前ROS軟件包程序運行打印結果。Target# ros2 run my_package my_node 圖 30 |