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.mzph.cn/news/25062.shtml

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

相关文章

HttpRunner自动化测试工具之录制工具使用--使用抓包工具通过命令转成yml文件

录制工具使用: 为了简化测试用例的编写工作,HttpRunner实现了测试用例生成的功能,对应的转换工具为一个独立的项目:har2case 使用操作步骤: 1、通过抓包工具获取HAR格式的数据包 2、通过命令har2case har的数据包路径…

40.利用欧拉法求解微分方程组(matlab程序)

1.简述 求解微分方程的时候,如果不能将求出结果的表达式,则可以对利用数值积分对微分方程求解,获取数值解。欧拉方法是最简单的一种数值解法。前面介绍过MATLAB实例讲解欧拉法求解微分方程,今天实例讲解欧拉法求解一阶微分方程组。…

车载软件架构 —— 闲聊几句AUTOSAR OS(十一)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标…

TBB库中实现协程(coroutine)的源码说明

源码请见: https://github.com/oneapi-src/oneTBB/blob/master/src/tbb/co_context.h 在windows系统,TBB(也就是intel 的 oneTBB库),通过windwos fiber(纤程)来实现协程(coroutine)。 创建一个协程,代码很简洁: inline void create_coroutine(corouti…

C++动态规划经典试题解析之打家劫舍系列

1.前言 力扣上有几道与打家劫舍相关的题目,算是学习动态规划时常被提及的经典试题,很有代表性,常在因内大大小小的社区内看到众人对此类问题的讨论。 学习最好的方式便是归纳总结、借鉴消化,基于这个目的,本文对此类问题也做了讲解,在一些优秀思想的基础上添加了个人观…

react中PureComponent的理解与使用

一、作用 它是一个纯组件,会做一个数据的浅比较,当props和state没改变的时候,不会render重新渲染, 改变后才会render重新渲染,提高性能。 二、使用 三、注意 它不能和shouldComponentUpdate生命周期同时使用。因为它…

【CSS】3D卡片效果

效果 index.html <!DOCTYPE html> <html><head><title> Document </title><link type"text/css" rel"styleSheet" href"index.css" /></head><body><div class"card"><img…

【JAVA】继承

作者主页&#xff1a;paper jie的博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精…

HDFS集群滚动升级以及回滚相关

HDFS集群滚动升级以及回滚相关 介绍不停机滚动升级非联邦HA集群联邦HA集群 停机升级--非HA集群HDFS集群降级和回滚异同点共同点不同点 HA集群降级&#xff08;downgrade&#xff09;注意事项 集群回滚操作 介绍 在hadoop v2中&#xff0c;HDFS支持namenode高可用&#xff08;H…

如何将 dubbo filter 拦截器原理运用到日志拦截器中?

业务背景 我们希望可以在使用日志拦截器时&#xff0c;定义属于自己的拦截器方法。 实现的方式有很多种&#xff0c;我们分别来看一下。 拓展阅读 java 注解结合 spring aop 实现自动输出日志 java 注解结合 spring aop 实现日志traceId唯一标识 java 注解结合 spring ao…

思科单臂路由、lacp链路聚合、NAT实验

实验拓扑图&#xff1a; 实验目的&#xff1a; 如图所示配置相应IP地址和VLAN&#xff0c;并通过在AR1上配置单臂路由&#xff0c;实现VLAN10和VLAN20的主机能够在VLAN间通信&#xff1b;在SW1和SW2的三条链路实施链路聚合&#xff0c;使用静态LACP模式&#xff0c;使一条链…

Visual Studio在Debug模式下,MFC工程中包含Eigen库时的定义冲突的问题

Visual Studio在Debug模式下&#xff0c;MFC工程中包含Eigen库时的定义冲突的问题 报错信息 Eigen\src\Core\PlainObjectBase.h(143,5): error C2061: 语法错误: 标识符“THIS_FILE” Eigen\src\Core\PlainObjectBase.h(143,1): error C2333: “Eigen::PlainObjectBase::opera…

LeetCode 热题 100 JavaScript--102. 二叉树的层序遍历

给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]] 示例 2&#xff1a; 输入&#xff1a;root [1…

基于RASC的keil电子时钟制作(瑞萨RA)(10)----读取DHT11温湿度数据

基于RASC的keil电子时钟制作10_读取DHT11温湿度数据 概述硬件准备视频教程产品参数电路设置数据格式数据读取步骤GPIO设置读取温湿度数据dht11.cdht11.h主程序 概述 本篇介绍如何驱动DH11湿度传感器同时实现当前串口数据打印。 DHT11 数字温湿度传感器是一款含有已校准数字信号…

RabbitMQ:概念和安装,简单模式,工作,发布确认,交换机,死信队列,延迟队列,发布确认高级,其它知识,集群

1. 消息队列 1.0 课程介绍 1.1.MQ 的相关概念 1.1.1.什么是MQ MQ(message queue&#xff1a;消息队列)&#xff0c;从字面意思上看&#xff0c;本质是个队列&#xff0c;FIFO 先入先出&#xff0c;只不过队列中存放的内容是message 而已&#xff0c;还是一种跨进程的通信机制…

XML 学习笔记 7:XSD

本文章内容参考自&#xff1a; W3school XSD 教程 Extensible Markup Language (XML) 1.0 (Second Edition) XML Schema 2001 XML Schema Part 2: Datatypes Second Edition 文章目录 1、XSD 是什么2、XSD 内置数据类型 - built-in datatypes2.1、基本数据类型 19 种2.1.1、基本…

MySQL日期常见的函数

-- 获取当天日期 -- 2023-06-20 select curdate();-- 获取当天年月日时分秒 select now();-- 日期运算 -- 2024-06-20 17:04:17 select date_add(now(),interval 1 year);-- 日期比较 -- 0 select datediff(now(),now());-- 日期MySQL对于日期类型数据如何查询 -- 获取指定日期…

Goland搭建远程Linux开发

Windows和Linux都需要先构建好go环境&#xff0c;启用ssh服务。 打开Windows上的Goland&#xff0c;建立项目。 点击添加配置&#xff0c;选择go构建 点击运行于&#xff0c;选择ssh 填上Linux机器的IP地址和用户名 输入密码 没有问题 为了不让每次运行程序和调试程序都生…

前端个人年度工作述职报告(二十篇)

前端个人年度工作述职报告篇1 尊敬的各位领导、各位同仁&#xff1a; 大家好!按照20__年度我公司就职人员工作评估的安排和要求&#xff0c;我认真剖析、总结了自己的工作情况&#xff0c;现将本人工作开展情况向各位领导、同仁做以汇报&#xff0c;有不妥之处&#xff0c;希…

人工智能与物理学(软体机器人能量角度)的结合思考

前言 好久没有更新我的CSDN博客了&#xff0c;细细数下来已经有了16个月。在本科时期我主要研究嵌入式&#xff0c;研究生阶段对人工智能感兴趣&#xff0c;看了一些这方面的论文和视频&#xff0c;因此用博客记录了一下&#xff0c;后来因为要搞自己的研究方向&#xff0c;就…