欢迎来到必胜文档网!

基于ROS的路径决策自主导航机器人

文章来源:网友投稿 时间:2023-09-24 17:00:32

张博容,郏冰淋,郭 乾,刘 磊

(南开大学滨海学院,天津 300450)

现如今,随着我国在电子技术领域的不断发展,智能化设备正在逐渐进入到人们普遍的生活中,其中自主导航相关技术已经被广泛应用于各个领域。在自主导航领域中,传统车辆级的自主导航技术研究的技术门槛高、人力消耗与实验场地、执行工作效率低、不适应于动态障碍,本文针对自主导航、路径规划、动态避障展开研究,其中路径规划技术的评价指标决定着机器人的工作效率。在众多路径规划算法中,本文将优化传统路径算法,使移动机器人在行进过程中的效率问题得到改善,得到一种高效、精准、智能的移动机器人。

在小型自主导航机器人技术中,关键的问题有两个,其一是移动机器人的定位与导航,机器人自主导航主要包含以下三方面工作:第一,地图构建;

第二,定位;

第三,路径规划。解决这一问题可以采用代价地图costmap 来绘制地图,然后用AMCL 来定位机器人,最后结合Dijkstra 算法、DWA 算法、TEB 算法来确定机器人的行进路径。其二对于路径规划问题进行更深入的研究,也就是路径最优问题,当给机器人规划了多条路径后,需要精准高效的完成任务。所以最优路径算法具有关键作用,路径规划严重影响着移动机器人的行进效果,因此对于路径最优问题,在整体的自主导航算法框架中,插入结合路径决策算法。本文通过设置人工给定的多条路径以及相应环境下节点权重,机器人在已知环境下基于多条路径中不同环境的节点权重进行加和,以此得出权重代价和,代价和最高为最优路径,最后机器人以最优路径行进。

综上,本文基于ROS(Robot Operating System)自主导航系统利用costmap、AMCL 算法、Dijkstra 算法、DWA 算法、TEB 算法等技术,设计实现一种能路径决策的导航算法框架,具体实现一种能路径决策的自主导航机器人。

1.1 阿克曼差速结构

自主导航移动机器人采用两驱四轮的动力驱动结构,后轮方向固定,前轮可以转向,从而完成机器人的整体转向,具体涉及阿克曼转向结构,利用阿克曼转向特性原理实现四轮转向,理论分析如下:

阿克曼差速结构如图1所示。设机器人的前轮定位角度等于0,行走系统为刚性。在转向时,全部车轮都绕同一个瞬时中心点做圆周滚动,且前内轮与前外轮的转角应满足下面关系式:

机器人自身车轮轴距L已知,角由IMU9250 惯性测量模块测得,则求解如下方程:

可得瞬时转向半径R。在求得R后,逆解如下方程组:

可得到左、右前轮的转向角。

综上所述,此过程方法可以利用阿克曼转向特性实现分别控制两个单轮的单轮转向。

1.2 阿克曼梯形

上述阿克曼差速结构需要同时分别控制两个前轮转动,从而完成转向。机器人移动在动态环境中,不免会出现恶劣环境,在恶劣环境中行进极有可能导致左、右轮不协调,产生不必要的行进失误。阿克曼梯形结构如图2所示。依据阿克曼梯形结构,可以优化上述结构,仅利用唯一一个舵机转向,便可实现机器人整体转向,具体涉及理论分析如下:

图2 阿克曼梯形结构

阿克曼梯形满足阿克曼理论转向特性的四连杆机构,由式(4)确定:

梯形上底长度AB与两主销中心距及两主销中心线穿地点之距完全一致,由式(4)可计算出梯形内角Qa,设AD、BC为机器人两前轮位置,Qa为转向角。则通过控制单一的角Qa变量,即可控制整个梯形的变化,利用阿克曼梯形理论,可以实现同时控制两个前轮的转向。在梯形机械结构转向过程中,前排的车轮转向角度始终保持一定的关系,即Qb=Qa+x。这样便无需考虑对每个前轮的单独控制,本机器人通过STM32 主控板连接一个舵机来搭建阿克曼梯形实体硬件机械结构,以此通过舵机的的运动改变阿克曼梯形,从而实现机器人的转向过程。

