RV1126 ROS2环境交叉编译及部署(基于官方Docker)

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容器中实现RV1126SDK编译,详细可参考我之前的博客《Ubuntu20.04/22.04下Docker方案实现多平台SDK编译》第2章,这里我们只研究RV1126的ROS2环境编译及部署。开发板所带的SDK解压部署后只需简单配置就可以直接编译通过,ROS1ros indigoros kinetic)也是没问题的。但是根据官方说明更新代码后,非但ROS2编译不过,ROS1也编译不过了。这里记录了ROS2交叉编译及问题解决,最后成功部署到RV1126上的整个过程。

1 SDK源码更新

不知道为什么执行下面的指令的,可以回顾

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/79317.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go 面向对象,封装、继承、多态

Go 面向对象,封装、继承、多态 经典OO(Object-oriented 面向对象)的三大特性是封装、继承与多态,这里我们看看Go中是如何对应的。 1. 封装 封装就是把数据以及操作数据的方法“打包”到一个抽象数据类型中,这个类型…

无线网络设备中AP和AC是什么?有什么区别?

无线网络设备中AP和AC是什么?有什么区别? 一. 什么是AP?二. 什么是AC?三. AP与AC的关系 前言 肝文不易,点个免费的赞和关注,有错误的地方请指出,看个人主页有惊喜。 作者:神的孩子都…

Android SDK

Windows纯净卸载Android SDK 1.关闭所有安卓相关的程序 Android StudioEmulators 如模拟器Command prompts using SDK 如appium服务 2.移除SDK相关目录 # Delete your SDK directory F:\android_sdk\android-sdk-windows# Also check and remove if present: $env:LOCALAPP…

Android耗电优化全解析:从原理到实践的深度治理指南

引言 在移动应用性能优化体系中,耗电优化是用户体验的核心指标之一。据Google官方统计,超过60%的用户会因为应用耗电过快而选择卸载应用。本文将从耗电统计原理、监控手段、治理策略三个维度展开,结合Android系统源码与实际代码示例&#xf…

QMK自定义4*4键盘固件创建教程:最新架构详解

QMK自定义4*4键盘固件创建教程:最新架构详解 前言 通过本教程,你将学习如何在QMK框架下创建自己的键盘固件。QMK是一个强大的开源键盘固件框架,广泛用于DIY机械键盘的制作。本文将详细介绍最新架构下所需创建的文件及其功能。 准备工作 在…

DAMA第10章深度解析:参考数据与主数据管理的核心要义与实践指南

引言 在数字化转型的浪潮中,数据已成为企业的核心资产。然而,数据孤岛、冗余和不一致问题严重制约了数据价值的释放。DAMA(数据管理协会)提出的参考数据(Reference Data)与主数据(Master Data&…

力扣题解:2、两数相加

个人认为,该题目可以看作合并两个链表的变种题,本题与21题不同的是,再处理两个结点时,对比的不是两者的大小,而是两者和是否大于10,加法计算中大于10要进位,所以我们需要声明一个用来标记是否进…

深度学习部署包含哪些步骤?

深度学习部署包含哪些步骤? 阶段说明示例工具模型导出把 .pt、.h5 等格式模型导出为通用格式(如ONNX)PyTorch, TensorFlow, ONNX推理优化减小模型体积、加速推理(量化、剪枝)TensorRT, ONNX Runtime系统集成将模型嵌入…

路由策略和策略路由的区别以及配置案例

区别 路由策略:路由策略是通过ACL等方式控制路由发布,让对方学到适当路由条目,比如有20条路由,只想让某个路由器学到10条,可以通过路由策略进行过滤。 策略路由:策略路由是通过定义策略和应用&#xff0c…

LeetCode 热题 100 64. 最小路径和

LeetCode 热题 100 | 64. 最小路径和 大家好,今天我们来解决一道经典的动态规划问题——最小路径和。这道题在 LeetCode 上被标记为中等难度,要求找到从网格的左上角到右下角的路径,使得路径上的数字总和为最小。 问题描述 给定一个包含非负…

JavaSE核心知识点02面向对象编程02-06(泛型)

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 JavaSE核心知识点02面向对象编程02-06&#…

LVGL对象的盒子模型和样式

文章目录 🧱 LVGL 对象盒子模型结构🔍 组成部分说明🎮 示例代码📌 总结一句话 🧱 一、样式的本质:lv_style_t 对象🎨 二、样式应用的方式🧩 三、样式属性分类(核心&#…

Github上如何准确地搜索开源项目

Github上如何准确地搜索开源项目: 因为寻找项目练手是最快速掌握技术的途径,而Github上有最全最好的开源项目。 就像我的毕业设计“机器翻译”就可以在Github上查找开源项目来参考。 以下搜索针对:项目名的关键词,关注数限制&a…

正点原子IMX6U开发板移植Qt时出现乱码

移植Qt时出现乱码 1、前言2、问题3、总结 1、前言 记录一下正点原子IMX6U开发板移植Qt时出现乱码的解决方法,方便自己日后回顾,也可以给有需要的人提供帮助。 2、问题 用正点原子IMX6U开发板移植Qt时移植Qt后,sd卡里已经存储了Qt的各种库&…

python-django项目启动寻找静态页面html顺序

目录结构 settings模块 urls模块 views模块 1.settings文件下没有DIR目录,按照各app注册顺序寻找静态页面 启动效果,直接返回注册的app即app01下的templates文件夹下的html页面 2.settings文件添加上DIR目录 启动效果,会优先去找项目下的templates文件…

MySQL索引详解(上)(结构/分类/语法篇)

一、索引概述 索引本质是帮助MySQL高效获取数据的排序数据结构(类似书籍目录),通过减少磁盘I/O次数提升查询效率。其核心价值体现在大数据量场景下的快速定位能力,但同时带来存储和维护成本。 核心特点: 优点&#…

数据集-目标检测系列- 烟雾 检测数据集 smoke >> DataBall

数据集-目标检测系列- 消防 浓烟 检测数据集 smoke>> DataBall 数据集-目标检测系列- 烟雾 检测数据集 smoke >> DataBall * 相关项目 1)数据集可视化项目:gitcode: https://gitcode.com/DataBall/DataBall-detections-10…

docker + K3S + Jenkins + Harbor自动化部署

最近公司在研究自动化部署的一套流程,下面记录一下配置流程 需要提前准备好Jenkins Harbor Git(其他管理工具也可以) 我这里的打包编译流程是Jenkins上配置打包任务-->自动到git目录下找打包文件---->项目编译后打镜像包------>打完镜像包将镜像上传到…

《用MATLAB玩转游戏开发:从零开始打造你的数字乐园》基础篇(2D图形交互)-《打砖块:向量反射与实时物理模拟》MATLAB教程

《用MATLAB玩转游戏开发:从零开始打造你的数字乐园》基础篇(2D图形交互)-《打砖块:向量反射与实时物理模拟》MATLAB教程 🎮 文章目录 《用MATLAB玩转游戏开发:从零开始打造你的数字乐园》基础篇&#xff08…

Redisson 看门狗机制

何为看门狗 看门狗机制的主要作用是自动续期锁,确保在节点完成任务之前,锁不会过期。具体来说,当一个节点获取到锁后,看门狗会定期检查该锁的过期时间,并在必要时延长锁的过期时间,确保节点可以顺利完成任…