ArduPilot开源代码之Companion Computers简单分析

news2024/11/15 20:10:48

ArduPilot开源代码之Companion Computers简单分析

  • 1. 源由
  • 2. 伴机系统
    • 2.1 APSync
    • 2.2 DroneKit
    • 2.3 FlytOS
    • 2.4 Maverick
    • 2.5 ROS
    • 2.6 Rpanion-server
  • 3. 总结
  • 4. 参考资料

1. 源由

从稳定性,社区群体,以及开源方式的角度看,Ardupilot是不错的选择之一。

主要有以下几个特点:

  1. 【操控性】手动
  2. 【稳定性】自动导航
  3. 【安全性】异常场景
  4. 【普及性】社区受众群体广泛

为了更好的实现智能飞行,就需要融合传感和空间感知技术。这些内容显然并非当前任意一个飞控软件能解决的,更多依赖计算能力更强大的伴机电脑系统。

在入手companion computer之前,就Ardupilot生态圈内部提供的几个伴机方案进行研习和分析。

伴机电脑就选个手边简单的板子吧,主要还是分析软件这块内容。!

在这里插入图片描述

2. 伴机系统

  • APSync
  • DroneKit
  • FlytOS
  • Maverick
  • ROS
  • Rpanion-server

注:这里仅根据companion computer提供的信息进行简单分析。

2.1 APSync

【1】APSync介绍
【2】APSync代码

  • WiFi电传
  1. WiFi Access Point
  2. UDP Telemetry (port:14550)
  3. Log Download Script

在这里插入图片描述

  • WEB配置
  1. View and modify parameters
  2. View sensor information and trigger some calibrations
  3. Modify the Wifi access point name and password
  4. View and download log files if they are stored on the companion computer
    URL http://10.0.1.128

在这里插入图片描述- 视频传输

video stream
http://10.0.1.128:8000

在这里插入图片描述

从上面特性看,更像一个摄像头+电传模块的功能集成。

2.2 DroneKit

【1】DroneKit介绍
【2】DroneKit代码

该开发工具主要应用python编程,支持Ardupilot的MAVLink接口,详见:API资料

  1. Connect to a vehicle (or multiple vehicles) from a script
  2. Get and set vehicle state/telemetry and parameter information.
  3. Receive asynchronous notification of state changes.
  4. Guide a UAV to specified position (GUIDED mode).
  5. Send arbitrary custom messages to control UAV movement and other hardware (GUIDED mode).
  6. Create and manage waypoint missions (AUTO mode).
  7. Override RC channel settings.

2.3 FlytOS

【1】FlytOS介绍

在这里插入图片描述
该系统方案分析了众多应用场景,从行业应用的角度做了平台整合。

在这里插入图片描述

显然,这个是商业运作,开源代码是木有的,呵呵。

2.4 Maverick

【1】 Maverick介绍
【2】Maverick代码

该系统从功能角度来说很多:

  1. Downloadable, ready to flash, ready to fly images for Raspberry Pi (all models), NVidia Tegra TX1/TX2, Up (Up, Squared, Core), Odroid XU4, Intel Joule
  2. Downloadable VM image for developers in OVA (Open Virtual Appliance) and Parallels formats, should run in VirtualBox, VMware, Parallels etc
  3. Permissive MIT licensing, absolute minimum restrictions on opensource or commercial usage
  4. Ability to bootstrap from any donor/vendor OS (only Debian/Ubuntu based OS supported so far, but possible to support any base OS) and create custom images
  5. Single ‘maverick’ command provides system/network info, self updating, system configuration, service control
  6. Self-contained, consistent software environments and versions across different platforms
  7. Automatic detection and configuration of platform hardware and peripherals
  8. Easy modular network configuration including managed wireless, monitor/injection, Host Access Point, Avahi, Dnsmasq, DHCP client/server, wifibroadcast
  9. Built-in security, firewall, antivirus, scanners
  10. Selective, modular Mavlink proxy, Dronekit and MAVROS configuration, supports MAVProxy, mavlink-router, cmavnode
  11. Rich web-based IDE (Integrated Development Environment) - Cloud9
  12. Full SITL environment with separate mavlink proxy, dronekit and MAVROS instances
  13. Extensive consistent software components installed on all platforms - ROS Kinetic/Lunar, ROS2, Tensorflow 1.3, OpenCV 3.4, Gstreamer 1.12.4, FPV video (visiond, camera-streaming-daemon), Orb_slam2, RTABMAP, Aruco
  14. ArduPllot development environment, compiled ArduPilot for SITL, everything necessary setup to compile and upload to Flight Controllers direct from companion computer
  15. PX4 development environment, compiled PX4 for SITL, everything necessary setup to compile and upload to Flight Controllers direct from companion computer
  16. Vision functions - automatic detection and configuration of attached digital cameras for FPV (visiond), Precision Landing with vision_landing, experimental collision avoidance with RealSense depth cameras, Thermal Image streaming with Seek Thermal and Flir One devices, experimental SLAM components ORB_SLAM2 and RTABMAP

