基于ROS 和PX4 飞控的四轮驱动移动机器人研究

2022-10-15 02:08周小华孙家辉
现代电子技术 2022年20期
关键词:航点四轮驱动飞控

周小华,吴 涛,李 博,孙家辉

(1.昆明理工大学 机电工程学院,云南 昆明 650500;2.成都铂贝科技有限公司(阿木实验室)研发部,四川 成都 611730)

移动机器人集成了智能感知、传感技术、动态决策、行为规划、行为决策、全局和局部路径规划等。随着科学技术的迅速发展及经济的快速增长,移动机器人逐渐成为人们关注的热点和研究的趋势,不论是在工业、航空航天还是民用领域,移动机器人的重要性都不言而喻。为了在未来使移动机器人更好地服务于人们,对移动机器人的研究越来越深入,使移动机器人变得灵活化和自主化尤为重要。

1 系统总体设计

1.1 系统硬件模块组成

移动机器人包含硬件和软件两部分,各种类型的硬件和丰富的软件整合到一台移动机器人上是一个庞大的工程,不仅要考虑到硬件的适用性,同时也要考虑软件的兼容性。基于以上考虑,为了实现基于ROS 和PX4飞控的四轮驱动移动机器人的系统设计要求,需要对整个系统的结构进行具体的设计与分析,合理且最佳地搭建诸多硬件和软件在其上面。

基于ROS 和PX4 飞控的四轮驱动移动机器人如图1 所示,包含的硬件有:SCOUT MINI 底盘(其内部包含STM32F4 开发板、电源模块、霍尔编码器、驱动电机、充电模块以及电量显示模块等相关元器件)、GPS 模块、WiFi 数传、思岚S1 激光雷达、PX4 飞控、Intel RealSense D435i 深度相机及T265 双目相机、显示器、分电板、降压模块、X86 板载计算机和支架等。

图1 四轮驱动移动机器人

四轮驱动移动机器人主要的硬件模块如下:

1)SCOUT MINI 底盘:底盘负责移动机器人的转向和运动。SCOUT MIN 智能移动底盘拥有独立悬挂的复合设计,采用四轮四驱,再加上动力强劲的轮毂电机,使其具备强悍的越野性,能够实现10.8 km/h 的高速运行。配置有标准航模遥控器,24 V 15 A·h 锂电池动力系统,续航里程可达10 km。同时造型炫酷,身形小巧,真正实现“灵巧似燕,驰骋如心”。

2)WiFi 数传:移动机器人上的PX4 飞控、X86 板载计算机以及远程PC 都可以连接WiFi 数传释放的WiFi进入到同一局域网中。

3)思岚S1 激光雷达:采用TOF(Time of Flight)飞行时间测距技术采集周围环境信息,用于激光SLAM、航点跟随时避障、室外导航时避障。

4)PX4 飞控:PX4 飞控作为一款硬件自驾仪,可用于无人机和无人车。其内部含有惯性测量单元(IMU)、气压计、磁罗盘等元器件,这些元器件共同组成飞行控制系统,通过与GPS 模块一起共同给四轮驱动移动机器人在室外运动时提供定位功能。

5)Intel RealSense T265 双目相机:T265 包含2 个鱼眼镜头、1 个IMU 和VPU。T265 双目相机能为四轮驱动移动机器人在室内无GPS 信号时提供定位数据。

6)Intel RealSense D435i 深度相机:包含左右红外相机和一个RGB 相机,左右红外相机进行深度测量输出深度图像,RGB 相机可以输出彩色图像。D435i 深度相机可以在视觉SLAM 以及四轮驱动移动机器人路径规划时避障使用。

7)上位机:本文系统所设计的上位机程序搭建在X86 板载计算机上,X86 板载计算机上预装了Ubuntu18.04 操作系统以及ROS Melodic 元操作系统,并搭载有移动机器人的ROS 功能包amovcar,X86 板载计算机TTL 转USB 连 接PX4 飞 控,通 过USB2.0 连 接S1 激光雷达,通过USB3.0 连接D435i 和T265 相机等硬件模块,并通过其自带的无线网卡以无线连接的方式接入WiFi 数传的无线局域网中。X86 板载计算机主要实现激光SLAM、航点跟随及避障、室外导航。

