ROS差速小车运动控制研究

2021-11-28 13:09鲍琳欣闫琦董明泽郑安迪罗宇昊
科技资讯 2021年21期

鲍琳欣 闫琦 董明泽 郑安迪 罗宇昊

摘  要:该文从机器人的自动驾驶应用的角度出发,在Ubuntu18.04系统下实现了一套基于ROS Melodic版本的机器人操作系统的移动机器人控制平台。在一个完整的机器人运动控制的设计中包括建图、定位、路径规划及路径追踪这4个步骤,平台首先以Gmapping方法构建出全局地图。由于路径规划与追踪对于机器人的运动控制非常重要,在进行各种方法的比较之后最终运用Dijkstra算法规划出一条全局路径然后采用DWA路径局部规划器进行局部动态避障,在运动控制方面也加入了PID控制器使机器人的转向更加平滑。

关键词:ROS   差速控制   动态避障   pure pursuit

中图分类号:TP242.6                       文献标识码:A文章编号:1672-3791(2021)07(c)-0001-03

Abstract: From the perspective of robot autopilot application, a mobile robot control platform based on ROS Melodic version of robot operating system is realized under Ubuntu 18.04 system. The design of a complete robot motion control includes four steps: mapping, positioning, path planning and path tracking. Firstly, the platform constructs the global map by Gmapping method. Because path planning and tracking are very important for robot motion control, after comparing various methods, Dijkstra algorithm is finally used to plan a global path, and then DWA path local planner is used for local dynamic obstacle avoidance. PID controller is also added in motion control to make the steering of robot more smooth.

Key Words: ROS; Differential control; Dynamic obstacle avoidance; Pure pursuit

伴随着人工智能技术、计算机与传感器技术的快速发展,自动化、智能化逐渐成为了主流,机器人的运用也逐渐广泛。智能消毒机器人、物流搬运机器人等渐渐普及,大大解放了人力,也减小了人们受到伤害的可能性。机器人便利了我们的生活,而这一系列的机器人最重要的是实现路径规划与追踪。由此设计了一套基于ROS机器人操作系统的移动机器人控制平台。

该平台在路径规划中,使用了dijkstra全局路径规划和DWA局部路径规划算法规划小车前行的路径。以Pure pursuit进行路径追踪。经检验,该方法可以达到较好的避障、运动控制效果。

1  平台总体设计

在Ubuntu18.04以及ROS Melodic机器人操作系统下使用差速车模,通过激光雷达、imu等传感器,完成对未知场地的建图,对道路上的障碍物识别避障,自主导航,并涉及了SLAM建图、路径规划算法、车辆运动控制算法等。由于是在小地图中进行可行性测验,利用Gmapping方法构建出的地图清晰实用,使得后面进行运动控制也达到了较好的效果。具体系统组成框图如图1所示。

2  路径规划

在得知目标点时,机器人需要规划出一条切实可行的路径,不仅需要与障碍物保持一定的距离,还要尽可能快地穿越障碍。首先经过全局路径规划规划出一条大致可行的路线,然后调用局部路径规划器根据代价地图的信息实现动态规划[1],在全局路线与局部路线相互协调下不断计算得出新路线,最终既能有效避开突然出现的障碍物,又能快速到达终点。路径规划的方式有很多,还有同时使用多种规划方法进行切换以实现动态规划的[2],主要介绍为实现差速控制采用的规划方法。

全局路径规划算法的选择主要是在A*以及Dijkstra[3]两者之间,它们在ROS平台上有较完整的封装,只需要在參数文件中做出选择即可实现两者的切换,两者都存在一定的利弊,以下是两种算法的对比介绍:Dijkstra是典型的深度搜索案例,即从出发点开始向四周扩散,利用代价地图在所有可能的路径之中加上各种权重计算出每条路线的代价从而得出最优路径。而它的优点也是它的缺点,此算法计算量很大,因此得出路径的速度远远慢于A*算法。然而笔者认为在机器人的路径规划中并不需要速度非常快,A*算法虽然计算速度较快,是一种启发式算法,将该种方法运用于二维地图路径规划时,它的指向性非常明显,规划出的路径不一定是最短路径,而是最快路径[4]。然而在A*算法实际应用于路径规划时,当出发点与目标点之间隔着一面墙经常会出现绕远路的现象并且所规划出的路径锯齿非常影响车的平稳前进。图2是在仿真平台中两种全局路径规划的比较。

从图2可以看出,在使用A*算法进行路径规划时,在拐角处产生了许多褶皱,并且由于A*算法中有贪婪算法的特性,所得到的并不是最优路径,在图中“L”型位置处存在严重的贴墙现象。

