ArduPilot开源飞控之ROS系统简介

ArduPilot开源飞控之ROS系统简介

  • 1. 源由
  • 2. ROS系统
  • 3. 安装
    • 2.1 安装Docker
    • 2.2 安装ROS2
  • 4. 总结
  • 5. 补充资料

1. 源由

之前在ArduPilot开源飞控之硬件SBC分析中讨论过,个人角度最推荐其中两个系统是:

  1. Rpanion-server【推荐,简单】
  2. BlueOS【推荐,完备】
  3. ROS【专门讨论,开源/复杂】

从功能角度看BlueOS和Rpanion类似,BlueOS具有更加完备系统以及通过Web方式提供分析工具,换句话说,更接近商业的系统模式。

作为DIY的角度,需要能快速入手,轻松掌握,灵活集成,方便部署,因而ROS更加适合后续的学习和研究。

2. ROS系统

ROS(Robot Operating System)是一组软件库和工具,可以帮助构建机器人应用程序。从驱动程序到最先进的算法,再到强大的开发工具,ROS 拥有在一个机器人项目中所需的一切。而且它全部都是开源的。

自2007年ROS系统起步,今年都已经是2024年了,目前与Ardupilot兼容,APM官网给出可以使用的是ROS2 humble系统。

  • 发布周期:每12个月
  • 目标对象:Ubuntu LTS
  • 支持级别:3级标准
  • 层级 1 经过单元测试套件和其他测试工具的测试,包括持续集成作业、夜间作业、打包作业和性能测试。在这些平台中发现的错误或缺陷将由开发团队优先处理。在层级 1 平台中发现的重大错误可能会影响发布日期,在发布新版本之前解决所有已知的高优先级错误。
  • 层级 2 平台定期接受持续集成测试,其中包括运行构建和测试,并公开可访问的结果。预期持续集成至少应在 ROS 发行版的当前状态下的相关更改后的一周内运行一次。可能不提供包级二进制包,但鼓励提供构建工作区的可下载存档。层级 2 平台的发布产品版本中可能存在错误。已知的层级 2 平台错误将在资源可用的情况下尽力解决,并且可能在发布新版本之前进行纠正,也可能不进行纠正。一个或多个实体应致力于继续支持该平台。
  • 层级 3 平台是指社区报告表明发布是功能性的平台。开发团队不会在层级 3 平台上运行单元测试套件或执行任何其他测试。为了将平台列入此类别,安装说明应可用并保持最新。社区成员可以为这些平台提供帮助。

最近的几个系统:

  • Jazzy Jalisco (May 2024 - May 2029),Ubuntu Noble (24.04)
  • Humble Hawksbill (May 2022 - May 2027),Ubuntu Jammy (22.04)

APM官网推荐ROS2 humble系统,经过一些资料,目前最新的是iron。

  • ROS2 humble Installation
  • ROS2 iron Installation

ROS官网HowToGuide

  • How-to Guides

3. 安装

基于《ArduPilot开源飞控之lida2003套机+伴机电脑首飞》,将 ROS 2 on Raspberry Pi上安装。

本次使用:2024-03-15-raspios-bookworm-arm64-lite.img,参考:Raspbian镜像无头烧录

根据REP-2000规范、标准,在Raspberry Pi3B+上需要进行Tier 3的安装。简单尝试了下,失败!!!

所以从最简的Docker入手先装下ROS2看看,从嵌入式系统资源有限的角度看,不用Docker是比较好的一种方法,但是实验阶段,可以有两种使用方法:

  1. Docker ROS2 – UART – Ardupilot
  2. ROS2 – UART – Ardupilot

2.1 安装Docker

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh ./get-docker.sh --dry-run

参考:Install Docker Engine on Debian

在这里插入图片描述

  • dry-run测试
$ sudo sh ./get-docker.sh --dry-run
# Executing docker install script, commit: e5543d473431b782227f8908005543bb4389b8de
apt-get update -qq >/dev/null
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
install -m 0755 -d /etc/apt/keyrings
curl -fsSL "https://download.docker.com/linux/debian/gpg" | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" > /etc/apt/sources.list.d/docker.list
apt-get update -qq >/dev/null
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null
  • 实际安装
