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源码更新
不知道为什么执行下面的指令的,可以回顾