8)下位机:底盘中的STM32F4 为下位机,下位机主要通过Serial 通信协议与上位机进行通信。

9)霍尔编码器:通过记录电机转动的圈数为移动机器人提供里程计信息。

10)GPS 模块:GPS 模块集成GPS 传感器、罗盘、安全开关、蜂鸣器以及LED 灯,可以在室外为移动机器人提供定位数据。

11)电源模块:电源模块为24.9 V 的可充电锂电池,电源模块通过分电板输出2个5 V的电压端口,这2个端口分别为PX4 飞控和WiFi 数传供电;同时电源模块通过一个降压模块将24.9 V 的电压输出为12 V 的电压,12 V 的电压给X86 板载计算机供电。

图2 所示为四轮驱动移动机器人的硬件框架图。

图2 四轮驱动移动机器人硬件框架图

1.2 系统软件及功能包模块组成

搭建好相应的硬件框架后,就要进行必要的软件、固件及功能包的安装,远程PC 安装MissionPlaner 地面站和NoMachine 远程控制软件,PX4 飞控刷入APM(ArduPilotMega)固件,在X86 板载计算机上安装Ubuntu 18.04 和ROS Melodic。创建工作空间amovcar,在amovcar 的src 目录下进行realsense_ros、rplidar_ros、mavros、cartographer_ros、Navigation 功能包的安装,安装好各种需要的功能包后,对功能包中的参数要进行相应的修改,使其更好地适配四轮驱动移动机器人的各种硬件。

四轮驱动移动机器人软件框架如图3 所示。

图3 四轮驱动移动机器人软件框架图

APM 是一个开源的自动驾驶系统,支持无人车、无人机和无人船等。realsense_ros 功能包是关于T265 双目相机和D435i 深度相机使用的功能包,rplidar_ros 是S1 激光雷达使用所依赖的功能包。mavros 功能包允许在运行ROS 的计算机、支持MAVLink 的PX4 飞控以及支持MAVLink 的Mission Planer 地面站之间通信。cartographer_ros 为Google 开源的可用于移动机器人二维或三维条件下的定位及建图功能包。Navigation 功能包是ROS 自带的可用于四轮驱动移动机器人室内室外导航所需要依赖的功能包。四轮驱动移动机器人可以实现SLAM、路径规划、实时避障、室外航点跟随以及导航等功能。

1)SLAM 建图。使用ROS 系统自带的Gmapping 算法或者谷歌的Cartographer 算法实现四轮驱动移动机器人的同步建图与定位功能。

2)路径规划。给定四轮驱动移动机器人一个目标点及位姿,移动机器人使用move_base 功能包的A算法实现从起始位置运动到目的地的全局路径规划。

3)实时避障。移动机器人在运动的过程中,自身携带的S1 激光雷达扫描到实时的障碍物时,移动机器人可以通过动态窗口法(DWA)进行局部路径规划避开障碍物。

4)航点跟随。通过Mission Planner 画好相应的航点路径,四轮驱动移动机器人会跟着航点进行运动,并在运动的过程中使用VFH 算法进行避障。

5)室外导航。借助PX4 飞控、GPS 模块以及S1 激光雷达,移动机器人可以在室外进行导航。

2 四轮驱动移动机器人运动学模型

2.1 四轮驱动底盘运动学模型

在平面上建立四轮驱动移动机器人的两个坐标系,为四轮驱动移动机器人的全局固定坐标系,为四轮驱动移动机器人中心位置的移动坐标系。四轮驱动移动机器人当前位姿是由移动机器人中心在全局坐标中的位置(,),及前进方向与全局坐标轴正方向的夹角确定的,即=(,,)。四轮驱动移动机器人的运动学模型如图4 所示。

图4 四轮驱动移动机器人运动学模型

式中:为机器人的几何中心与驱动单元中心的距离;,为两驱动单元与移动坐标系轴的夹角,规定逆时针为正,顺时针为负;,,,分别为4个驱动轮的线速度;,,,与驱动单元中心,点的速度及角速度有如下关系:

式中:为车轮中心到驱动单元中心的距离;vv分别为两驱动单元中心的线速度;ωω分别为两驱动单元中心的角速度。

2.2 里程计模型

里程计是一种常用于轮式机器人相对定位的传感器,可以通过安装在左右电机上的霍尔编码器来获取里程数据,然后根据机器人的轮子半径和两轮间距计算出机器人的实时速度和位姿信息,其运动模型如图5所示。

图5 里程计测量模型

四轮驱动移动机器人在某一时刻的移动速度与水平方向的夹角为,速度为,角速度为,则任意时刻机器人的位姿可表示为:

3 移动机器人实验

ROS(Robot Operating System)是一个适用于机器人的开源元操作系统。因其开源特性、松耦合的分布式结构以及代码复用性,极大地降低了机器人领域的进入门槛,得到了机器人研究者的广泛关注和应用。

3.1 激光SLAM

SLAM(Simultaneous Localization and Mapping)即同步定位与地图构建。激光SLAM 是基于激光雷达来定位与建图的。本文实验的四轮驱动移动机器人使用的是谷歌开源的Cartographer SLAM。

Google Cartographer 是一个基于图优化的SLAM 算法,包含本地SLAM(前端)和全局SLAM(后端),使用SPA 执 行 回 环 优 化。Cartographer 算 法框架如图6 所示。本文的四轮驱动移动机器人使用思岚S1 激光雷达来获取外界环境信息,从而进行SLAM。考虑到四轮驱动移动机器人的尺寸规格比较大,室内环境比较杂乱,特征点比较复杂,故选择在公司住房楼顶天台上进行激光SLAM 建图实验。四轮驱动移动机器人和富斯FSi6S 遥控器开机,远程PC 和四轮驱动移动机器人同时连接上WiFi 数传释放的无线网络,然后远程PC 通过SSH命令远程连接X86 板载计算机上Ubuntu 18.04 系统。一切测试正常后,启动四轮驱动移动机器人激光SLAM建图的节点,同时在远程PC 端启动rviz 节点进行环境可视化,将富斯FS-i6S 遥控器的拨杆拨到手动(MANUAL)模式下,通过遥控器遥控四轮驱动移动机器人运动,从远程PC 上的rviz 界面可以看到周围环境信息的特征以及地图构建的过程。当四轮驱动移动机器人在整个环境中走完一圈时,地图基本就构建完成。四轮驱动移动机器人激光SLAM 过程如图7 所示。

图6 Cartographer 算法框架

图7 四轮驱动移动机器人激光SLAM 过程

在地图构建完成后,远程PC 端启动map server 节点将建好的地图保存为二维栅格地图。如图7 所示,建图过程中,ROS 节点会不断地校正机器人在环境中的位姿,从而保证地图的实时性和准确性。

3.2 航点跟随及避障

航点跟随是指在Mission Planner 地面站给定合适的几个航点,航点与航点相连变成航线规划,移动机器人会沿着规划好的航线路径进行运动,在运动的过程中移动机器人通过GPS 模块定位并不断调整自身的姿态,避免偏离航线太多,尽可能地在规划好的航线上运动,移动机器人在运动的过程中可以通过VFH 算法避开实时运动的障碍物。航点跟随及避障流程如图8 所示。

图8 航点跟随及避障流程图

寻找一个开阔的地点,选择一个晴朗的天气,这样有利于GPS 信号的接收。首先远程PC 端的Mission Planner 地面站通过WiFi 数传释放的WiFi 远程连接PX4飞控,连接成功后,当GPS 模块上的LED 灯显示绿色,说明GPS 信号比较稳定。此时可以在Mission Planner 地面站看到四轮驱动机器人在GPS 下的位姿,如图9a)所示。在Mission Planner 地面站中切换到飞行计划,通过鼠标左键点击地图上的点给机器人规划好航点,点击“写入航点”,此时规划好的航点路径就写入PX4 飞控中。因为Mission Planner 地面站软件只有Windows 版本,这时可以通过Nomachine 软件远程连接X86 板载计算机,在X86 板载计算机中启动VFH 节点。然后在Mission Planner 地面站的飞行数据界面中找到“动作”,在动作界面里选择“Guided 模式”,点击设置模式,将“Guided 模式”写入到PX4 飞控中。此时四轮驱动移动机器人会按照规划好的航点路径进行运动,在航点跟随的过程中如遇到静态的障碍物或者实时的障碍物(比如行人的走动等),移动机器人会通过VFH 算法进行避障,避开障碍物后会再次回到规划好的航线上去。移动机器人航点跟随及避障图如图9 所示。