在局部动态路径规划的选择上,我们选用了动态窗口法,通过rqt_reconfigure在不重新启动仿真的情况下来对参数值进行修改以便更好地完成局部路径的动态避障,并且动态窗口法符合差速小车的要求,在必要时可以近似于在原地进行较大幅度的转弯。

3  路径追踪

在路径规划好后,研究者可以通过调节路径规划器中的参数调节控制机器人的速度。路径规划器在规划路径的同时也会发送计算出的速度信息,根据机器人的惯性大小、运动方式的不同,参数也要跟着改变。在此基础上,还加入了PID算法与pure pursuit算法[5]进行机器人的运动控制。主要是用PID来控制转向,使得小车的转向更加平滑,小车稳定行驶之后其odom坐标系也更加稳定了。

总体来说,平台的创新点在于以前方路径的斜率大小决定线速度大小,以车身和路径的角度误差大小决定角速度大小。另外,加入PID控制器来进行角度控制。

首先要进行前瞻点的选取,即小车需要一个合适的前向距离。前瞻距离较小时,小车行驶的轨迹可以更好地贴合规划出的路径,但是前瞻距离较小的话小车无法很好地感应到前方的转角以便提前进行减速;而前瞻距离较大则会导致小车突然转角过大或者小车完全忽视了路障的存在。在平台的设计中,采取了动态调整前瞻的方式。将所需的前瞻点以及当时的速度以及计算出的曲率大小一一对应之后进行拟合,最终得到一个公式,将此公式写入控制器中以达到动态调整前瞻点的目的,式中速度越快时前瞻越长,在即将到达弯道处曲率较大会及时衰减前瞻,减小实际速度与规划轮速的误差,降低小车过弯时撞墙的概率。减小其因惯性较大对实时改变速度的影响,以达到对弯道路径的准确跟踪。测试表明,动态改变前瞻点的大小可以很好地对不同的路况进行处理。

在路径已经被规划出来之后,结合小车位姿,找出拟定前瞻达到的路径点以及距离小车位置最近的路径点以一个固定的梯度进行斜率的运算,得出最大斜率。当这个斜率大到一个固定值时,立即减小线速度。紧接着计算出车身与路径的角度误差,误差大说明小车即将偏离路线,因此增大角速度。其中存在的一个问题是,这样规划出的速度变化幅度非常大,当打开rqt_plot工具进行查看时速度变化曲线是很尖锐的,在短时间内会有很大的起伏。因此,需要进一步采取措施,在线速度方面设计了一个最大加速度值,若理想速度变化大于这个最大加速度值之后,则先让速度达到当前速度加上最大加速度值,这样发布出的速度变化得更加平缓,实现速度的稳定变化;在角速度方面引进了增量式PID控制方法[6],在Proportion(比例)、Integral(积分)、Derivative(微分)这3个方面通过参数的调整使变得平滑起来。图3是关于PID的流程简图。

大多数的ros小车都是通过订阅cmd_vel话题得到需要的线速度和角速度,因此我们将希望机器人达到的角速度和线速度发送给cmd_vel话题,最终达到控制机器人进行自主导航的目的。

4  结语

该文利用路径规划算法与路径追踪算法设计了一种基于差速小车的运动控制平台。不同于传统的以调整现有路径规划器参数的方法,平台设计的主要创新点在于利用基于差速小车的pure pursuit算法进行路径追踪,引入PID控制算法使得小车在路径追踪时转向更加流畅。这种方法也可以应用到各种智能机器人领域,在此基础上加入消毒、搬运、服务等不同的因素。在减小了调参精力的同时也提升了效率。

参考文献

[1] 吕希涛.移动机器人SLAM与路径规划算法研究[D].青岛:山东科技大学,2020.

[2] 陈智康,刘佳,王丹丹,等.改進Dijkstra机器人路径规划算法研究[J].天津职业技术师范大学学报,2020,30(3):30-35.

[3] 周睿慜,李辉.改进动态规划算法的移动机器人路径规划[J].计算机工程与应用,2020,56(21):20-24.

[4] 华崴鉴.基于自主导航的移动机器人控制平台的设计与实现[D].南京:南京邮电大学,2019.

[5] 段建民,杨晨,石慧.基于Pure Pursuit算法的智能车路径跟踪[J].北京工业大学学报,2016,42(9):1301-1306.

[6] 刘安彬,张江,向劲松.基于PID算法的智能助老小车[J].智库时代,2020(7):251-252.