RV1126 ROS2環境交叉編譯及部署(基于官方Docker)
- 0 前言
- 1 SDK源碼更新
- 1.1 啟動Docker容器
- 1.2 更新SDK源碼
- 1.3 SDK更新問題
- 2 ROS2編譯配置
- 3 Buildroot rootfs編譯ROS2的依賴包
- 3.1 編譯問題解決
- 4 使用Docker交叉編譯ROS2
- 4.1 準備Linux(Ubuntu) PC機的依賴環境
- 4.1.1 Ubuntu PC機上安裝Docker程序
- 4.1.2 Docker更換源
- 4.2 使用Docker編譯ROS2
- 4.2.1 下載原始的Ubuntu Docker鏡像rosdep
- 4.2.2 基于rosdep,添加ROS2編譯的環境并且下載ROS2源碼
- 4.2.2.1 修改sysroot.Dockerfile
- 4.2.2.2 下載ROS2源碼
- 4.2.2.3 ROS2源碼拉取問題
- 4.2.2.3.1 問題1:Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
- 4.2.2.3.2 問題2:Could not checkout ref '2.1.x': fatal: invalid reference: 2.1.x
- 4.2.3 編譯ROS2源碼
- 4.2.3.1 取消不必要包的編譯
- 4.2.3.2 修改build_ros2.sh
- 4.2.3.3 開始編譯
- 4.2.3.4 編譯報錯
- 4.2.3.4.1 報錯1:Failed to determine the source files for the regular expression backend
- 4.2.3.4.2 報錯2:Could not find a package configuration file provided by "benchmark"
- 4.2.3.4.3 解決方法
- 5 打包rootfs并燒錄鏡像
- 6 開發板上運行ROS2 Demo
- 7 參考資料
0 前言
我的所有基于RV1126
的機器人項目都是在Ubuntu22.04
下進行開發的,在Ubuntu18.04 Docker
容器中實現RV1126
的SDK
編譯,詳細可參考我之前的博客《Ubuntu20.04/22.04下Docker方案實現多平臺SDK編譯》第2章,這里我們只研究RV1126的ROS2
環境編譯及部署。開發板所帶的SDK
解壓部署后只需簡單配置就可以直接編譯通過,ROS1
(ros indigo
、ros kinetic
)也是沒問題的。但是根據官方說明更新代碼后,非但ROS2
編譯不過,ROS1
也編譯不過了。這里記錄了ROS2
交叉編譯及問題解決,最后成功部署到RV1126
上的整個過程。
1 SDK源碼更新
不知道為什么執行下面的指令的,可以回顧