4

阿木币

0

精华

21 小时

在线时间

老司机

Rank: 2

发表于 2019-12-6 11:25:54 5660 浏览 1 回复

[入门教程] 无人系统板载(任务)计算机设计----Ardupilot/PX4/ROS

本帖最后由 amovchun 于 2019-12-6 11:45 编辑

大型飞行管理系统介绍

    目前的小型无人系统的飞行管理系统,还处于初级阶段,远远不及大型飞机的飞行管理系统发展的成熟。下面是大型飞机的飞行管理系统框架。
微信图片_20191206111937.jpg
图一 大型飞机计算机系统

      飞行管理系统(FMS)综合了飞机上的导航、制导、自动飞行控制、性能优化、数据链管理等多种功能,飞行管理系统对于确保飞行安全和性能具有不可替代的作用:它通过各类导航传感器和飞机导航、性能数据库,估算并控制飞机按照最优化的航迹飞行,减轻飞行员的操作负担的效果。大型飞机各个模块相对独立,确保整个系统的稳定性。

小型无人机的计算机系统
      
      反观小型无人机系统,在开源飞控领域PX4/Ardupilot,现阶段导航、控制、任务规划,甚至感知,都在一个片上系统里面做,软件上采用任务调度或者多线程的方式来做,多数设计均将飞行控制和任务管理集中于一台计算机,但是当任务管理工作是需要占用较大的计算机资源,并且飞行控制逻辑和任务逻辑相互耦合,使得单个飞控计算机的软件复杂程度大幅增加,对飞行安全造成很大影响。这是现阶段对于成本的控制,和技术成熟度的限制,还有相关标准缺乏导致。但是已经越来越不满足目前小型无人机的需求。市场需要感知能力更强,更智能的无人机来满足实际应用的需要。
微信图片_20191206111944.jpg
图二 典型的Ardupilot/PX4飞控系统硬件接线图

       在一些专用无人机系统上,软件上采用VxWorks操作系统,通过任务划分和状态机,硬件上相对独立和多冗余,来保证软件/硬件系统的高可靠性和安全性。
       但是PX4/Ardupilot这种小型的无人系统开发平台,在软件构架和硬件构架还是在发展初级阶段。在软件硬件的冗余和耦合性上远远不如,大型民航飞机那样稳定和可靠。但是也是在朝着各个模块相对独立解耦合,任务管理,环境感知,运动控制逐步分立的方向发展。虽然现在很多模块还是耦合在一起,但是解耦合的发展迹象还是很明显。也是软件硬件系统的发展规律,各个模块相对独立,首先保证单个模块硬件软件绝对可靠,然后协同工作。
       图三所示是相对比较完善的小型无人机计算机系统,包含飞控计算机(相当于人的脑干,负责完成运动控制系统的平衡性),感知和任务管理计算机(相当于人体的大脑,负责处理来自任务载荷的数据,并且做出决策,发送控制指令给飞控计算机),任务载荷模块(相当于人体的眼睛等传感器,感知周围环境数据然后给任务管理计算机处理)。电气系统是最底层的执行机构。地面站是人机交互系统。数据链接由无线数据传输系统来完成。各个模块都有对应的软件和硬件设备,相对独立,互相协作,构成一个完整的无人机计算机系统。
      飞控计算机由单片机(MCU)和对应的实时操作系统担任,要求就是实时性强,任务执行频率上百赫兹,可以快速的控制电器系统,强调响应的实时性和相对简单可靠,确保被控对象的平衡稳定。
      感知和任务管理计算机由PowerPC,DSP,Arm,X86构架的CPU来担任,通常都是计算性能强大,并且运行之上的操作系统可靠如(VxWorks)等。负责运算和决策,通常这种任务计算复杂,某些情况下也要求较高的任务执行频率。
微信图片_20191206111950.jpg
图三 无人机的计算机系统

PX4/Ardupilot的计算机系统

      除了Ardupilot和PX4的飞控计算机之外,他们也有任务计算机系统,但是相对还不是很完善,比如目前的飞控计算机中还做一部分的任务管理计算机的工作,比如航线规划,避障,环境感知等,没有做到模块分离和独立。
     Ardupilot支持的Companion Computers(任务计算机),大多以Linux/ROS/Mavros为软件构架,硬件上以Arm内核,X86内核为主。下面是Ardupilot官方给出的列表:
微信图片_20191206112859.jpg
图四 板载计算机列表

    从功能上,有的是提供一个软件的框架,可以适配很多的不同硬件设备,有的提供一个完整的软件硬件解决方案提供4G通信,图像处理等高级功能。也在向模块独立的方向上发展。相信随着技术的发展,这些板载计算机(任务计算机)将会越来越完善,越来越像成熟的软件硬件方向发展(可以参考大型载人航空器的设计)。随着应用广泛和技术也会出现诸如PowerPC和VxWorks为代表的任务管理计算机系统,和飞控计算机系统彻底软件硬件分离。

阿木实验室的感知任务管理系统

      我们也计划在任务管理系统上做一些工作,我们开源了我们的板载计算机软件框架(暂时支持PX4框架,未来计划推出支持ardupilot的版本)Github: github.com/amov-lab/px4_command(欢迎点亮小星星star)或者Wiki:amovwiki.readthedocs.io/zh_CN/latest/index.html
     px4_command功能包是一个基于PX4开源固件及Mavros功能包的开源项目,提供一个感知和任务计算机模块。目前已集成无人机外环控制器修改、目标追踪、激光SLAM定位、双目V-SLAM定位、激光避障等上层开发代码、后续将陆续推 出涵盖任务决策、路径规划、滤波导航、单/多机控制等无人机/无人车/无人船科研及开发领域的功能。配合我们的板载计算机(TX2、Nano)等运算能力比较强的处理器,来实现复杂算法的运行,运行得到的控制指令通过串口或者网口通信发送给底层控制板。

软件框架如下:
微信图片_20191206111958.jpg

图五 系统软件框架
实际硬件框架如下:
微信图片_20191206112005.jpg
微信图片_20191206112010.jpg
图五 带激光雷达的硬件
微信图片_20191206112014.jpg

图六 双目视觉的硬件

感知和任务管理计算机的开发
      在Ardpuliot/PX4的感知和任务管理计算机开发中,和大型无人机的任务管理计算机开发不同,小型无人机的任务管理计算机集中在环境感知,自动避障路径规划,目标物体识别追踪,自动搜寻,集群控制策略等领域。符合小型化,低空域,在有限空间飞行的特点。

开发重点
1 环境感知:以激光雷达,视觉传感器等硬件为主的激光SLAM/视觉SLAM开发方向,获得设备自身的方位,速度和姿态。
2 路径规划:以自动避障的路径规划,以集群控制为主的路径规划,以自动搜寻的路径规划,以无人机自动调度系统的路径规划。获得当前空间和时间下的设备自身的最优运动路径。
3 视觉识别:以目标物体的识别,感知,追踪,引导。获得目标物体的相对位置。


淘宝搜索:阿木实验室  板载计算机 了解为无人机任务管理系统量身打造的板载计算机设备。



扫一扫浏览分享
回复

使用道具 举报

15

阿木币

0

精华

100 小时

在线时间

老司机

Rank: 2

发表于 2019-12-6 17:05:54
学习了,感谢楼主
回复 点赞

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表