版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四旋翼无人机避障系统架构设计案例目录TOC\o"1-3"\h\u7159四旋翼无人机避障系统架构设计案例 134181.1Pixhawk控制原理解析 2325691.2MAVLink与uORB 345311.3外部控制系统设计 467131.4避障模型设计与仿真 9189801.4.1传感器信号的接收 1210401.4.2jMAVSim仿真 13112521.4.3gazebo仿真 14本文所构建的四旋翼飞行器避障系统由树莓派,外部传感器以及整个飞行器主体所组成。前文已经提及了Pixhawk飞控以及PX4FLOW光流智能相机,简单阐述了飞行器的飞行动力系统以及控制系统。本章分析的是飞行器的避障系统,其为在ROS系统下的MAVROS包内所配套的避障系统。简单来说,外载计算机发布避障期望航点,无人机外部搭载的3个超声波传感器分别识别前、左、右三个方向上的距离信息,并传送给外载计算机计算出期望的航点,再由外载计算机通过MAVLINK通讯协议发送相应指令给Pixhawk飞控来完成整个避障过程。图4-1避障系统概述图目前,ros系统已广泛应用于各个场所,而mavros本质上就是基于ros双系统的一个软件包,mavros这个包可以让在运行ros的电脑上、支持mavlink的飞控板以及与mavlink的地面电台之间进行通信。Pix飞控实现数据交互用到的是MAVlink通讯协议,MAVROS系统在其中作为交流的媒介,通过在MAVROS系统下的工具能实现基于C语言的控制程序转变为基于MAVlink通讯协议的格式,并发送给Pixhawk飞控,来完成无人机中的许多操作,例如:切换飞行模式,起飞,调速等。图4-2ros系统1.1Pixhawk控制原理解析Pixhawk飞控系统主要由飞行控制栈、中间件和NUTTX实时操作系统三部分组成[16]。飞行控制栈即为在pixhawk飞控中存储运行的固件,固件可由地面站直接烧录进飞控。本课题选择了Pix原生固件,它负责无人机执行任务时的定位,以及传感器每个部分的数据融合、飞行操作的控制等。中间件的作用主要是承担飞控与各个传感器之间的信息交互,为px4固件源代理提供一种微对象的请求代理器组件(MicroObjectRequestBroker,uORB)。如图4-3所示px4源码中的配置控制流程是:首先将无人机进行初始化设置,设定好飞控的各种参数,然后开始启动飞行控制系统,在选择好飞行模式后对无人机进行位置的解算和姿态的解算,这部分过程需要外部传感器的参与。紧接着,飞控系统在收到外部的飞行控制命令时,将对无人机的位置以及姿态进行控制,从而完成对无人机的控制。图4-3Pixhawk飞行控制流程图1.2MAVLink与uORB无人机飞控在无人机内部的通讯通常使用的是uORB的通讯机制,而对外部连接,即常用地面站软件(QGroundControl)或树莓派,大多数选择MAVLink。mavlink是目前最常见的无人机自动化飞控协议之一。该协议既有效地适用于对地面车站对无人机的监测,又有效地适用于对无人机进行信息传输和反馈。如果我们想要直接实现一架无人机的自主航空飞行,那么便由外载计算机(树莓派)通过mavlink协议向无人机发出一个控制指令[17]。MAVLink信息机制可作用于多种微程序处理器和操作系统。其消息包中的8字节数据结构如图4-4所示。数据包的结构信息如表4-1所示。图4-4MAVLink信息包结构图表4-1MAVLink消息包结构信息然而,开发者在PX4固件开发中并不鼓励直接使用Mavlink通讯,而是鼓励使用uORB通讯机制[18]。uORB本质上它也属于一种许多进程之间互相通信的一种机制。因为函数px4实际中所需要使用的这个系统其实就是函数nuttx一个实时函数arm的系统,因此uORB实际上可以认为是多个进程同时加载一个数据文件,经过这个文件的节点完成各个串口数据的交互和共享[19]。每个串口测量得出的数据、gps、ppm信号等均需要经uORB电路进行数据传送并通过运算集成到各种测量模块之中来用以进行各种相应的测量计算和数据处理(图4-5)。uORB将两个进程与之间通信的两种数据交换命名方式称为"主题","主题"中明确地直接定义了两个进程与之间通信的数据结构,通过"主题"的信息分配数据发布和发送订阅两种方式应用来直接完成了两个进程间的通信数据交换。图4-5uORB通讯机制1.3外部控制系统设计Pix飞控有多种外部控制方式:树莓派应用Dronekit控制程序进行外部控制,树莓派搭载ROS系统进行外部控制,Arduino通过串口通信进行外部控制等等。常用的两种方式为树莓派应用Dronekit控制程序进行外部控制,树莓派搭载ROS系统进行外部控制。下面将对比分析两种控制方法的优缺点。1.4.1Dronekit控制程序Dronekit也被叫作DroneKit-Python,它指的是一个专门提供用于对小型无人机驾驶进行自动控制的一个python应用数据库。允许开发人员创建在机载电脑上运行的应用程序,并完成与Pixhawk飞控之间的通信。可以显着增强自动驾驶性能,为无人机执行计算密集或时间敏感的任务(例如,计算机视觉,路径规划或3D建模)做好准备。API通过MAVLink与飞控通信。它提供对连接飞控的遥测,状态和参数信息的编程访问(图4-6)。相比之下,Dronekit比搭建ROS来控制无人机更容易上手一些。对于Dronekit,PX4(原生固件)被支持的较少,目前不可以进行模式切换。而对Ardupilot(APM固件)支持的比较多,可调用的函数也比较多。但是相比之下,ROS的功能更加完善,并且支持外部传感器的使用,所以本课题选择ROS实现无人机的飞行控制。图4-6访问无人机参数1.4.2MAVROS系统ROS系统虽然被称为系统,但其本质并非像我们所熟悉的Windows操作系统,它运行在Linux环境下,能更好地实现对机器人的各种功能。ROS系统在结构上方面是采用了一个分布式框架,这个框架的特点是每一个进程都分别执行,对此可以进行模块化管理,很大程度提高了系统的容错性。在编程语言的方面,目前ROS系统已经可以支持多种类型的编程语言,例如:c++、python等都是可以直接在ROS系统中进行编译的。本课题采用的MAVROS实际上是ROS下一个软件包,本课题采用的ROS系统版本为Kinetic版本,相应的,PC上装载的是Ubuntu16.04(图4-7)图4-7Ubuntu16.04系统MAVROS在本课题中,主要作用是提供对外载计算机(树莓派)与Pixhawk飞控之间的信息交互。因为MAVLink协议下制定的信息难以传输,MAVROS可以把基于C语言书写的程序内容转化为适用于MAVLink的程序形式,然后再输送给Pix飞控。外部控制器想要访问Pix飞控内部参数时,通过MAVROS订阅相关的主题就能获取飞控内部的数据,想要发布数据也是通过MAVROS来完成。表1.1订阅数据函数表
表1.2发布数据函数表ROS系统下自带有仿真软件如gazebo、jMAVSim仿真等。在ROS下可创建一个虚拟的Pixhawk飞控,用该飞控在gazebo仿真软件中仿真无人机的外载控制,以此验证程序的正确性。Mavros_node作为主要的通讯节点在Ubuntu系统终端中输入命令:(四轴飞行器通过USB与主机连接,主机运行GCS,IP地址172.16.156.49)gcs_bridge作为附加代理为GCS添加通道添加SITL和QGroundControl代理启动文件为常见的飞控系统提供启动文件,尤其是Pixhawk飞控:roslaunchmavrospx1.lauchGazebo仿真Gazebo为ROS系统预先搭载好的模拟器,可实现四旋翼无人机的仿真。ROS系统通常使用MAVROSMAVLink节点与无人机进行通信。Pix与模拟器通信,以此接受来自虚拟传感器的数据并发送给动力系统执行相应的操作。它与外载控制系统(即ROS)通信,在虚拟环境中发送控制命令,同时还要接收来自传感器的数据。ROS系统框架内的基于MAVLink通讯机制的通信系统如图4-8所示。图4-8ROS系统内MAVLink通讯图1.4避障模型设计与仿真本课题假设无人机在空阔、宽敞的地方进行飞行,主要的飞行障碍物分布在前面及左右两面,为了避免无人机与障碍物发生碰撞事故,搭建配套的算法。第一步要做的是接收并处理来自超声波传感器的数据,无人机外搭载三个超声波测距传感器,分布在无人机的左、前、右三侧。分别定义三个超声波传感器传送的距离数据信息为A1、A2、A3,该传感器的工作原理即:通过测量发出声波与反弹声波的时间差,在自身搭载的Arduino控制板上计算出距离信息,并调用滤波器处理数据,通过串口输出3的传感器的具体数据。进行数据处理时,需要先由低通滤波器进行处理,这次传感器输送的数值决定于前一次计算的数值和本次测量的数值。通过下式处理传感器数据。其次就是避障原理,在无人机上根据树莓派外搭载的传感器,对飞行器前、左、右三个位置实现测距,对于不同的情况可以改变距离的阈值,设定好阈值后,当某个方向上的超声波传感器得出的距离低于该阈值时,则可以判断飞行器的该方向出现障碍,需要躲避。如图4-9无人机左侧遇障当飞行器左侧贴近墙壁,此时左侧传感器输出数值A1<AT(AT为初始设定的阈值),前、右侧传感器输出数值A2、A3>AT,可以判断为无人机的左侧遇到障碍,无人机关闭向左飞行航道。图4-10无人机右侧遇障当飞行器右侧贴近墙壁,此时右侧传感器输出数值A3<AT,左、前侧传感器输出数值A1、A2>AT,可以判断为无人机的右侧遇到障碍,无人机关闭向右飞行航道。图4-11无人机前方遇障当飞行器遇到前方墙壁,此时前侧传感器输出数值A2<AT,左、右侧传感器输出数值A1、A3>AT,可以判断为无人机的前方遇到障碍,无人机采取向上飞行避障。图4-12无人机正常行驶当飞行器正常行驶且各方位均无障碍,飞行器三个方向上的传感器的输出数值均大于AT,可以判断为无人机周围飞行环境较为安全,可继续向正前方飞行。无人机的在实际飞行时遇到的情况可大致分为以上四种,因此可采取闭环控制实现避障功能。在具体的控制程序中,通过MAVROS服务:1、可以更改避障距离的阈值,可以根据具体环境的不同来更改不同的阈值2、可访问Pixhawk飞控的.msg文件,此类文件存放的是传感器的数据3、设定了只有在“offboard”飞行模式下,无人机才开始自动执行飞行任务,以防止意外发生。在避障系统中,无人机采用绝对坐标系的控制方式,树莓派发送航点的绝对坐标位置时,无人机接收命令飞往目标航点,与此同时,避障系统会根据超声波传感器反馈的数据情况,结合当前无人机所在的位置,与目标航点的绝对坐标相比较,当飞行器的当前位置信息与目标航点的信息的偏差可以忽略不计时,可以认定无人机已到达目标航点。图4-13无人机避障动作流程图1.4.1传感器信号的接收前文已经提到过Pixhawk飞控系统封装的uORB通讯机制,其主要作用是管理进程间的通讯,本课题即采用了uORB的信息机制实现传感器数据与Pix飞控互通。uORB将两个进程与之间通信的基本数据分配命名设定为"主题(topic)","主题"中明确地直接定义了两个进程与之间通信的基本数据结构,通过"主题"的数据分配可以发布和发送订阅两种方式直接完成了两个进程间的基本数据交换。Pix飞控把所有接口的“topic”都封装在.msg文件中。在Ubuntu系统终端执行编译功能时,python会调用工具检索.msg文件并把所有的.msg文件转换成msg.h文件。本课题需要用到uORB通讯机制获取三个传感器的数据信息,所以要在msg目录下创建一个.msg文件,目的是为了给飞控所接收到的来自传感器的数据下定义。接着需要封装超声波传感器内的数据信息,作为一个主题实现进程之间的信息交换。发布主题需要调用三个函数,分别是:消息句柄是通过发布目标消息文件的结构而获得的,已经做好了赋值的准备。最后在对固件的源码进行编译时,先cd到Firmware文件夹,通过make命令进行编译,编译完成后的飞控固件会存储在built文件夹下,之后便可通过makepx4fmu-v4_defaultupload上传固件到Pix飞控中。1.4.2jMAVSim仿真jMAVSim是一个简单的多旋翼/四旋翼仿真软件(图4-14),它可以允许在仿真环境中运行PX4的四旋翼无人机。它很容易被设置,可以直接用来检测无人机在飞行中是否能够起飞、驾驶、降落、并对各类故障进行检查(比如GPS故障)做出适当的反应。jMAVSim可以查看飞机的具体动作,方向等信息;配合QGC地面站可以查看飞机的路径,速度,高度等信息。但是因为jMAVSim仿真无法设置特定场景的局限性,所以本课题不选用。图4-14jMAVSim仿真界面1.4.3gazebo仿真Gazebo为ROS系统预先搭载好的模拟器,可实现四旋翼无人机的仿真。Gazebo也可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省三明市宁化城东中学2027届八上数学期末经典模拟试题含解析
- 2027届四川省眉山外国语学校八上数学期末教学质量检测模拟试题含解析
- 陕西省西安市第二十三中学2026年物理八年级第一学期期末学业水平测试试题含解析
- 自贡市重点中学2026年数学八上期末考试模拟试题含解析
- 竣工验收监理实施细则
- 小学道德与法治规则意识教学设计
- 市政工程预应力锚索框架梁防护施工报告
- 施工现场扬尘防治责任书
- 施工现场建筑垃圾减量化处置方案
- 施工现场管理人员岗位工作履职手册
- 供水厂基础知识培训课件
- 广东宏业投资开发集团有限招聘笔试题库
- 食品原料验收知识培训课件
- 施工现场质量培训课件
- 一例PICC穿刺点感染的个案分析与护理
- DG-TG08-12-2024 普通中小学建设标准
- 知识点2、化学式和化合价-2022年浙江省中考科学一轮复习化学部分
- 水平定向钻施工方案(专家论证)
- ERCP诊治指南2021版解读
- 部编版2024年三年级语文下册《课内阅读》专项复习题及答案
- 2024年医院依法执业培训课件
评论
0/150
提交评论