自主导航移动机器人采用STM32 主控板作为底层结构控制板,驱动底层结构,通过PWM 控制电机驱动模块控制电机,电机反馈回速度与里程数据用于算法处理,连接OLED 屏幕用于显示速度、坐标等基础信息,连接舵机控制阿克曼梯形转向机械结构完成转向,通过I2C 接口连接IMU9250 惯性测量模块,实现基坐标系转换,获取位姿相关数据,用于算法处理;
采用JetsonNano 开发板来搭载ROS系统,通过USB 与STM32 开发板通信,通过USB 连接激光雷达与深度相机等主要传感器,在建图、导航过程中接收数据,通过USB 与WiFi 通信模块连接,实现与虚拟机的通信,通过虚拟机来运行Rviz 等可视化工具,来观测与调试机器人的运行结果,以便调整与验证整体实验效果。机器人系统图如图3所示。

图3 机器人系统图

3.1 定位算法分析和实现

定位功能的实现过程中,ROS 含有一个AMCL 的功能包,AMCL(Adaptive Monte Carlo Localization)是移动机器人二维环境下的概率定位系统,它实现了自适应蒙特卡罗定位方法。蒙特卡罗的基本思想是用随机试验来逼近得出问题的解,粒子滤波就采用了这一思想,把粒子滤波用在定位上就成蒙特卡罗定位。

粒子滤波一般有初始化、计算权重、重采样和状态转移等步骤。机器人在二维地图使用粒子滤波器推算机器人位置。

初始化步骤,将粒子随机分布在二维地图上,根据机器人激光雷达测得的与障碍物的距离值来比较各个粒子与机器人的距离值,从而进行计算权重步骤,以此得到粒子位置的权重,进行重采样,即利用权重重新分布粒子权重高的位置分布粒子多一点,重复这样的步骤,粒子逐步集中于机器人的位置,即完成定位。当机器人移动时,便进行状态转移步骤,即依据机器人移动后的新位置数据,重复上述步骤,则可定位每次机器人移动后的位置,流程如图4所示。

图4 机器人位置定位流程

上述流程蒙特卡罗定位方法结合粒子滤波,依据机器人激光雷达反馈的数据在二维地图中实现定位,对此进行自适应优化解决如下问题:

(1)粒子数固定的问题。当机器人定位基本完成的时候,比如这些粒子都集中在一块了,这个时候重采样的粒子数可以少一点。

(2)机器人绑架的问题,当粒子的平均分数突然降低(意味着正确的粒子在某次迭代中被抛弃了),在全局再重新撒一些粒子(“绑架劫持”:机器人在已知自身位姿的情况下,得到了一个错误的位姿信息或者外界将其放到另外一个位姿,而里程计信息给出了错误的信息)。

3.2 导航算法分析和实现

3.2.1 全局路径算法分析和实现

全局路径规划模块使用ROS 导航功能包集中的默认全局路径规划器,此功能包涵盖于ROS 导航功能包集中的move base 功能包中,其具体原理涉及Dijkstra 算法。

初始化步骤,将整个二维地图网格化,可以理解为:化为一个个像素点,即栅格法,将每一个像素点作为一个节点。给每一个节点定义一个属性:①可通过;
②不可通过。