在这里插入图片描述但是从整体架构上不难看出围绕MAVLink/ROS/Vision在做数据分析,是一个整合的系统。

注:最近一次更新Nov 12, 2021,感觉有点缺少维护了。

2.5 ROS

【1】ROS介绍
【2】ROS代码

ROS(Robot Operating System)是机器人操作系统。因为SLAM (Simultaneous Localization and Mapping)/Vision等传感器和空间定位技术的应用,随着MAVROS组件的发展,现在这块非常热门。

这里不多做介绍,其系统也是非常庞大的。
在这里插入图片描述

2.6 Rpanion-server

【1】Rpanion-server介绍
【2】Rpanion-server代码

  1. Flight Controller telemetry routing to udp outputs
  2. Video Streaming via an RTSP server
  3. Network configuration
  4. NTRIP Streaming
  5. Logging (tlog and bin logs)

该服务是基于node.js开发的,其最终应用的还是MAVLink与飞控通信。鉴于其SBC可以做视频RTSP服务,因此可以进行相关视频图像流处理。

3. 总结

从上述几个Ardupilot伴机电脑上常用的软件来看,考虑如下:

  • 不考虑商业软件(学习研究角度)
  • 从不同的维度考虑
  1. 应用角度:SLAM/Vision/SensorFusion
  2. 飞控技术:MAVLink API
  3. 仿真角度:SITL in Gazebo

4. 参考资料

【1】Ardupilot-APSync
【2】Ardupilot-DroneKit
【3】Ardupilot-FlytOS
【4】goodrobots-Maverick
【5】Ardupilot-ROS
【6】Ardupilot-Rpanion-server

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

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

相关文章

骑砍二 ATC MOD 使用教程与应用案例解析

