麦伟图 陈元电 施振华 苏成悦 徐胜
摘 要:设计了一款新型的具有矢量定向机构的共轴双旋翼无人机。在Webots移动机器人仿真软件的环境下完成对矢量共轴双旋翼无人机的实体造型与动力学建模,基于ROS机器人操作系统编写了矢量共轴双旋翼无人机的飞控程序,引入了双目定位算法进行空间定位。通过仿真实验验证了矢量共轴双旋翼无人机机构、飞控程序和双目定位算法的可行性,对快速开发新型无人机飞控和接入新型传感器有参考价值。
关键词:矢量共轴;Webots仿真软件;ROS机器人操作系统;飞行仿真;双目定位
中图分类号:TP273+.4;TP391.9 文献标识码:A 文章编号:2096-4706(2023)01-0145-06
Research on Design and Simulation of Vector Coaxial Two-Rotor UAV
MAI Weitu1, CHEN Yuandian1, SHI Zhenhua1,2, SU Chengyue1, XU Sheng1
(1.School of Physics and Optoelectronic Engineering, Guangdong University of Technology, Guangzhou 510006, China;
2.Guangzhou Jiechao Technology Co., Ltd., Guangzhou 510006, China)
Abstract: A new coaxial twin-rotor UAV with vector orientation mechanism is designed in this paper. In the environment of Webots mobile robot simulation software, the solid modeling and dynamic modeling of vector coaxial two-rotor UAV are completed. Based on the ROS robot operating system, the flight control program of the vector coaxial twin-rotor UAV is compiled, and the binocular positioning algorithm is introduced for spatial positioning. The feasibility of the mechanism, flight control program and binocular positioning algorithm of vector coaxial twin-rotor UAV is verified by simulation experiments. It has reference value for rapid development of new UAV flight control and access to new sensors.
Keywords: vector coaxial; Webots simulation software; ROS robot operating system; flight simulation; binocular positioning
0 引 言
雙旋翼无人机具有垂直起降、悬停和结构紧凑等特点。它的子类共轴双旋翼无人机(Coaxial Helicopter, CH)越来越被重视。西科斯基公司的“密码”系列共轴双旋翼概念机[1],NASA在火星上的“机智号”共轴双旋翼式无人机[2];中智航的TD220和T333共轴双旋翼无人机[3],中航工业的“绝影8”高速共轴小型无人机[4],北航研制的共轴海鸥[5]等,共轴双旋翼无人机得到了广泛的研究。
无人机的姿态和飞行控制前期研究可以通过仿真实现。Xiao等提出了一种基于ROS(Robot Operating System)、Gazebo和PX4的平台来定制多旋翼无人机的仿真[6];García等实现了基于PixHawk、PX4、外围设备的旋翼无人机和Gazebo结合的仿真平台和测试方法[7];Hu等结合了Simulink和xPC技术设计了一款无人机半实物仿真系统[8]。仿真系统可以缩短开发周期,降低开发成本。Webots是Cyberbotics公司开发的机器人仿真软件,其与ROS结合发展出Webots_ros接口,主要应用于地面机器人[9],在无人机领域少有应用。视觉惯性导航的研究取得进展,Shen提出了开源双目视觉惯导SLAM方案的VF(Vins-Fusion)算法,可以实现无人机和车,AR/VR的精确自主定位[10];孙希君等实现了ORB-SLAM2与惯性导航系统解算卡尔曼滤波融合的方法[11]。
本文设计和实现了一种结构简洁和可靠的矢量共轴双旋翼无人机(Vector Coaxial Helicopter, VCH),搭建了基于ROS与Webots平台的共轴无人机的仿真环境,在ROS环境下自编了VCH的飞控程序,利用简便的动力学建模环境与开源算法高效地完成了VCH的飞行姿态控制与定位仿真。
1 Webots开发软件
Webots是一款开源的多平台机器人仿真软件,主要功能是机器人的建模、控制与仿真,用于开发、测试和验证机器人算法。它提供了一个快速建模环境,允许用户创建三维的虚拟世界与物理性质,如质量、关节和摩擦系数等。Webots支持多种虚拟传感器,如相机、雷达、力传感器、位置传感器、陀螺仪、惯性单元和GPS等20多种传感器,用户可以针对自己的需求设计仿真模型,编写控制程序以实现对仿真模型的控制。Webots内核基于开源动力学引擎ODE和OpenGL,可以在Windows、Linux和macOS上运行,并且支持多种编程语言(C/C++,Python,Java,MATLAB)。
Webots内置了接近100种机器人模型,包括轮式机器人、人形机器人、爬行移动机器人、单臂移动机器人、双臂移动机器人、无人机、机器狗和飞艇等,其中包括比较著名的Boston Dynamics Atlas、DJI Mavic 2 PRO、Nao、PR2、YouBot、UR、Turtlebot3 Burger等机器人。
由于Webots具有高逼真的仿真环境与简便的操作方式,能准确地对机器人与其所在环境特性进行模拟,并复现模型质量、转动惯量和摩擦系数等各种物理属性,能更加真实地还原目标的实际运动情况,本文选择Webots作为实验仿真环境。
2 VCH机械结构设计
VCH的机械结构分为机身、矢量控制模块和动力模块。其中机身用于承载传感器与电池,连接矢量控制模块;矢量控制模块由两个舵机驱动,用于控制动力模块的方向;动力模块由共轴反转电机和旋翼构成,为无人机提供飞行动力。本文在Solidworks中完成了对VCH的建模并制造出实物,如图1与图2所示。
3 VCH动力学模型设计
本文通过Webots平台完成了VCH的动力学模型的搭建。Node(节点)是Webots各物体的抽象单位,节点可以有子节点,节点之间存在继承关系,设计过程中使用到的各节点功能如表1所示。本模型由多个节点组成,通过树状结构建立一个Robot节点,并对物理属性节点(Physics)设置质量与重心,完成对无人机的动力学建模。
3.1 VCH各模塊与节点的连接
本模型以Robot节点作为整体,以机身作为边界节点(Bounding object)来定义VCH的碰撞边界。在Robot节点中下添加矢量控制模块,动力模块和各种虚拟传感器等子节点。机身属于无人机Robot节点的children部分,包含骨架,降落支脚,电池等部分,利用Transform节点将各个零件组合在一起;动力模块包括共轴反转电机,通过同轴的两个旋转发动机设备(Motor)进行组合建模;矢量控制模块由结构件和两个舵机构成。通过铰链(HingeJoint)节点下的电机设备(Motor)实现对舵机动力性能的模拟,并对铰链转动轴和各种转轴相关的物理参数进行设置,实现模块之间的三维空间相对转动运动。矢量控制模块通过两个舵机分别与机身和的动力模块进行连接。本模型各节点连接图如图3所示。
3.2 传感器部分的设计
Webots提供丰富的传感器,其中常用的传感器功能如表2所示。本模型用到的虚拟传感器有全球定位系统(GPS),惯性测量单元(Imu),陀螺仪(Gyro)和相机(Camera)。利用Shape节点设计传感器的形状,通过将Shape节点分别导入Transform节点,然后将GPS,Imu以及Gyro传感器的Transform节点移动到无人机的机身中心,用于测量无人机相对于世界坐标系的位姿与速度信息。Camera传感器的数量为2个,用于模拟双目相机传感器。为提供无遮挡的图像信息,双目相机传感器放在机身的下方靠前的位置。在Webots中完成建模后的VCH如图4所示。
4 飞行控制程序设计
矢量控制模块是通过俯仰和横滚两个舵机驱动两个反向转动无刷电机的方向,实现VCH的飞行。在悬停时,无人机能通过控制四个驱动电机实现八种运动:正反转动的无刷电机同时加速或者减速可以实现无人机的垂直升降运动;正反转动的无刷电机在进行差速运动时产生的扭矩差可以实现无人机的偏航运动;正反转动的无刷电机在进行同速运行时,通过调节俯仰舵机或横滚舵机的角度,可以实现无人机的俯仰运动或横滚运动,运动的方向为飞行动力与重力的合力方向。四个电机的运动与对应的无人机运动状态关系如表3所示。
4.1 PID控制算法
VCH的自稳控制算法使用串级PID控制算法。模拟PID算法离散化后的算数表达式如下:
(1)
式中:Kp为比例系数,Ki为积分系数,Kd为微分系数,e(n)为期望角度与实际角度之差。
本模型中基于串级PID飞行控制器实现的算法如下:高度估计使用的是单级PID,用户输入的高度信息与GPS数据之差作为输入,经过单级PID更新后输出油门的控制量;姿态控制采用双级PID,角速度PID作为内环,角度PID作为外环,即P-PID[12,13]。外环的输入为期望角度与实际测量角度之差,经过角度环PID更新之后输出期望角速度;内环的输入为期望角速度与实际测量的角速度之差,经过角速度环PID更新后输出为电机的控制量。串级PID控制器的算法流程原理如图5所示。
4.2 Webots_ros框架
ROS是一个开源的应用于机器人研发的元操作系统。它提供了操作系统应有的服务,包括底层设备控制,硬件抽象,常用函数的实现,进程间消息传递和包管理。它也提供用于获取、编译、编写以及跨计算机运行代码所需的工具和库函数。ROS是一个分布式的进程框架,进程被封装在易于被分享和发布的程序包和功能包中,提供了一种发布-订阅式的通信框架用以简单、快速地构建分布式计算系统,让机器人的开发变得更加简便。
Webots_ros使用ROS框架中的服务与消息,为开发者提供了ROS与Webots之间的通信程序,通过在Webots中选择机器人robot的控制器为ros,在仿真启动时会在roscore中发布和订阅与传感器、驱动器等相关的话题和服务,用于实现对其他功能包的通信。Webots_ros通信框架如图6所示。
4.3 基于ROS框架的飞行控制程序
基于ROS框架的VCH飞行控制程序分为四个部分,分别为初始化、传感器信息读取、自稳控制和主循环。在飞行控制器运行时,需要对无人机的传感器与驱动器调用Webots_ros服务(service)进行初始化,实现使能的功能。在添加传感器时,每一个传感器都由用户分配唯一的命名,通过一定的频率将数据由对应的话题(topic)发布到ros中,飞行控制器通过订阅相应的传感器话题(topic)获取传感器的数据,然后调用回调函数对数据进行处理。
VCH的自稳系统在本飞行控制器上被集成在update()函数中,其原理是:飞行控制器获得传感器关于俯仰(pitch),横滚(roll)方向的角速度与角加速度,并设置这两个方向的期望角速度与角加速度为0,即在无人机悬停时机体z轴的加速度方向与重力加速度方向重合且静止。将测量值与期望值的差值通过串级PID的更新得出在pitch与roll方向的控制量,加上用户设置的数据,然后通过动力分配函数将方向控制量转化为每个电机的控制量,最后调用Webots_ros中的服务service设置各个电机的输出值。
VCH的飞行控制器主循环的作用是通过ros::spinonce()函数处理订阅的传感器数据,将数据传入update()函数进行处理,处理完毕后将通过reset()函数将变量的数据清零,进入下一次循环。整体程序控制流程如图7所示。
5 无人机双目定位的实现
5.1 Vins-fusion算法
Vins-fusion是一种基于优化的多传感器状态估计器,是对Vins-Mono的拓展,支持多种视觉惯性传感器的融合(如仅双目相机,双目相机+IMU以及单目相机+IMU等),可以实现无人机,汽车和AR/VR的精确自主定位。其特征有:在线时间校准,在线空间校准,多传感器支持以及视觉循环闭合等。本模型采用Vins-fusion中基于双目相机的实现方案为VCH提供视觉自主定位的功能,得出VCH实时的世界坐标,并记录其空间运动轨迹。
5.2 整体的通信框架
Vins-fusion功能包通过订阅VCH中左右目相机的图像信息,结合两个相机之间的位姿转换矩阵,对左右目相机图像进行时间上的同步,进行双目三角化得出路标点,利用后端非线性优化与闭环优化对相机的位姿与路标点进行优化,得出比较精确的相机位姿。
VCH在运动时,通过话题topic发布双目相机获取到的图像,Vins节点在运行时订阅双目图像的话题获取图像数据,在线优化双目相机左右目之间的位姿变换矩阵,并进行进一步的处理。无人机与Vins节点通信的整体框架如图8所示。
6 实验结果与分析
本文在Webots软件下对VCH与飞行环境进行建模,如图9所示。通过Webots_ros设计出针对Webots模型的,应用于ROS框架的飞控程序。利用Webots_ros中设置的话题和服务与开源定位算法Vins-Fusion进行通信,在对VCH进行飞行测试的过程中进行双目定位,获得其实时姿态与飞行轨迹,实现了Webots仿真环境下对新型无人机的自主定位与轨迹记录的功能,并在Rviz软件下显示记录的定位与轨迹数据,如图10所示。
7 结 论
本研究实现了一款新型的具有矢量定向机构的共轴双旋翼无人机,在Webots中完成实体造型与动力学建模,通过编写基于ROS框架的飞行控制程序,实现了无人机的自主飞行,利用植入的双目定位算法Vins-fusion,实现了无人机的自主定位与三维路径轨迹的绘制,制作了实体样机并试飞,验证了这种研发方式的可行性和有效性。Webots使用图形化操作进行建模,且场景树会展开到所选择的关节,便于修改模型的参数。在创建零部件众多的模型时,使用Webots会比Gazebo和V-REP等仿真软件更加方便;而ROS系统强大的开源生态环境也为研究带来极大的方便。无人机仿真可以有效缩短飞行器及其飞行控制器的设计与调试时间,降低材料成本与试错成本,提高研发的快速和安全性,本研究对快速开发新型无人机飞控和接入新型传感器有很好的参考价值。
参考文献:
[1] 周炎.新型共轴无人直升机飞行控制技术研究 [D].南京:南京航空航天大学,2020.
[2] 王永杰,朱清华,何振亚.火星直升机配平和稳定性研究 [J].飞行力学,2020,38(6):24-29.
[3] 戴兴安.复合式共轴双旋翼高速直升机飞行边界安全保护控制技术研究 [D].南京:南京航空航天大学,2019.
[4] 高瀚林.一种共轴式直升机/旋翼机转换式飞行器飞行特性研究 [D].南京:南京航空航天大学,2020.
[5] 吴益超.复合式共轴高速直升机建模及其控制技术研究 [D].南京:南京航空航天大学,2019.
[6] XIAO K,TAN S C,WANG G H,et al.XTDrone:A Customizable Multi-rotor UAVs Simulation Platform [C]//2020 4th International Conference on Robotics and Automation Sciences (ICRAS).Wuhan:IEEE,2020:55-61.
[7] GARC?A J,MOLINA J M.Simulation in Real Conditions of Navigation and Obstacle Avoidance with PX4/Gazebo Platform [C]//2019 IEEE International Conference on Pervasive Computing and Communications Workshops (PerCom Workshops).Kyoto:IEEE,2019:979-984.
[8] HU B,ZHOU Z H,LI C T.Design of Semi-Physical Real-Time Simulation System for UAV Based on xPC [C]//2019 5th International Conference on Control Science and Systems Engineering (ICCSSE).Shanghai:IEEE,2019:31-35.
[9] 毛成凱,张瑞雷.基于Webots的SLAM算法及其系统实现研究 [J].常熟理工学院学报,2021,35(5):46-52.
[10] QIN T,PAN J,CAO S Z,et al.A General Optimization-based Framework for Local Odometry Estimation with Multiple Sensors [J/OL].arXiv:1901.03638 [cs.CV].[2022-07-03].https://arxiv.org/abs/1901.03638.
[11] 孙希君,王秋滢,王水根,等.基于ROS室内巡检机器人的视觉惯性融合定位方法 [J].现代信息科技,2021,5(13):139-143+147.
[12] 吴东旭,丁茹,张梓嵩,等.基于P-PID控制器对共轴双旋翼飞行器的姿态控制 [J].沈阳理工大学学报,2019,38(4):58-61.
[13] 冯庆端,裴海龙.串级PID控制在无人机姿态控制的应用 [J].微计算机信息,2009(22):9-10+45.
作者简介:麦伟图(1995—),男,汉族,广东佛山人,硕士研究生在读,研究方向:嵌入式无人机与SLAM技术;陈元电(1977—),男,汉族,广东肇庆人,讲师,硕士,研究方向:机器人、人工智能、无线通信;通讯作者:苏成悦(1961—),男,汉族,湖南长沙人,教授,博士,研究方向:应用物理、光电技术;徐胜(1976—),男,汉族,广东梅州人,讲师,硕士,研究方向:机器视觉与SLAM技术;施振华(1994—),男,汉族,广东广州人,软件工程师,本科,研究方向:无人机技术。
收稿日期:2022-08-22