定义列表集合openlist 集合和closedlist 集合,每一个像素点(节点)都处在一个状态集合openlist 或closedlist,分别属于两个集合(属性为不可通过的像素点默认为closedlist状态,该像素点(节点)就属于closedlist 集合)。openlist 集合中为待考察节点,closedlist 集合中为已考察节点。先以初始位置像素点为父节点,其状态为closedlist,以其为中心的九宫格的其余8 个节点为子节点,都附加状态openlist,并计算中心点周围8 个子节点,取最小值的子节点并作第二步中心点(父节点),从openlist 取出,放入closedlist,计算中心点周围8 个像素点,累计路程。若点已存在openlist,则取路程小的方案。重复上述步骤,依次选取距离初始点最近的节点,直至到达目标点,即最终路径由从起始点到目标点依次选取的最近节点构成。起始点位置如图5所示,以S 为起始点,Q 为目标点,从起点开始,每次走一格,不能跨格;
共有8 个相邻栅格可以走;
若走(上/下/左/右)计路程为1;
若走(左上/左下/右下/右上)计路程为2。

图5 起点终点位置

起点为S 点,计算周围点,父节点为S,取一个最小值的点作第二步中心点重复步骤,节点图如图6~图8所示,得到的路径如图9所示(绿色路径)。

图6 节点图(一)

图7 节点图(二)

图8 节点图(三)

图9 最终路径图

基于Dijkstra 算法的全局路径规划流程如图10所示。

图10 基于Dijkstra 算法的全局路径规划流程

3.2.2 局部路径算法分析和实现

局部路径规划模块使用ROS 功能包集中的默认局部路径规划器,此功能包涵盖于ROS 功能包集中的move base 功能包中,其具体原理涉及DWA(Dynamic Window Approach)算法。

基于DWA 速度采样算法,完成局部路径规划,首先通过机器人的硬件传感器IMU9250 惯性测量模块反馈的数据,利用机器人的线性速度Vx、Vy和角速度ω,通过已获得的Vx、Vy和ω结合微积分的思想建立小车的运动模型,当机器人相邻时刻的间距内(ms 级),当间隔趋向无穷小时,两时刻点之间的运动轨迹可以看作直线,由y方向速度产生机器人的x、y坐标的变化。坐标变化图如图11所示。

图11 坐标变化图

机器人下一个状态的位置为:

建立机器人运动模型后,根据硬件传感器IMU9250 惯性测量模块反馈的速度数据就可以推算出轨迹,得到轨迹后,利用方位角评价函数、距离评价函数和速度评价函数来判断轨迹的好与坏。这三项函数每一项分别除以每一项的总和来计算三个部分的权重,从而影响小车选取路径,使小车达到避开障碍物、朝着目标、以较快的速度行进的目标。

基于DWA 算法的局部路径规划流程,如图12所示。

图12 基于DWA 算法的局部路径规划流程

路径决策问题需要采用适当的数学模型完成选项的选择,基于层次分析法可以实现这一目的,根据层次分析法将起始点到终点的过程看作一个决策问题,在起始点到目的地的路径中可以引入多个参考的影响因素,通过对影响路径的各个因素进行层次分析,得到多条传输路径优劣的排序,从而选择相对较好的传输路径。

将问题分为3 个层次:目标层A、准则层B、方案层C,将各层元素之间的关系用直线连接。本路径决策模块以路径长度、拥挤状况、地面情况作为路径影响因素,基于层次分析法构建的决策结构如图13所示。

图13 层次分析法决策结构

路径选择过程:对目标层,将准则层的3 个因素,即路径长度(B1)、拥挤情况(B2)、地形情况(B3)的相对重要性构成判断矩阵。具体构成方法是将元素之间的重要性进行两两对比,确定准则层对于目标的权重值;
对比采用1~9比例标度法,见表1所列。

表1 比例标度法

对于比较因子而言,认为一样重要为1 ∶1,强烈重要为9 ∶1,也可以取中间值6 ∶1 等,两两比较,将所得数值填入并排列形成判断矩阵B,再构造所有相对于不同准则的方案层判断矩阵C。

利用特征值法求权重并进行一次性检验,为了能利用它的对应特征根的特征向量为被比较因素的权向量,要限定一个容许的不一致范围。