骑砍二 ATC MOD 使用教程与应用案例解析 作者:blibli-财不外漏 / NEXUSMODS-PuepleKarmen 案例MOD依赖:ATC - Adonnay’s Troop Changer & AEW - Adonnay’s Exotic Weaponry & New Armor 文本编辑工具:VS Code(推荐使用&…

【小沐学NLP】在线AI绘画网站(百度:文心一格)

文章目录 1、简介2、文心一格2.1 功能简介2.2 操作步骤2.3 使用费用2.4 若干示例2.4.1 女孩2.4.2 昙花2.4.3 山水画2.4.4 夜晚2.4.5 古诗2.4.6 二次元2.4.7 帅哥 结语 1、简介 当下,越来越多AI领域前沿技术争相落地,逐步释放出极大的产业价值&#xff0…

Amazon CloudFront 部署小指南(四)- CloudFront Function 基础与诊断

内容简介 本文适用于希望使用 Amazon CloudFront Functions 提升 Amazon CloudFront 边缘计算能力的用户,旨在帮助您更好的进行 CloudFront Functions 的开发、调试、测试、部署等工作。 首先我们会对 CloudFront Function 做个简单的介绍,然后分为七个步…

全志F1C200S嵌入式驱动开发(应用程序开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 我们在开发soc驱动的时候,很多情况下也要验证下当前的驱动功能是否正确。当然除了验证驱动功能之外,我们还要编写业务代码和流程代码。这中间就和各行各业有关了,有的是算法,有…

Redis BigKey案例

面试题: 阿里广告平台,海量数据里查询某一固定前缀的key小红书,你如何生产上限制keys*/flushdb/flushall等危险命令以防止误删误用?美团,MEMORY USAGE命令你用过吗?BigKey问题,多大算big&#…

GODOT游戏引擎简介,包含与unity性能对比测试,以及选型建议

GODOT,是一个免费开源的3D引擎。本文以unity作对比,简述两者区别和选型建议。由于是很久以前写的ppt,技术原因视频和部分章节丢失了。建议当做业务参考。 GODOT目前为止遇到3个比较重大的基于,第一个是oprea的合作奖,…

【redis】redis的认识和安装

目录 1.redis是什么2.Redis的特点3.安装redis4.设置远程连接4.1 开启隧道4.2 可视化客户端连接4.3 开启防火墙 5.redis常见数据类型5.1 redis的一些全局命令5.2 数据结构 6. redis的典型应用---缓存(cache)6.1 使用redis做缓存6.2 缓存穿透,缓…

【绪论0】

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.0 引言No.1 操作系统的概念功能和定义一、操作系统的概念和定义1、电脑的演变 二、操作系统的功能和目标 No.2 操作系统的特征一、并发二、共享三、虚拟四、异步 No.3 操作系统的发展与分类一、手工操作阶段二、批处理阶段…

Windows11 家庭中文版关于本地组策略编辑器gpedit.msc找不到即打不开的解决办法(征诚小张售后实测有效)

Windows11 家庭中文版关于本地组策略编辑器gpedit.msc找不到即打不开的解决办法 根本原因:是因为Windows11家庭中文版的 版本系统没内置安装本地策略组编辑器 好了废话不多说 直接说解决办法 第一步 首先电脑上新建一个空文本文件 输入以下内容: echo o…

Android Studio安装AI编程助手Github Copilot

csdn原创谢绝转载 简介 文档链接 https://docs.github.com/en/copilot/getting-started-with-github-copilot 它是个很牛B的编程辅助工具,装它,快装它. 支持以下IDE: IntelliJ IDEA (Ultimate, Community, Educational)Android StudioAppC…

Qt应用开发(基础篇)——时间类 QDateTime、QDate、QTime

一、前言 时间类QDateTime、QDate、QTime、QTimeZone保存了Qt的时间、日期、时区信息,常用的时间类部件都会用到这些数据结构,常用概念有年、月、日、时、分、秒、毫秒和时区,时间和时区就关系到时间戳和UTC的概念。 UTC时间,又称…

FPGA初步学习之串口发送模块【单字节和字符串的发送】

串口相关简介 UART 在发送或接收过程中的一帧数据由4部分组成,起始位、数据位、奇偶校验位和停止位,如图所示。其中,起始位标志着一帧数据的开始,停止位标志着一帧数据的结束,数据位是一帧数据中的有效数据。 通常用…

【贪心算法】leetcode刷题

贪心算法无固定套路。 核心思想:先找局部最优,再扩展到全局最优。 455.分发饼干 两种思路: 1、从大到小。局部最优就是大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个,全局最优就是喂饱尽可能多的小孩。先遍历的胃口&a…

Win11大小写切换图标关闭方法

大家使用Win11操作系统的时候经常会切换大小写键盘,有些游戏本在游戏过程中需要切换大小写,这个时候电脑的屏幕就会出现大小写切换的图标而影响游戏体验; 那么想要关闭Win11电脑上大小写切换图标,又不知道具体怎么操作&#xff0c…

VS Code search tab

Vs Code search 栏的应用 我发现,在vs code种,上面的搜索框的功能非常多。在最初使用vscode时候,以为这只是一个普通的搜索框。后来,发现它可以用于全局搜索文件,比如使用ctrlshiftp。 后来,我发现&#xf…

lifecycleScope Unresolved reference

描述 导入了lifecycle.lifecycleScope,但是在activity中使用lifecycleScope报错出现Unresolved reference找不到引用。 导包 import androidx.lifecycle.lifecycleScope使用 lifecycleScope.launch(Dispatchers.IO) {...}错误 方案 代码中的activity继承Activ…

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--功能实现【四】

文章目录 SSM--功能实现实现功能06-修改家居信息需求分析/图解思路分析代码实现注意事项和细节 实现功能07-删除家居信息需求分析/图解思路分析代码实现 实现功能08-分页显示列表需求分析/图解思路分析代码实现完成测试分页显示效果 SSM–功能实现 实现功能06-修改家居信息 需…

39.利用matlab寻找素数(matlab程序)

1.简述 MATLAB嵌套循环允许使用一个循环在另一循环内,下面用一个嵌套循环来把所有从1到100的素数显示出来。 2.代码 %% 学习目标:寻找素数 clear sum5; %求0~100素数之和 ss0; %用来标定是否是素数,0表示不是 p…

MongoDB SQL

Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。C:\Users\Administrator>cd C:\MongoDB\Server\3.4\binC:\MongoDB\Server\3.4\bin> C:\MongoDB\Server\3.4\bin> C:\MongoDB\Server\3.4\bin>net start MongoDB 请求的…

Mac电脑怎么使用“磁盘工具”修复磁盘

我们可以使用“磁盘工具”的“急救”功能来查找和修复磁盘错误。 “磁盘工具”可以查找和修复与 Mac 磁盘的格式及目录结构有关的错误。使用 Mac 时,错误可能会导致意外行为,而重大错误甚至可能会导致 Mac 彻底无法启动。 继续之前,请确保您…