图9 移动机器人航点跟随及VFH 避障

3.3 室外结合PX4 飞控导航

四轮驱动移动机器人路径规划及避障使用的是ROS 官方的Navigation 元功能包,导航时主要用到Navigation 元功能包中的AMCL 功能包和move_base 功能包,AMCL(adaptive Monte Carlo Localization,自适应蒙特卡洛定位),采用粒子滤波器跟踪已知地图中机器人的位姿来进行定位;move_base 是用于路径规划,包含全局路径规划、局部路径规划以及恢复行为。针对室外环境,当没有二维栅格地图或者不好建立二维栅格地图时,移动机器人就无法使用AMCL 来进行定位。因四轮驱动移动机器人车体上搭建有GPS 和PX4 飞控,此时可以用GPS 定位来验证Navigation 的有效性。

四轮驱动移动机器人室外结合PX4 飞控导航的框架图如图10 所示。首先在Ubuntu 中使用gimp 软件绘制出一个空白的二维栅格地图,在move_base 中,通过map_server 功能包提供move_base 开始创建的空白二维栅格地图,S1 激光雷达提供/scan 话题,激光雷达用于在全局路径规划和局部路径规划中进行避障,mavros 功能包中的local_position/pose 话题会将GPS 获取的本地数据传递给move_base,同时霍尔编码器会将车轮运动的里程计信息提供给move_base。四轮驱动移动机器人一个目标点及位姿是通过rviz 提供的。move_base 输出的话题为cmd_vel,cmd_vel 话题用于控制移动机器人速度,使其移动到目标点。

图10 室外导航框架图

在四轮驱动移动机器人的上位机上启动导航的节点,图11 所示为导航节点关系图。图12 所示为全局、局部路径现划和避障示意图。在rviz 中点击2D Nav Goal,此时四轮驱动机器人获得多个目标点及目标点的位姿信息,global_planner 功能包通过A算法规划好一个全局规划路径。在四轮驱动移动机器人运动到目标点的过程中遇到障碍物时,local_planner 功能包通过动态窗口法(DWA)进行避障,同时原先规划好的全局路径也随之更改,重新生成新的全局路径。

图11 室外导航节点关系图

图12 全局及局部路径规划和避障

4 结 语

本文基于ROS 和PX4 飞控设计一种四轮驱动移动机器人系统,整个系统采用分层设计的原理,上位机以X86 板载计算机为核心控制器,搭建PX4 飞控,利用思岚S1 激光雷达和D435i 深度相机作为外界环境感知和采集系统;下位机以STM32F4 开发板为控制器,上位机与下位机能够进行高效的数据交互。在软硬件搭建好的情况下,通过激光SLAM、航点跟随及避障、室外导航的各项实验测试,验证了四轮驱动移动机器人控制系统的稳定性和有效性。本文的实验研究结果可为后续对四轮驱动移动机器人的研究奠定基础,后续将对四轮驱动移动机器人进行视觉SLAM 的研究以及对四轮驱动移动机器人的室内室外导航算法做进一步的优化研究,使得四轮驱动移动机器人能够更好地适应工业园区的巡检和安防需求。

猜你喜欢
航点四轮驱动飞控
选育用管四轮驱动 打造高素质专业化年轻干部队伍
民用飞机飞控通电自检测安全性研究
无人机飞控软件架构设计初探
二次开发在航点航迹图批量绘制中的应用
02 飞控技术与机场安保引关注
飞控系统故障告警实时监控软件的设计与实现
四轮驱动 促青少年健康成长
什么是四轮驱动?
Valeo公司的混合动力四轮驱动系统