无人系统板载(任务)计算机设计----Ardupilot/PX4/ROS (阿木)

2023-05-16

摘自:https://zhuanlan.zhihu.com/p/115418045

无人系统板载(任务)计算机设计----Ardupilot/PX4/ROS

阿木实验室

阿木实验室

已认证的官方帐号

一、大型飞行管理系统介绍

目前的小型无人系统的飞行管理系统,还处于初级阶段,远远不及大型飞机的飞行管理系统发展的成熟。下面是大型飞机的飞行管理系统框架。

大型飞机计算机系统

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

二、小型无人机的计算机系统

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

典型的Ardupilot/PX4飞控系统硬件接线图

在一些专用无人机系统上,软件上采用VxWorks操作系统,通过任务划分和状态机,硬件上相对独立和多冗余,来保证软件/硬件系统的高可靠性和安全性。

但是PX4/Ardupilot这种小型的无人系统开发平台,在软件构架和硬件构架还是在发展初级阶段。在软件硬件的冗余和耦合性上远远不如,大型民航飞机那样稳定和可靠。但是也是在朝着各个模块相对独立解耦合,任务管理,环境感知,运动控制逐步分立的方向发展。虽然现在很多模块还是耦合在一起,但是解耦合的发展迹象还是很明显。也是软件硬件系统的发展规律,各个模块相对独立,首先保证单个模块硬件软件绝对可靠,然后协同工作。

下图所示是相对比较完善的小型无人机计算机系统,包含飞控计算机(相当于人的脑干,负责完成运动控制系统的平衡性),感知和任务管理计算机(相当于人体的大脑,负责处理来自任务载荷的数据,并且做出决策,发送控制指令给飞控计算机),任务载荷模块(相当于人体的眼睛等传感器,感知周围环境数据然后给任务管理计算机处理)。电气系统是最底层的执行机构。地面站是人机交互系统。数据链接由无线数据传输系统来完成。各个模块都有对应的软件和硬件设备,相对独立,互相协作,构成一个完整的无人机计算机系统。

飞控计算机由单片机(MCU)和对应的实时操作系统担任,要求就是实时性强,任务执行频率上百赫兹,可以快速的控制电器系统,强调响应的实时性和相对简单可靠,确保被控对象的平衡稳定。

感知和任务管理计算机由PowerPC,DSP,Arm,X86构架的CPU来担任,通常都是计算性能强大,并且运行之上的操作系统可靠如(VxWorks)等。负责运算和决策,通常这种任务计算复杂,某些情况下也要求较高的任务执行频率。

无人机的计算机系统

 

三、PX4/Ardupilot的计算机系统

除了Ardupilot和PX4的飞控计算机之外,他们也有任务计算机系统,但是相对还不是很完善,比如目前的飞控计算机中还做一部分的任务管理计算机的工作,比如航线规划,避障,环境感知等,没有做到模块分离和独立。

Ardupilot支持的Companion Computers(任务计算机),大多以Linux/ROS/Mavros为软件构架,硬件上以Arm内核,X86内核为主。下面是Ardupilot官方给出的列表:

板载计算机列表

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

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

阿木实验室也计划在任务管理系统上做一些工作,因此开源了我们的板载计算机软件框架(暂时支持 PX4 框架,未来计划推出支持ardupilot的版本)

Github 项目地址:https://github.com/amov-lab/px4_command

px4_command 功能包是一个基于 PX4 开源固件及 Mavros 功能包的开源项目,提供一个感知和任务计算机模块。目前已集成无人机外环控制器修改、目标追踪、激光 SLAM 定位、双目 V-SLAM 定位、激光避障等上层开发代码、后续将陆续推 出涵盖任务决策、路径规划、滤波导航、单/多机控制等无人机/无人车/无人船科研及开发领域的功能。配合我们的板载计算机(TX2、Nano)等运算能力比较强的处理器,来实现复杂算法的运行,运行得到的控制指令通过串口或者网口通信发送给底层控制板。

软件框架如下:

系统软件框架

实际硬件框架如下:

实际硬件框架

 

 

带激光雷达的硬件

双目视觉的硬件

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

 

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

 

3.开发手段
按照完整的开发流程
1 建立数学模型
2 算法开发
3 仿真
4 实机测试

 

4.以完成一个激光雷达避障为例:
(1)数学建模
业界关于避障的算法,有很多论文,开源的代码。比如可以采用简单高效的VFH算法,数学模型相对比较简单,方便构建。
(2)算法开发
根据数学模型编写代码,涉及复杂的数学公式可以采用matlab来开发,VFH比较简单,开源的代码做一下优化就可以完成。
(3)仿真
避障属于场景和逻辑,最好用三维可视环境搭建出虚拟环境,在虚拟环境中仿真,常用的仿真工具有FlightGear,Gazebo,AirSim等等,写好的算法在虚拟仿真环境中运行,看一看避障的效果如何。总结就是仿真有问题,实际测试一定有问题。
(4)实机测试
仿真测试通过以后,然后实机测试具体功能,在仿真中传感器数据大多为理想值,仿真的代码有时候不能完全适用于真实环境。当然可以在仿真系统中加入噪声数据,和建立仿真模型的时候高度还原真实物理场景,这样也可以提高仿真代码的适应性。

 

阿木实验室在感知任务管理计算机设计的时候,就充分考虑到一个完整的开发流程,来提高开发效率。

尤其是一些复杂的算法开发,Matlab接口,三维任务仿真接口必不可少,可以极大的提升开发效率。我们提供的这个任务计算机功能包是基于ROS/Mavros开发,三维仿真接口比较完善比如用Gazebo/Airsim。Matlab的接口在基于集群的路径规划非常有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无人系统板载(任务)计算机设计----Ardupilot/PX4/ROS (阿木) 的相关文章

随机推荐