APP下载

基于ROS开发平台的服务机器人智能导航系统及仿真验证研究

2019-12-27邱钊鹏邱利军陈春先

实验技术与管理 2019年12期
关键词:移动机器人激光雷达控制器

邱钊鹏,邱利军,陈春先,辛 义

基于ROS开发平台的服务机器人智能导航系统及仿真验证研究

邱钊鹏,邱利军,陈春先,辛 义

(北京电子科技职业学院 机电工程学院,北京 100176)

对室内移动机器人的定位导航系统进行了改进设计。基于机器人操作系统(ROS)开发平台,应用树莓派控制器进行平台控制,采用激光雷达进行环境信息收集,开发了一种拥有路径规划等多种功能的软件算法。仿真结果说明该系统所构建的环境地图可以达到很高的精度,并且可以进行模块化开发和拓展,降低开发难度及费用。

移动机器人;导航系统;开发平台;仿真验证

移动机器人能适用于多种环境,其自身配备了传感器等,在实际移动的过程中可以获得一系列环境信息,并基于这些信息来实现导航功能[1-3]。对机器人自主运动进行分析可知,其中最为关键的是即时定位与地图构建(simultaneous localization and mapping,SLAM)技术[4-5]。本文对SLAM算法进行了较深入的研究,并进行室内定位和导航系统的开发。机器人智能导航系统的控制器采用卡片式电脑树莓派,硬件平台的搭建创造性地使用了激光雷达,软件开发采用ROS分布式机器人操作系统框架,使该系统可以实现真正的差速驱动和较低的开发成本。

1 同步定位与地图构建

SLAM模型见图1。给出1:={1,2,…,u}以及1:={1,2,…,z},对0:={0,1,…,x}进行求取。

由于机器人运动的起始点所处的环境和所处的地点并不明确,所以在移动的过程中会对环境特征进行持续采集,也就可以实现对自身位置以及姿态的确定,并在上述数据的基础之上实现地图的有效构建。然而,对SLAM过程进行分析[6-7]时,由于SLAM过程具有不确定性,某一时刻机器人的位姿无法精确表示,需要使用分布进行估计[8]。虽然传感器会辨别机器人的相对运动,但整个过程很难具有确定性,加之外界环境的噪声影响[9],在迭代运算中,相应的增量容易产生误差,便会采用更多的迭代次数,而这种情况下又会产生相对更多的误差,进而影响到多方面的精确度。为了解决这一问题,就需要补偿累积误差。本研究采用环路闭合检测法检测补偿累积误差,检测系统框图如图2所示。

图1 SLAM模型

图2 检测系统框图

A*算法是一种需求最优路径的方法,在很多领域都有应用,也有着非常不错的效果,通常应用于静态环境中[10-11]。机器人要朝着某一目标移动,但在规划移动策略前要进行一系列准备工作,首先需要规划全局路径。本系统的开发采用了A*算法进行全局路径规划。

2 基于ROS和激光雷达的系统实现

作为机器人操作系统(robot operating system,ROS)平台,主要硬件模块包括了树莓派3B,还包括RPLIDAR A1激光雷达以及Arduino、A4950模块、Pro Mini模块等,其相互间关系详如图3所示。若想要功能更加丰富,则需要配置其他类型的传感器。

2.1 硬件核心模块

2.1.1 激光雷达

激光雷达(LiDAR)在工作过程中会向目标发射激光束,一部分激光束会反射回来,基于被反射回来的光束,可实现对目标距离的测量。激光传感系统在生产实践中有着非常普遍的应用[12],例如二维、三维立体扫描激光雷达。本服务机器人智能导航系统采用RPLIDAR A1型激光扫描测距雷达,其本质上属于一种二维激光雷达,在实际应用中有着非常低的成本,因此十分受欢迎。该设备采用三角测距原理,激光 扫描半径6 m,在5.5 Hz下的测距分辨率可以达到0.2%。

图3 ROS模块相互间关系

2.1.2 控制器

树莓派3B在众多设计中有着普遍的应用,本质上属于一种开源卡片式电脑,采用ARM架构[13]。Linux内核UbuntuMate操作系统是一种分时系统,而为实现对移动机器人运动的有效控制,需要配备Arduino ProMini最小系统,并依托高速串口连接主控制器和驱动控制器。

2.1.3 其他模块

移动机器人平台要驱动2个减速电机,并要保证2个减速电机可以实现差速运动,减速比为1∶30,额定功率为7 W,极限转速为500 r/min。电机需要实现转速反馈和里程统计,这两个功能依托其自带的A/B相编码器来实现。供电模块采用电压为12 V的航模 电池。

2.2 软件核心模块

2.2.1 机器人操作系统(ROS)

ROS是一种开源级操作系统,可以提供众多的服务,例如程序间传递信息。ROS采用分布式处理框架,所获得的处理平台存在差异,关键是应用通信模块实现对等式网络解耦合,囊括了异步数据流通信等多种类型。在实际应用中,ROS的分布式处理框架能够保证每个可执行程序的独立性,可以真正实现松散耦合。为了更容易进行共享和分发,必须对其进行分组,该过程的实现主要依托于功能包和功能包集。