$ sudo sh ./get-docker.sh
# Executing docker install script, commit: e5543d473431b782227f8908005543bb4389b8de
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sh -c install -m 0755 -d /etc/apt/keyrings
+ sh -c curl -fsSL "https://download.docker.com/linux/debian/gpg" | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg
+ sh -c chmod a+r /etc/apt/keyrings/docker.gpg
+ sh -c echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin >/dev/null
+ sh -c docker version
Client: Docker Engine - CommunityVersion:           26.0.1API version:       1.45Go version:        go1.21.9Git commit:        d260a54Built:             Thu Apr 11 10:53:25 2024OS/Arch:           linux/arm64Context:           defaultServer: Docker Engine - CommunityEngine:Version:          26.0.1API version:      1.45 (minimum version 1.24)Go version:       go1.21.9Git commit:       60b9addBuilt:            Thu Apr 11 10:53:25 2024OS/Arch:          linux/arm64Experimental:     falsecontainerd:Version:          1.6.31GitCommit:        e377cd56a71523140ca6ae87e30244719194a521runc:Version:          1.1.12GitCommit:        v1.1.12-0-g51d5e94docker-init:Version:          0.19.0GitCommit:        de40ad0================================================================================To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:dockerd-rootless-setuptool.sh installVisit https://docs.docker.com/go/rootless/ to learn about rootless mode.To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/WARNING: Access to the remote API on a privileged Docker daemon is equivalentto root access on the host. Refer to the 'Docker daemon attack surface'documentation for details: https://docs.docker.com/go/attack-surface/================================================================================

2.2 安装ROS2

$ sudo docker pull ros:iron-ros-core
$ sudo docker run -it --rm ros:iron-ros-core

安装测试

- ros2

4. 总结

ROS2直接按照Tier 3标准安装遇到一些困难,作为初学者,这种环境配置一定是最困难的。

后续,我们慢慢的来充实我们的上天计划,增加我们的“筹码”,最终让我们的计划成功!

5. 补充资料

整理一些,linux下基础的一个工具或者软件安装,很杂,所以大家找自己需要的就好。

【1】ubuntu22.04@laptop 常用基础环境安装
【2】ubuntu下安装基本开发套件
【3】ubuntu软件环境搭建及构建安装(C语言)
【4】putty登录默认安装ubuntu,中文显示乱码问题

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

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

相关文章

Unity之Unity面试题(四)

内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity之Unity面试题(四) TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心进取…

什么是并行通信、串行通信?什么是全双工、半双工、单工? 什么是异步通信、同步通信? 什么是RS232、RS485?什么是pwm?

什么是并行通信、串行通信? 嵌入式系统中的通信是指两个或两个以上的主机之间的数据互交,这里的主机可以是计算机也可以是嵌入式主机,甚至可以是芯片。主机间通信的方式一般可以分为两类:并行通信和串行通信。并行通信是指多个比特…

华为配置静态ARP示例

华为配置静态ARP示例 组网图形 图1 配置静态ARP组网图 静态ARP简介配置注意事项组网需求配置思路操作步骤配置文件相关信息 静态ARP简介 静态ARP表项是指网络管理员手工建立IP地址和MAC地址之间固定的映射关系。 正常情况下网络中设备可以通过ARP协议进行ARP表项的动态学习&…

论文略读:Window Attention is Bugged: How not to Interpolate Position Embeddings

iclr 2024 reviewer 打分 6666 窗口注意力、位置嵌入以及高分辨率微调是现代Transformer X CV 时代的核心概念。论文发现,将这些几乎无处不在的组件简单地结合在一起,可能会对性能产生不利影响问题很简单:在使用窗口注意力时对位置嵌入进行插…

华为再次布局新行业:合作伙伴已超前谋划,该领域将大有可为

华为布局新行业 华为向外界公布了一个重要信息:在过去的三年里,尽管受到美国的制裁,华为仍然成功地完成了超过13000个元器件的国产替代研发,以及4000多块电路板的迭代开发。 不仅在硬件领域取得了显著成就,在软件和生…

oracle 19c数据库W00n进程使用很多PGA内存资源的分析

