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