2.2.2 系统软件设计

机器人系统的开发实现模块化,对应的基本组织元为base_controller、myrobot、move_base、amcl等,在所有的包中有多个节点,可以保证功能的实现,如图4所示。

图4 ROS系统软件框架

对myrobot包进行分析可知,其所拥有的部分文件主要说明机器人在启动过程中必须进行加载,此时主要应用了ROS中的工具,同时还会将向坐标变换关系传送给系统,在仿真测试中也可以得到很好的应用。

base_controller包在实际应用中可以控制机器人的运动。机器人在这一过程中还会向其传送线速度和角速度运动指令,对于这部分所获得的指令进行计算,同时完成相应的指令转换,并在处理后将其传送给驱动控制器。后者也会将驱动轮速度的消息传送给前者,并对这部分的信息进行针对性的转换,最终呈现出的形式为里程信息和里程坐标变换,并向其他节点传送。该包所拥有的节点可以实现对机器人移动的键盘远程控制,在地图构建的过程中实现对机器人移动的远程控制,而这一过程的实现主要依托于Wi-Fi局域网。

对rpli-dros包进行分析可知,其在实际工作的过程中需要与激光雷达进行通信,完成相应参数的配置,同时对传感器所获得的数据进行读取。本质上,rpli-dros属于RPLIDAR的ROS驱动。

对cosserial包进行分析可知,其在实际工作的过程中需要实现主控制器和驱动控制器间的通信,而这一过程的实现主要依托于USB。

对SLAM包进行分析可知,其在实际工作的过程中需要实现SLAM地图构建,move _base包的主要职责是导航,而amcl包的职责主要是定位。

2.2.3 驱动控制算法

驱动控制器可对电机等进行控制,通常情况下,驱动控制器的运行周期被设定为20 ms,以保证良好的实时性,多任务主要依托于回调方式来实现,其流程如图5所示。底盘的驱动采用减速电机,配置数量为2个。在驱动的过程中可以实现TTL电平的输出,从而对电机方向进行控制;若实现PWM信号输出,可以实现对电机转速的控制,所采用算法为

式中,Δ为控制量的增量,即输出电机驱动PWM信号占空比的变化量。P、I、D分别为PID控制器中P值参数、I值参数以及D值,Δ()为P值参数下控制变量,()为I值参数下控制变量。

PID控制器的输出与前一时刻控制量叠加,得到当前时刻控制器的实际输出值。

图5 驱动控制器运行流程

2.2.4 SLAM功能实现

Hector SLAM算法的开始需要获得扫描数据,然后需要处理其中所拥有的环境特征,实现特征点集的有效提取;后续就要对最佳匹配激光束的刚性变换进行求解。此时主要应用高斯-牛顿方程校正机器人位姿,同时也可以构建占用栅格的地图,如图6所示。

图6 实现功能框图

(1)对于URDF机器人对应的描述文件进行加载,对于非固定关节所呈现的连接状态进行发布,并对于转变坐标系间所呈现出的关系进行发布。驱动控制器在这一阶段实现启动,base_controller需要启动,odom_publisher节点此时也需要启动,其所发挥的主要作用就是对命令解析进行控制,对机器人现阶段的速度和现阶段所达到的里程数据进行收集、变换和发布,键盘远程控制节点此时也需要被开启。

(2)基于计划配置工作参数,开启运行激光雷达。

(3)启动hector _mapping,其在系统中的作用就是实现Hector SLAM。

(4)启动Rviz界面,其在系统中的作用就是对地图的构建进行实时观察,并对机器人位姿进行实时观察。在这种情况下,需要应用机器人三维模型等。

2.2.5 导航功能实现

应用ROS的move_base软件包可以实现导航,并有效输出控制命令等。对于move_base包所拥有的节点,需要准确地进行配置,同时还需要针对性地配置参数、代价地图,添加启动文件,明确目标位置和方向,在传感器相关信息的基础之上,对路径进行针对性的规划,同时对机器人进行相应的控制,保证其可以达到目标状态。

这一过程主要用到了传感器的实时信息和应用规划路径。应用规划路径所使用的规划算法为Dijkstra最优路径算法,可以对机器人的运动进行有效控制。导航包在系统中可以实现以下部分的输入:在二维环境中,应用自适应蒙特卡罗方法的概率定位系统amc1包,对于机器人所存在的位姿,依托粒子滤波器来实现跟踪和相应的预测;对Dijkstra进行分析可知,其在系统中所发挥的作用就是给出先验地图信息。

3 仿真测试和讨论

控制器模块包括主控制器和驱动控制器。

(1)主控制器。主控制器可以实现ROS、SLAM算法的有效运行,在运行中可以得到传感器所收集的一系列数据,实现地图的构建、机器人位姿的估算以及控制命令的输出。

(2)驱动控制器。驱动控制器在机器人智能导航系统中的作用是对机器人的运动进行控制,获得主控制器所发布的控制命令。这一过程主要依托串口实现,控制命令需要被转变为WPM占空比控制信号,由PID控制算法实现。系统软件有驱动控制等模块,模块间通信依托于话题发布、订阅机制。