今天,客户反馈测试环境的数据库PGA资源不足,报错ORA-04036: 实例使用的 PGA 内存超出 PGA_AGGREGATE_LIMIT;分析是多个W00n进程使用大量PGA-触发了BUG,对应解决办法就是打补丁。(民间办法就是KILL进程、重启数据库&…

3d视图模型乱了怎么调?---模大狮模型网

在进行3D建模时,有时候您可能会遇到视图模型混乱的情况。这可能是由于模型结构问题、导入导出错误或编辑操作不当等原因造成的。混乱的模型不仅影响工作效率,还可能导致渲染结果不理想。本文将介绍六种有效的方法来调整混乱的3D视图模型,帮助…

【数据可视化包Matplotlib】Matplotlib基本绘图方法

目录 一、Matplotlib绘图的基本流程(一)最简单的绘图(仅指定y的值)(二)更一般的绘图(同时指定x和y的值)(三)增加更多的绘图元素 二、布局相关的对象——Figur…

Python 物联网入门指南(四)

原文:zh.annas-archive.org/md5/4fe4273add75ed738e70f3d05e428b06 译者:飞龙 协议:CC BY-NC-SA 4.0 第九章:构建光学字符识别的神经网络模块 本章介绍以下主题: 使用光学字符识别(OCR)系统 使…

多种方式打开SOLIDWORKS文件

在 SOLIDWORKS 中有多种打开文件的方法。一些最常用的方法包括双击文件资源管理器中的文件或拖放到 SOLIDWORKS 窗口中。当然,还有一种传统的方法,就是在SOLIDWORKS软件上方单击打开。 使用SOLIDWORKS“打开“命令 SOLIDWORKS 中的“打开“命令与任何其…

基于springboot实现在线考试系统设计【项目源码+论文说明】

基于springboot实现在线考试管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于JavaWeb技术的在线考试系统设计与实现的开发全过程。通过分析基于Java Web技术的在线考试系统设计与实现管理的不…

Python不可变序列类型--字符串

🥇作者简介:CSDN内容合伙人、新星计划第三季Python赛道Top1 🔥本文已收录于Python系列专栏: 零基础学Python 💬订阅专栏后可私信博主进入Python学习交流群,进群可领取Python视频教程以及Python相关电子书合集 私信未回可以加V:hacker0327 备注零基础学Python 订阅专…

ObjectMapper的具体介绍与使用

文章目录 声明一、前言二、ObjectMapper与JSONObject比较1、核心主要有三个部分:依赖包不同 2、ObjectMapper使用概述2.1、工程的pom.xml导包信息2.2、创建案例中的测试对象2.3、对象和JSON相互转化2.3.1、测试代码2.3.2、测试结果展示 2.4、集合和JSON像话转化2.4.…

Matlab|电价型负荷需求响应(考虑电价变化)

程序复现来源于《计及需求响应消纳风电的电-热综合能源系统经济调度 》第四章内容。 一、原理 需求响应的基本原理是需求侧根据电力市场价格和电网要求改变其负荷需求以 获取一定的利益回报。其中 PDR 可通过直观的电价变化信号引导用户调节用电方式, 从而达到优…

Qt for Android 开发环境

在搭建环境时开始感觉还挺顺利的,从 Qt 配置的环境里面看并没有什么问题,可真正编译程序的时候发现全是错误。 最开始的时候安装了 JDK21 最新版本,然后根据 JDK21 安装 ndk, build-tools, Platform-Tools 和 Gradle,但是不管这么…

零基础自学Python,啃透这五本书就够了!

选择合适的学习资源 在自学Python的前期,选择一本适合初学者的Python入门书籍或在线教程,从基础开始学习,好的入门书籍或在线教程会按照逻辑顺序组织知识,从基础概念开始,逐步引导你深入学习Python编程语言。这种系统…

如何在深度学习中调用CAME

1、介绍 CAME:一种以置信度为导向的策略,以减少现有内存高效优化器的不稳定性。基于此策略,我们提出CAME同时实现两个目标:传统自适应方法的快速收敛和内存高效方法的低内存使用。大量的实验证明了CAME在各种NLP任务(如BERT和GPT-2训练)中的…

必应bing竞价广告推广开户联系方式?

随着互联网广告市场的日益繁荣与细分,必应Bing作为全球重要的搜索引擎之一,在国内市场也逐渐展现出强大的潜力与吸引力。越来越多的企业开始关注并探索必应Bing搜索广告所带来的巨大商机。其中,云衔科技以其卓越的专业素养和全面的服务体系&a…

stable diffusion--小白学习步骤

1.看一下Unet网络的讲解_哔哩哔哩_bilibili,了解Unet网络 2.看一下【生成式AI】Diffusion Model 原理剖析 (1/4)_哔哩哔哩_bilibili,起码要看前3/6个视频 3.看一下超详细的扩散模型(Diffusion Models)原理代码 - 知乎 (zhihu.co…

鑫鹿助贷CRM系统:助力助贷行业实现智能商业转型

数字化时代,商业竞争愈发激烈,助贷行业如何把握商机、实现高效管理、打造高回报率的商业模式,成为了助贷行业老板们比较关注的问题,而鑫鹿助贷CRM管理系统,正是这场商业变革中的得力助手,系统功能完善&…