-
2017-02-27 21:44:47
全局路径规划和局部路径规划。如果机器人初始位姿、环境及目标已知,导航问题转化为全局路径规划问题。
更多相关内容 -
自动驾驶动态避障局部路径规划及控制研究.caj
2021-08-16 17:48:363.最后将局部路径规划层及控制器进行集成,利用 Car Sim 和 Simulink 搭建联合仿真平台,实现了弯道和动态障碍物同时存在的复杂场景下自动驾驶车辆的安全避障行驶,验证了本文提出的局部路径规划层及控制器设计理论... -
【硬核】 ROS Navigation 局部路径规划常见算法
2022-03-30 10:28:32简介 最近,作者参加了关于RMUS 高校 SimReal挑战赛,首次接触到了机器人导航领域,... 机器人导航的路径规划问题主要分为全局路径规划和局部路径规划,这两者是根据对环境信息获取程度划分的。 全局规划通常需简介
最近,作者参加了关于RMUS 高校 SimReal挑战赛,首次接触到了机器人导航领域,这里记录一下这段时间的收货。sim2real的全称是simulation to reality,是强化学习的一个分支,同时也属于transfer learning的一种。主要解决的问题是机器人领域中,直接让机器人或者机械臂在仿真中对于物理环境存在误差,如何将仿真上取得的成果应用到实际中的问题。
机器人导航的路径规划问题主要分为全局路径规划和局部路径规划,这两者是根据对环境信息获取程度划分的。
- 全局规划通常需要在已知环境中进行,属于一种事前规划,可以找到最优解,一旦环境发生变化,未及时更新地图时,该方法就不能达到预期效果。
- 局部路径规划通常用在未知或部分已知的环境中,系统根据传感器实时获取到环境障碍物的信息,并做出相应规划,这对系统的实时计算处理能力有着较高的要求。由于缺乏全局环境信息,结果很可能不是最优的。
全局路径规划和局部路径规划并没有本质的区别,很多适用于全局路径规划的方法经过改进也可以用于局部路径规划,而适用于局部路径规划的方法同样经过改进后也可适用于全局路径规划。两者协同工作,机器人可更好的规划从起始点到终点的行走路径。
本文主要针对局部路径规划作介绍。
局部路径规划
机器人在获得目的地信息后,首先经过全局路径规划规划出一条大致可行的路线,然后调用局部路径规划器根据这条路线及costmap的信息规划出机器人在局部时做出具体行动策略。常用的局部路径规划算法有动态窗口法(DWA)、时间弹性带(TEB)和模型预测控制(MPC)。
动态窗口法(DWA)
动态窗口法在一定程度上采用了粒子滤波的思想,在速度空间(v,w)中采样多组速度,并模拟出这些速度在一定时间内的运动轨迹,并通过评价函数对这些轨迹进行评价,选取最优轨迹对应的速度驱动机器人运动。
基本思想
- 在机器人的控制空间中离散采样 (dx,dy,dtheta)
- 对于每个采样速度,从机器人的当前状态执行前向模拟,以预测如果采样速度应用于某个(短)时间段会发生什么。
- 使用包含以下特征的度量来评估前向模拟产生的每个轨迹:与障碍物的距离、与目标的距离、与全局路径的距离和速度,排除非法轨迹(与障碍物相撞的轨迹)。
- 选择得分最高的轨迹并将相关的速度发送到移动基地。
- 重复执行上述步骤。
优点
- 计算简单
- 适用于差分和全向车模
缺点
- 前瞻性不足
- 动态效果差
- 不适用于阿克曼模型车模
时间弹性带(TEB)
时间弹性带(TEB)简而言之,就是连接起始、目标点,并让这个路径可以变形,变形的条件就是将所有约束当做橡皮筋的外力。起始点、目标点状态由用户/全局规划器指定,中间插入N个控制橡皮筋形状的控制点(机器人姿态),当然,为了显示轨迹的运动学信息,我们在点与点之间定义运动时间Time。
t i m e + e l a s t i c b a n d = t i m e d e l a t i c s b a n d time + elastic band = timed elatics band time+elasticband=timedelaticsband
其目标函数的定义:
虽然待优化的橡皮筋有不少状态点与时间段,目标函数也好像很多。但是,每个目标函数只与橡皮筋中的某几个状态有关,而非整条橡皮筋。将它描述成图,然后用图优化。
优点
- 前瞻性好
- 适用于各种车模
缺点
- 计算复杂
- 速度和角速度波动大,控制不稳定
模型预测控制(MPC)
MPC其实是一种基于对受控对象进行预测的控制方法。MPC最大的特点在于,相对于LQR控制而言,MPC可以考虑空间状态变量的各种约束,而LQR,PID等控制只能够考虑输入输出变量的各种约束。
MPC的作用机理可以表述为:在每一个采样时刻,根据当前的测量信息,在线求解一个有限时间开环优化问题,并将得到的控制序列的第一个元素用于被控对象;在下一个采样时刻,用新的测量值作为此时预测系统未来动态的初试条件,刷新优化问题求解。应用于机器人的典型的模型预测控制方法:
问题模型
m i n C F ( x ( t f ) ) + f t = t 0 t f C R ( x , u ) d t x ˙ = f ( x , u ) g ( x , u ) < 0 h ( x , u ) = 0 minC_F(x(t_f))+f_{t=t_0}^{t_f}C_R(x, u)dt\\ \dot{x}=f(x, u)\\ g(x, u)<0\\ h(x,u)=0\\ minCF(x(tf))+ft=t0tfCR(x,u)dtx˙=f(x,u)g(x,u)<0h(x,u)=0
参数空间
m i n C F ( x ( t f ) ) + f t = t 0 t f C R ( x , u ) d t minC_F(x(t_f))+f_{t=t_0}^{t_f}C_R(x, u)dt\\ minCF(x(tf))+ft=t0tfCR(x,u)dt
控制
传统MPC控制框图为
- 设置优化问题
- 使用测量模块告诉我们当前的initial state
- 求解优化问题得到参数,这些参数构成系统的最优输入 u*
- 使用 u*驱动系统,由于系统受到干扰无法保证求解得到的 u*我们想要的,仅此旨在很小一段时间中使用,然后利用观测的状态重新求解问题,转回步骤(2)
局部规划器的应用
这里以mpc_local_planner为例,首先,在本地终端中键入
sudo apt install ros-melodic-mpc-local-planner
由于apt安装有可能导致我们运行失败,上面的指令只是用来安装依赖。同时,克隆远程仓库mpc_local_planner到ros的工作空间中,执行catkin_make编译。对应ros navigation中的move_base.launch,修改其中的局部路径规划器类型
<?xml version="1.0"?> <launch> <!-- 运行move_base节点 --> <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen" clear_params="true"> <!--move_base参数配置http://wiki.ros.org/move_base --> <param name="base_global_planner" value="global_planner/GlobalPlanner" /><!-- 选择全局规划器类型 --> <rosparam file="$(find mpc_navigation)/config/base_global_planner_params.yaml" command="load" /> <rosparam file="$(find mpc_navigation)/config/mpc_local_planner_params_minimum_time.yaml" command="load" /> <param name="base_local_planner" value="mpc_local_planner/MpcLocalPlannerROS" /> <rosparam file="$(find mpc_navigation)/config/move_base_params.yaml" command="load" /><!-- 其它参数 --> <param name="controller_frequency" value="1" /><!-- 选择全局规划器类型 --> <!-- 全局代价地图和局部代价地图参数配置http://wiki.ros.org/costmap_2d --> <rosparam file="$(find mpc_navigation)/config/costmap_common_params.yaml" command="load" ns="global_costmap" /> <rosparam file="$(find mpc_navigation)/config/costmap_common_params.yaml" command="load" ns="local_costmap" /> <rosparam file="$(find mpc_navigation)/config/local_costmap_params.yaml" command="load" /> <rosparam file="$(find mpc_navigation)/config/global_costmap_params.yaml" command="load" /> </node> </launch>
对应mpc_local_planner的参数文件可以在克隆仓库中的mpc_local_planner_examples中获得,将cfg/diff_drive中的参数yaml文件复制到对应的config文件夹中即可,base_ local_planner参数设置为mpc_local_planner中定义的类型MpcLocalPlannerROS。
mpc_local_planner提供了两个参数文件,一个是以最短时间为目的,另一个是二次规划模型,可以根据需求自行选择。
其他的局部规划器同样是修改base_local_planner的类型和提供相应的功能包以及yaml参数文件实现。
参考
后续
喜欢的话可以关注一下我的公众号技术开发小圈,尤其是对深度学习以及计算机视觉有兴趣的朋友,我会把相关的源码以及更多资料发在上面,希望可以帮助到新入门的大家!
-
ROS 全局路径规划讲解,以及怎么编写
2018-01-26 10:53:10ROS中navigation解析,以及全局路径规划讲解以及怎么写一个1自己的全局路径规划。 -
全局路径规划与局部路径规划有什么区别?
2019-04-28 10:50:52移动这一简单动作,对于人类来说相当容易,但对机器人而言就变得极为复杂,说到机器人移动就不得不提到路径规划,路径规划是移动机器人导航最基本的环节,指的是机器人在有障碍物的工作环境中,如何找到一条从起点到...移动这一简单动作,对于人类来说相当容易,但对机器人而言就变得极为复杂,说到机器人移动就不得不提到路径规划,路径规划是移动机器人导航最基本的环节,指的是机器人在有障碍物的工作环境中,如何找到一条从起点到终点适当的运动路径,使机器人在运动过程中能安全、无碰撞地绕过所有障碍物。这不同于用动态规划等方法求得的最短路径,而是指移动机器人能对静态及动态环境作出综合性判断,进行智能决策。
总的来说,路径规划主要涉及这3大问题:①明确起点位置及终点;②规避障碍物;③尽可能的做到路径上的优化。
机器人路径规划有全局与局部规划之分
根据对环境信息的掌握程度不同,机器人路径规划可分为全局路径规划和局部路径规划。
全局路径规划是在已知的环境中,给机器人规划一条路径,路径规划的精度取决于环境获取的准确度,全局路径规划可以找到最优解,但是需要预先知道环境的准确信息,当环境发生变化,如出现未知障碍物时,该方法就无能为力了。它是一种事前规划,因此对机器人系统的实时计算能力要求不高,虽然规划结果是全局的、较优的,但是对环境模型的错误及噪声鲁棒性差。
而局部路径规划则环境信息完全未知或有部分可知,侧重于考虑机器人当前的局部环境信息,让机器人具有良好的避障能力,通过传感器对机器人的工作环境进行探测,以获取障碍物的位置和几何性质等信息,这种规划需要搜集环境数据,并且对该环境模型的动态更新能够随时进行校正,局部规划方法将对环境的建模与搜索融为一体,要求机器人系统具有高速的信息处理能力和计算能力,对环境误差和噪声有较高的鲁棒性,能对规划结果进行实时反馈和校正,但是由于缺乏全局环境信息,所以规划结果有可能不是最优的,甚至可能找不到正确路径或完整路径。
全局路径规划和局部路径规划并没有本质上的区别,很多适用于全局路径规划的方法经过改进也可以用于局部路径规划,而适用于局部路径规划的方法同样经过改进后也可适用于全局路径规划。两者协同工作,机器人可更好的规划从起始点到终点的行走路径。
A*与D*机器人路径规划算法介绍
在实际情况中,机器人路径规划除了考虑已知环境和未知环境地图,还要考虑到动态和静态环境下的路径规划。
A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。但是,A*算法同样也可用于动态路径规划当中,只是当环境发生变化时,需要重新规划路线。
而D*算法则是一种动态启发式路径搜索算法,它事先对环境位置,让机器人在陌生环境中行动自如,在瞬息万变的环境中游刃有余。D*算法的最大优点是不需要预先探明地图,机器人可以和人一样,即使在未知环境中,也可以展开行动,随着机器人不断探索,路径也会时刻调整。
综上所述,移动机器人路径规划技术已经取得了可观的成绩,但是,在其全局与局部路径规划方法中仍然存在诸多不足之处,为此,国内也有针对这类算法的改进,采用SLAMWARE模块化自主定位导航,改良的D*算法进行路径规划,这也是美国火星探测器采用的核心寻路算法。是一种动态启发式路径搜索算法,它可以让机器人在未知环境中行走自如,在环境多变的情况下游刃有余。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69914126/viewspace-2642753/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/69914126/viewspace-2642753/
-
「 运动控制 」“路径规划中局部规划器与全局规划器冲突“解决办法
2019-06-02 16:17:51如果仅在动态窗口避障算法中考虑行人预测信息,而不将行人信息融合到全局规划器中经常会导致全局路径和预测轨迹的冲突。 2.局部规划器与全局规划器解决办法: 为了解决这个问题,我们在全局地图上需要将行人当前...1.局部规划器与全局规划器冲突原因:
如果仅在动态窗口避障算法中考虑行人预测信息,而不将行人信息融合到全局规划器中经常会导致全局路径和预测轨迹的冲突。
2.局部规划器与全局规划器解决办法:
为了解决这个问题,我们在全局地图上需要将行人当前所在区域标记为空白区域,而将行人预测所在位置区域标记为被占用区域。
-
滚动窗口局部路径规划在未知环境中的应用
2020-04-23 04:15:04为了实现未知复杂环境下机器人的局部路径规划,提出了一种新的局部路径规划方法,使机器人自主探测周边障碍物情况。通过滚动窗口计算局部目标等途径进行路径规划,从而实现机器人无碰撞到达全局目标点。该方法可以使... -
基于果蝇优化算法的月球车全局路径规划
2021-01-28 05:35:17基于月球车全局路径规划的任务要求,采用果蝇优化算法应用于全局路径的规划。针对果蝇优化算法在路径规划中容易形成局部最优的问题,对算法进行了修改,将果蝇与原点的距离 直接带入味道浓度判定函数,从而不易陷入... -
无人驾驶路径规划(三)局部路径规划-Frenet坐标系下的动态轨迹规划
2022-05-20 15:31:51前言:对于无人驾驶路径规划系列的第二篇RRT算法的改进部分,由于有些内容属于个人想到的创新点,有想法投...无人驾驶路径规划(一)全局路径规划 - RRT算法原理及实现 同样,如果文中有错误或侵权的地方还请各位读者 -
局部RRT路径规划matlab代码-motion_planning:机器人路径规划,映射和探索算法
2021-05-20 09:54:51局部RRT路径规划matlab代码运动计划 Python 用于几种路径规划算法的...以RRT作为全局路径构造器和APF的分层计划器的示例负责局部轨迹的创建。 该算法不仅提供给自我车辆,而且还提供给一组机器人。 用于基于RRT + APF算 -
Baidu Apollo EM Motion Planner_路径规划_motionplanner_自动驾驶决策_自动驾驶_ap
2021-10-02 07:59:54自动驾驶决策仿真,一种自动驾驶路径规划的方法 -
无人驾驶路径规划(一)全局路径规划 - RRT算法原理及实现
2022-04-02 15:45:05前言:由于后续可能要做一些无人驾驶相关的项目和实验,所以这段时间学习一些路径规划算法并自己编写了matlab程序进行仿真。开启这个系列是对自己学习内容的一个总结,也希望...(一)全局路径规划:全局路径规划算法 -
DSP中的一种移动机器人的路径规划算法分析
2020-10-23 13:57:25对机器人路径规划的研究,世界各国的专家学者们提出了许多不同的路径规划方法,主要可分为全局路径和局部路径规划方法。全局路径规划方法有位形空间法、广义锥方法、顶点图像法、栅格划归法;局部路径规划方法主要... -
局部路径规划器teb_local_planner详解3:跟随全局planner
2021-02-01 18:12:49局部路径规划器teb_local_planner详解3:跟随全局planner前言一、相关优化项二、与topologies相关的参数 前言 在局部路径规划器teb_local_planner详解2:关于避障中,我们对teb的避障策略做了详细清晰的描述。 本章... -
ROS学习笔记之——路径规划及avoid obstacles
2020-11-29 10:25:00之前博客《ROS学习笔记之——Navigation Stack及路径规划》介绍了navigation stack,其中涉及到的amcl以及避障还没有详细的展开 AMCL 避障(avoid obstales) Robot Navigation ... -
煤矿救援机器人全局路径规划 (2008年)
2021-05-31 21:40:04全局路径规划是煤矿救援机器人自主导航的关键技术之一,其任务是按照某一最优指标寻找一条从起始点到目标点的安全避碰路径。文中针对矿难发生后,井下部分巷道的局部环境不确定的特点,提出以矿难前的已知GIS系统为基础... -
路径规划向量场直方图算法
2020-07-06 19:58:02在机器人技术中,Vector Field Histogram(VFH,向量场直方图)是Johann Borenstein和Yoram Koren在1991年提出的一种实时路径规划算法。...VFH作为一个局部路径规划器而非全局路径规划器,已被证明产生接近最优路径 -
未知环境下基于传感器的救援机器人路径规划
2020-06-05 03:53:23研究了未知环境下救援机器人的...该方法所规划出来的路径是全局指导下的局部最优路径,传感器的探测距离越远,规划的结果越接近全局最优解。仿真分析证明了该方法是可行的,并且规划时间短,具有较好的实时性和环境适应性。 -
改进的GA在自动送货机器人全局路径规划中的应用 (2002年)
2021-05-30 22:01:55自动送货机器人(ACR)全局路径优化问题是机器人路径规划的一种典型,本文将传统遗传算法进行改进,采用菲等位基因交叉和整体算术交叉算子,并用增加高斯算子的变异方式进行变异,利用q竞争方法进行选择,既保证了样本... -
基于神经网络的移动机器人路径规划方法
2021-02-22 20:20:02针对动态环境下移动机器人路径规划,提出了一种基于递归神经...目标点全局地吸引机器人,障碍物局部地将机器人推开实现避障,从而能够在动态环境下产生最优规划路径。仿真结果表明该方法具有较好的环境适应性和实时性。 -
车 局部路径规划与避障
2020-11-26 14:55:17双目避障 单目避障是否可行? 全局路径规划有RRT、A*、D*。 局部路径规划有DWA、TEB。 控制有 MPC。 -
ROS关于movebase的局部路径规划代码解析
2018-10-26 15:51:47终于做完了机器人movebase路径规划算法的修改工作,现在把工作时写的笔记分享出来,希望可以起到搞清楚算法步骤的作用(建议配合代码一起食用) ----------------------------------------------------------------... -
matlab改进人工势场法模拟机器人路径规划,避障
2015-04-13 11:02:06在论坛上搜了一些matlab人工势场法程序,但很多都有一些问题,比如目标不可达,角度计算错误等等。在这些的基础上,我进行了改进,使得...程序可以用C写出来,做机器人路径规划或者避障的同学,该文档有很高的参考性。 -
移动机器人 | 全局路径规划
2022-03-25 08:16:32移动机器人导航需要解决如下三个问题:我在哪?我要去哪?我怎么去那?这三个问题分别对应移动机器人导航中的定位、建图和路径规划功能。 -
狭窄环境中基于几何法的全局路径规划新方法
2021-03-14 16:08:10全局路径规划一般包括环境建模和路径搜索策略两个子问题。其中,环境建模的方法主要有可视图法、自由空间法和栅格法等[1-5]。当环境地图比较复杂(例如障碍物比较庞大,自由空间相对狭窄),环境建模将是路径规划能否成功... -
扫地机器人的路径规划算法综述.docx
2019-11-13 19:07:58其次对移动机器人路径规划进行分类总结,并从移动机器人对环境掌握情况的角度出发,将移动机器人路径规划分成全局规划和局部规划两类,然后对全局规划和局部规划的相关算法进行综述,同时对相关算法发展现状及优缺点... -
ros自定义全局路径规划器并内置到ros工作空间
2021-08-31 15:35:19ROS内部已经集成了多种全局路径规划器(BaseGlobalPlanner)和局部路径规划器(BaseLocalPlanner),包括用A*算法、Dijstra算法、DWA动态窗口法等。这些都封装在ros的move_base节点中。一开始我想自己实现一个move_... -
全局路径规划之A*算法
2021-05-11 18:55:29还是选择之前Dijkstra算法使用的那张图,利用A*算法寻找从节点1到节点5的最短路径,在之前图的基础上为每个节点增加到目标节点5的估计代价,如图中砖红色数字表示。 根据A*算法的思路,open list用于存 -
一种兼顾全局与局部特性的机器人动态路径规划算法.pdf
2021-08-14 14:08:18一种兼顾全局与局部特性的机器人动态路径规划算法.pdf -
改进蚁群算法在机器人路径规划中的应用
2022-06-10 18:35:25后对全局路径进行寻优,更新全局最优路径信息素。且在信息素 更新公式中引入信息素增强因子,加强最优路径信息素含量。应用反向学习优化信息素,改进状态选择概率, 提高算法寻优能力。实验结果表明,改进后的算法...