物理模型和平台的URDF机器人描述文件是一样的,Gazebo插件依托于XML描述文件的方式来实现,对机器人模型的颜色等进行修改,保证其符合真实情况。机器人系统的SLAM功能采用Hector SLAM算法实现,应用键盘远程控制机器人的运动。这一过程依托Wi-Fi局域网实现。机器人可以遍历全部环境,进而可以构建地图。在本系统的设计中,Hector SLAM需要激光雷达有较高的精度以面对最小二乘问题,而这一问题主要基于优化的算法来实现,不需要大量计算,适用于多种环境,地图也可以达到较高的精度。

以上环节可以得到先验地图,并在这一过程中对move_base包节点关系等进行配置,对起始位姿、目标位置以及后续对目标方向进行确定。在这一系列操作后导航就可以启动。算法能实现对路径的自动规划,还能实现对机器人的自动控制,保证其朝着目标位置移动,同时开启粒子云实时显示。

4 结语

室内移动机器人采用树莓派控制器和RPLIADRA1激光雷达。通过一系列的软件仿真及相应的实验测试工作,全方位检测了机器人系统,并掌握了系统的性能以及实际的运行表现。仿真结果证明:系统的导航等功能都可以很好地实现,开发成本较低,可以真正实现模块化的开发。在使用该系统的过程中,可以根据实际需求进行拓展,并将其作为基础实验平台运行。

[1] ENGEL J, SCHÖPS T, CREMERS D. LSD-SLAM: Large-scale direct monocular SLAM[C]//European Conference on Computer Vision. Springer Cham, 2014: 834–849.

[2] FORSTER C, PIZZOLI M, SCARAMUZZA D. SVO: Fast semi-direct monocular visual odometry[C]//Robot⁃ics and Automation (ICRA), 2014 IEEE Interna tional Conference on. IEEE,2014: 15–22.

[3] LABBÉ M, MICHAUD F. Online global loop closure detection for large- scale multi-session graph-based slam[C]//Intelligent Robots and Systems (IROS 2014), 2014 IEEE/RSJ International Con⁃ference on. IEEE, 2014: 2661–2666.

[4] BONNABEL S. Symmetries in observer design: Review of some recent results and applications to EKF-based SLAM[C]// Robot Motion and Contro 2011. London: Springer, 2012: 3–15.

[5] 柯博文.树莓派Raspberry Pi实战指南[M].北京:清华大学出版社,2015.

[6] 周兴社.机器人操作系统ROS原理与应用[M].北京:机械工业出版社,2016.

[7] 雷泰,赵荣耀,袁方.基于模糊自适应的PID控制器研究[J].陕西电力,2016, 44(6): 64–68.

[8] 姚雨,李庆,陈曦.优化的A*算法在航迹规划上的应用[J].微电子学与计算机,2017, 34(7): 51–55.

[9] 庄宿国,赵伟刚,杨霞辉,等.基于AutoCAD平台的涨圈密封参数化软件开发[J].火箭推进,2017, 43(3): 47–52.

[10] 王宏民,孙增鹏,赵晓光.面向室内环境的主动视觉即时定位与地图构建系统[J].厦门大学学报(自然科学版),2019, 58(3): 429–435.

[11] 张抒扬,董鹏,敬忠良.变分贝叶斯自适应容积卡尔曼的SLAM算法[J].哈尔滨工业大学学报,2019, 51(4): 12–18.

[12] 权美香,朴松昊,李国.视觉SLAM综述[J].智能系统学报,2016, 11(6): 768–776.

[13] 董瑶,葛莹莹,郭鸿湧.基于深度强化学习的移动机器人路径规划[J].计算机工程与应用,2019, 55(13): 15–19.

Research on intelligent navigation system of service robot based on ROS development platform

QIU Zhaopeng, QIU Lijun, CHEN Chunxian, XIN Yi

(Electromechanic Engineering College, Beijing Polytech, Beijing 100176, China)

The positioning and navigation system of the indoor mobile robot is improved and designed. Based on the platform of robot operation system (ROS), raspberry controller is used for platform control, and laser radar is adopted to collect environmental information. A software algorithm with multiple functions such as path planning is developed. According to the simulation results, the environment map constructed by the system can achieve high precision and can be modularized and expanded to reduce the difficulty and cost of development.

mobile robot; navigation system; development platform; simulation verification

TP391.9

A

1002-4956(2019)12-0147-04

10.16791/j.cnki.sjg.2019.12.034

2019-04-29

2019-07-29

邱钊鹏(1979—),男,河南南阳,硕士,讲师,主要研究方向为自动控制、机器人技术与算法。E-mail: ty28me@163.com

猜你喜欢

移动机器人激光雷达控制器
手持激光雷达应用解决方案
移动机器人自主动态避障方法
工商业IC卡控制器改造为物联网控制器实践
法雷奥第二代SCALA?激光雷达
基于激光雷达通信的地面特征识别技术
基于激光雷达的多旋翼无人机室内定位与避障研究
基于Twincat的移动机器人制孔系统
模糊PID控制器设计及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
倍福 CX8091嵌入式控制器