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

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.rhkb.cn/news/78026.html

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

相关文章

Python3 处理PDF之PyMuPDF 入门

PyMuPDF 简介 PyMuPDF是一个用于处理PDF文件的Python库,它提供了丰富的功能来操作、分析和转换PDF文档。这个库的设计目标是提供一个简单易用的API,使得开发者能够轻松地在Python程序中实现PDF文件的各种操作。 PyMuPDF的主要特点如下: 跨平台兼容性&a…

Spring Data JPA源码

导读: 什么是Spring Data JPA? 要解释这个问题,我们先将Spring Data JPA拆成两个部分,即Sping Data和JPA。 从这两个部分来解释。 Spring Data是什么? 摘自: https://spring.io/projects/spring-data Spring Data’s mission is to provide a familiar and cons…

1、Spark SQL 概述

1、Spark SQL 概述 Spark SQL概念 Spark SQL is Apache Spark’s module for working with structured data. 它是spark中用于处理结构化数据的一个模块 Spark SQL历史 Hive是目前大数据领域,事实上的数据仓库标准。 Shark:shark底层使用spark的基于…

NOsql之MongoDB入门分享

目录 一、MongoDB简介 1、概念理解 2、yum安装部署 3、二进制安装部署 4、配置文件解析 二、MongoDB基本管理 1、登录操作 2、管理命令 3、用户管理 一、MongoDB简介 1、概念理解 关系型数据库(RDBMS:Relational Database Management System) MySql、Ora…

oop基础--成员方法传参机制(重要)

文章目录 1. 基本数据类型的传参机制2. 引用数据类型的传参机制 1. 基本数据类型的传参机制 先让我们猜一下如下代码的输出结果~ public class MethodParameter01 {//编写一个 main 方法public static void main(String[] args) {int a 10;int b 20;//创建 A 对象 名字 obj…

计算机毕设 深度学习疫情社交安全距离检测算法 - python opencv cnn

文章目录 0 前言1 课题背景2 实现效果3 相关技术3.1 YOLOV43.2 基于 DeepSort 算法的行人跟踪 4 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两…

oracle数据库创建用户并插入数据

Oracle第一话 数据库权限设置 序言 ​ 具体的错误类型,我看大概是这样的 一 Oracle比mysql复杂一点 首先,创建一个表空间 -- 创建名为"TEST_DATA"表空间 CREATE TABLESPACE TEST_DATA NOLOGGING -- 数据存放的位置 DATAFILE D:\test_data…

Qt项目---简单的计算器

在这篇技术博客中,我们将介绍如何使用Qt框架实现一个简单的计算器应用。我们将使用C编程语言和Qt的图形用户界面库来开发这个应用,并展示如何实现基本的算术操作。 项目设置 首先,我们需要在Qt Creator中创建一个新的Qt Widgets应用程序项目…

【二进制安全】堆漏洞:Double Free原理

参考:https://www.anquanke.com/post/id/241598 次要参考:https://xz.aliyun.com/t/6342 malloc_chunk 的源码如下: struct malloc_chunk { INTERNAL_SIZE_T prev_size; /*前一个chunk的大小*/ INTERNAL_SIZE_T size; /*当前chunk的…

TPlink DDNS 内网穿透?外网访问设置方法

有很多小伙伴都想知道:TPlink路由器怎么设置DDNS内网穿透?今天,小编就给大家分享一下TPlink DDNS 外网访问设置方法,下面是图文教程,帮助新手快速入门DDNS设置。 本文介绍的是云路由器TP-LINK DDNS的设置方法。TP-LIN…

Keil软件添加STC数据包方法

添加数据包方法如下: (1)首先,打开STC-ISP烧录工具; (2)点击“Keil仿真设置”,然后点击“添加型号和头文件到Keil中,添加STC仿真器驱动到Keil中”。 (3&…

60多行代码仿制B站首页一个好看的卡片效果

文章目录 1、为啥是这个?2、仿制效果3、实现思路4、代码5、查看B站如何实现 1、为啥是这个? 看到Bilibili首页的一个卡片,看着效果很不错,给人很舒适的感觉。一琢磨貌似也不难,甚至只需要一层 div 就可以实现主要框架…

MacBook Pro 16 M1 Max 升级 macOS Ventura 13.5 兼容测评

今天给大家带来了 MacBook Pro 16 M1 Max 升级 macOS Ventura 13.5 兼容 100 挑战赛 的视频,现在充电头再以文章的形式呈现给大家,让大家更清楚、直白的了解这款笔记本在升级系统后的兼容性如何。 MacBook Pro 16 M1 Max 配置了 140W 的 MagSafe 充电口&…

mybatisJava对象、list和json转换

1. 参考mybatis-plus mybatis Java对象、list和json转换 网上好多不靠谱,参考mybatis-plus中TableField,mybatis中自定义实现 这样不需要对象中属性字符串接收,保存到表中,都是转义字符,使用时还要手动转换为对象或者…

【Opencv入门到项目实战】(四):图像梯度计算|Sobel算子|Scharr算子|Laplacian算子

文章目录 0.引言1. Sobel算子2. Scharr算子3. Laplacian算子 0.引言 在图像处理中,梯度是指图像中像素灰度变化的速率或幅度,我们先来看下面这张图 假设我们想要计算出A点的梯度,我们可以发现A点位于边缘点,A点左边为黑色&#x…

骨传导耳机真不伤耳吗?骨传导耳机有什么好处?

骨传导耳机真不伤耳吗?骨传导耳机有什么好处? 我先来说说骨传导耳机的工作原理吧,骨传导是一种传声方式,声波通过颅骨、颌骨等头部骨头的振动,将声音传到内耳。其实骨传导的现象我们很常见,就像我们平时嗑瓜…

Qt5.13引入QtWebApp的模块后报错: error C2440: “reinterpret_cast”: 无法从“int”转换为“quintptr”

1、开发环境 Win10-64 qt5.13 msvc2015-64bit-release 2、报错 新建一个demo工程。 引入QtWebApp的httpserver、logging、templateengine三个模块后。 直接运行,,此时报错如下: E:\Qt5.13.1\install\5.13.1\msvc2015_64\include\QtCore…

测试工程师的工作

目录 1.何为软件测试工程师? 2.软件测试工程师的职责? 3.为什么要做软件测试? 4.软件测试的前途如何? 5.工具和思维谁更重要? 6.测试和开发相差大吗? 7.成为测试工程师的必备条件 8.测试的分类有哪…

【chrome扩展开发】vue-i18n使用问题及解决方案

记录chrome扩展开发时调用vue-i18n的一些问题和解决方法 环境 vue: ^3.3.4vue-i18n: ^9.2.2vite: ^4.4.8 错误1 Uncaught (in promise) EvalError: Refused to evaluate a string as JavaScript because unsafe-eval is not an allowed source of script in the following Con…

阿里云平台注册及基础使用

首先进入阿里云官网: 阿里云-计算,为了无法计算的价值 点击右上角“登录/注册”,如果没有阿里云账号则需要注册。 注册界面: 注册完成后需要开通物联网平台公共实例: 注册成功后的登录: 同样点击右上角的…