n为问题决策层次的数量,以构建的决策结构为例,含有目标层A、准则层B、方案层C,则问题决策层次数量n的值为3,每个矩阵已知,则可得出每个矩阵的最大特征值λmax,结合层数n。根据下列公式,可以计算出一致性指标CI 为:

已知随机性一般指标RI,见表2所列。

表2 RI 值

根据下列公式,可以计算出一致性比例CR。

当CR<0.10 时,可认为判断矩阵的一致性是可以接受的;
否则,应对判断矩阵进行适当的修正。

同理,对于第二层次的路径长度、拥挤情况、地形情况,3 个判断矩阵的一致性检验均通过。最后得到层次总排序权重值,通过比较总排序权重值,即可决策出符合预期的最佳目标路径。

5.1 路径决策算法的仿真实验

为检验路径决策算法是否可行,利用数学软件和模拟场景来进行仿真实验测试,模拟场景地图如图14所示。

图14 模拟场景地图

在场景模拟过程中,从起点A 到终点B,有3 条路径,每条路径由三个因素影响:路径长度、拥挤情况、地形情况,见表3所列。

表3 场景模拟

三个因素又由三种特定情况(+,0,-)而决定,按照需要对路径的需求进行权重分配。在本场景模拟中,预期的路径是综合行驶时间最短的路径,根据图14描述的各个路径的影响因素情况,设定具体的比较因子数值用于决策算法,见表4、表5所列。

表4 准则层B

将比较因子数据引入算法模块,在MATLAB 中执行路径决策算法并验证。

通过MATLAB 编程,计算最终总排序权重值,得到结果见表6所列。

表6 准则层B 中各因素对于总目标的权重

验证结果:因为1 号路线的总排序权重值最高,因此决策出1 号路线为目标路径。虽然1 号路线地形情况最恶劣,但综合决策,其仍是3 条路径中综合行驶时间最短的路径,符合预期,即:所构建的决策模块可以完成路径决策。

5.2 机器人部分运行截图

运行结果图如图15所示。

图15 运行结果图

本文以ROS 自主导航机器人为对象,研究了阿克曼转向结构、机器人定位、路径规划、路径决策等技术。自主导航移动机器人在移动过程中进行自适应蒙特卡罗定位,并在定位过程中利用激光雷达实时构建环境代价地图,根据建立的代价地图用户自定义导航目标,根据用户定义的导航目标,利用路径决策算法进行路径决策,从而决策出最佳路径。在得到最佳路径后,调用ROS 系统的自主导航模块,利用Dijkstra 和DWA 算法,最终抵达目的地。本文在对机器人阿克曼转向模型和ROS 系统的基础上利用AMCL 算法、Dijkstra 算法、DWA 算法、层次分析法,实现ROS 自主导航机器人的路径决策功能,具有较大的实用价值。

猜你喜欢阿克曼移动机器人权重移动机器人自主动态避障方法北京航空航天大学学报(2022年6期)2022-07-02嗜黏蛋白阿克曼菌与肥胖相关代谢性疾病的研究进展昆明医科大学学报(2022年1期)2022-02-28权重常思“浮名轻”当代陕西(2020年17期)2020-10-28为党督政勤履职 代民行权重担当人大建设(2018年5期)2018-08-16总统制的优点——为何偏好德国而非美国宪法的阿克曼教授是错的世界宪法评论(2017年0期)2017-12-06基于公约式权重的截短线性分组码盲识别方法电信科学(2017年6期)2017-07-01基于Twincat的移动机器人制孔系统制造技术与机床(2017年3期)2017-06-23极坐标系下移动机器人的点镇定中国海洋大学学报(自然科学版)(2014年8期)2014-02-28基于引导角的非完整移动机器人轨迹跟踪控制中国海洋大学学报(自然科学版)(2014年7期)2014-02-28层次分析法权重的计算:基于Lingo的数学模型河南科技(2014年15期)2014-02-27

推荐访问:机器人 路径 决策

本文来源:http://www.triumph-cn.com/fanwendaquan/gongwenfanwen/2023/0924/108790.html

推荐内容