购物网站建设的必要性,共同建设网站协议,在线设计平台的发展,传奇霸业手游官网前言在自主移动机器人路径规划的学习与开发过程中#xff0c;我接触到Time Elastic Band算法#xff0c;并将该算法应用于实际机器人#xff0c;用于机器人的局部路径规划。在此期间#xff0c;我也阅读了部分论文、官方文档以及多位大佬的文章#xff0c;在此对各位大佬的…前言在自主移动机器人路径规划的学习与开发过程中我接触到Time Elastic Band算法并将该算法应用于实际机器人用于机器人的局部路径规划。在此期间我也阅读了部分论文、官方文档以及多位大佬的文章在此对各位大佬的分享表示感谢。在本文中我将分享Time Elastic Band算法的原理、个人对Time Elastic Band算法的理解以及在ROS下通过teb_local_planner对该算法进行演示和讲解。01相关论文以下两篇论文主要介绍了Time Elastic Band算法以及使用稀疏模型进行优化[1].C. Rösmann, W. Feiten, T. Wösch, F. Hoffmann and T. Bertram: Trajectory modification considering dynamic constraints of autonomous robots. Proc. 7th German Conference on Robotics, Germany, Munich, 2012, pp 74–79.[2].C. Rösmann, W. Feiten, T. Wösch, F. Hoffmann and T. Bertram: Efficient trajectory optimization using a sparse model. Proc. IEEE European Conference on Mobile Robots, Spain, Barcelona, 2013, pp. 138–143.以下两篇论文介绍了同时规划多条轨迹并选取出当前的全局最优轨迹[1].C. Rösmann, F. Hoffmann and T. Bertram: Integrated online trajectory planning and optimization in distinctive topologies, Robotics and Autonomous Systems, Vol. 88, 2017, pp. 142–153.[2].C. Rösmann, F. Hoffmann and T. Bertram: Planning of Multiple Robot Trajectories in Distinctive Topologies, Proc. IEEE European Conference on Mobile Robots, UK, Lincoln, Sept. 2015.以下这篇论文介绍了类汽车机器人的轨迹优化[1].C. Rösmann, F. Hoffmann and T. Bertram: Kinodynamic Trajectory Optimization and Control for Car-Like Robots, IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Vancouver, BC, Canada, Sept. 2017.02算法原理概述本文依据Christoph Rösmann在论文中的描述对eletic band进行定义将给定的路径视为受内外力影响的弹性橡皮筋使其变形而内外力相互平衡使路径收缩同时与障碍物保持一定的距离其中内外力就是对机器人运动的所有约束。而对于time eletic band则在给定路径中间插入N个控制橡皮筋形状的控制点机器人姿态在点与点之间定义运动时间Time即为Time Elastic Band算法。通过上述定义我们可以看出Time Elastic Band算法把路径规划问题描述为一个多目标优化问题即对最小化轨迹执行时间、与障碍物保持一定距离并遵守运动动力学约束等目标进行优化。因为优化的大多数目标都是局部的只与机器人的某几个连续的状态有关所以该优化问题为对稀疏模型的优化。通过求解稀疏模型多目标优化问题可以有效获得机器人的最佳运动轨迹。求解稀疏模型多目标优化问题可通过构建超图hyper-graph使用g2o通用图优化框架中关于大规模稀疏矩阵的优化算法来求解。机器人状态和时间间隔作为nodes目标函数和约束函数作为edges各nodes由edges连接构成hyper-graph。在该hyper-graph中每个约束为一条edge且每条edge允许连接的nodes的数目不受限制。Time Elastic Band算法通俗的解释就是从给定路径中得到一系列带时间信息的离散位姿pose通过图优化的方法将这些离散位姿组成满足时间最短、距离最短和远离障碍物等目标的轨迹同时满足机器人运动动力学的约束。需要注意的是优化得到的轨迹并不一定满足所有约束即给定的约束条件实际上都是软约束条件。03算法演示与讲解通过阅读teb_local_planner的源码我们可以知道teb_local_planner提供了许多参数和权重的配置接口让用户可以为优化问题提供参数和权重在不同的约束条件下指定优化目标。下面我们通过对teb_local_planner实现效果的简单演示来加深对Time Elastic Band算法的理解。前面提到Time Elastic Band算法可以在给定路径的基础上对轨迹进行优化实现最小化轨迹时间、与障碍物保持距离等目标。其中与障碍物保持距离可以说是一个路径规划算法比较重要的功能teb_local_planner提供了min_obstacle_dist和inflation_dist两个参数以及相应的权重使用户可对轨迹与障碍物的距离进行调整以此来满足不同环境下路径规划的需求。以下为配置不同参数值时teb_local_planner规划出的不同的轨迹为了使演示的效果更加明显参数权重给得比较大min_obstacle_dist为0.5inflation_dist为0.6min_obstacle_dist为0.5inflation_dist为1.0min_obstacle_dist为1.0inflation_dist为0.6通过以上效果可以看出min_obstacle_dist和inflation_dist两个参数的值会导致teb_local_planner规划出不同的轨迹。min_obstacle_dist可以视为比inflation_dist更为严格的约束条件只有当inflation_dist的值大于min_obstacle_dist时inflation_dist才会影响teb_local_planner规划出的轨迹。当然参数对应权重的大小也会对规划出的轨迹有一定影响。在实际的应用过程中需要用户对环境以及机器人自身的定位精度进行评估从而设定合理的参数值使得teb_local_planner能够规划出较优的路径。除了与障碍物保持距离如何合理并有效地跟随全局路径也是衡量一个局部规划算法好坏的重要标准。teb_local_planner提供global_plan_viapoint_sep参数以及相应的权重使用户可以根据不同的需求对期望轨迹设定约束条件。为了更好的理解该参数的作用我首先解释一下viapointviapoint可以理解为通过点即要求teb_local_planner规划出的轨迹必须通过某个点。下面通过一个极端一点的例子来看一下viapoint的效果未设置viapoint在两个障碍物中间设置了viapoint可以看到上面两幅图中带红色箭头的轨迹为teb_local_planner规划出的轨迹。未设置viapoint时teb_local_planner选取了上方的轨迹为最优轨迹当在两个障碍物中间设置了viapoint最优轨迹从两个障碍物中间穿过。由此可以看出viapoint对teb_local_planner规划选取的最优轨迹有很大的影响。从侧面也反映出Time Elastic Band算法是尽可能地满足设定的多个约束条件选取出最优的轨迹。现在我们再来看global_plan_viapoint_sep在局部规划中的作用该参数的描述为“从全局路径中选取的每两个连续通过点之间的最小间隔”结合对viapoint的理解从该描述中我们可以知道该参数影响的是teb_local_planner规划的最优轨迹对全局路径的跟随效果。当global_plan_viapoint_sep的值比较小时从全局路径中选取的viapoint比较密集最优轨迹对全局路径的跟随效果比较好当global_plan_viapoint_sep的值比较大时从全局路径中选取的viapoint比较稀疏最优轨迹对全局路径的跟随效果比较差但此时的最优轨迹可能更加平滑。以下为使用Car-like模型时global_plan_viapoint_sep设置不同的值实现的路径规划的效果同样的为了使演示效果更加明显适当地加大参数的权重global_plan_viapoint_sep设置为0.1global_plan_viapoint_sep设置为5.0从上面的实现效果可以明显看出 当global_plan_viapoint_sep设置为0.1时最优轨迹很紧密地跟随全局路径Car-like模型在转向时需要多次调整角度当global_plan_viapoint_sep设置为5.0时最优轨迹并没有严格遵循全局路径而是更为顺滑地完成转向。这是global_plan_viapoint_sep设置不同值时teb_local_planner选取最优轨迹的不同效果。在与障碍物保持距离和跟随全局路径的情况下Time Elastic Band算法遵循运动动力学约束。teb_local_planner提供了max_vel_x和max_vel_theta等多个参数以及相应的权重用户可根据实际机器人的性能进行设置。下面我们通过一个示例来简单看一下Time Elastic Band算法对速度约束的效果存在障碍物的情况下teb_local_planner选取的最优轨迹与上述轨迹对应的线速度和角速度曲线max_vel_x为0.4m/smax_vel_theta为0.3rad/s我们可以发现轨迹对应的线速度曲线的最大速度大于max_vel_x这是因为max_vel_x对应的权重设置得较小导致的。由此也可以反映出Time Elastic Band算法遵循的约束条件为软约束用户可以通过权重设定算法是否严格遵循约束条件。说到这里可能也有小伙伴发现了在上面演示的过程中teb_local_planner并不仅仅规划出一条路径而是从多条路径中选取最优轨迹这就不得不提到teb_local_planner中的Homotopy Class Planner用户可以将enable_multithreading参数设置为True来开启同时规划多条路径并从中选取最优轨迹。下面我们也来看一下只规划一条轨迹与同时规划多条路径并选取最优轨迹的对比只规划一条轨迹同时规划多条路径并选取最优轨迹从上面的对比可以看出在某些极端条件下同时规划多条路径并选取最优轨迹得到的轨迹更符合全局最优也更合理。当然同时规划多条路径也将消耗更多的机器性能。在实际应用过程中用户应当根据具体情况合理取舍。04总结通过上面的介绍可以看出Time Elastic Band算法有很多的优点可以满足时间最短、距离最短和远离障碍物等目标以及满足机器人运动动力学的约束。那是不是Time Elastic Band算法就没有缺点呢答案是否定的。从前文我们可以知道Time Elastic Band算法的大多数约束都是软约束条件。若参数和权重设置不合理或者环境过于苛刻都有可能导致Time Elastic Band算法规划失败出现非常奇怪的轨迹。因此teb_local_planner中包含了检测冲突的部分判断轨迹上的点是否与障碍物存在冲突此时需要考虑机器人的实际轮廓。在实际的开发过程中更多地需要考虑机器人自身其他模块的性能例如电机能够提供的最大加速度定位算法的精度等同时也要考虑具体的环境以及选择Time Elastic Band算法是否合理如此才能将其性能发挥出更好的效果。在本文中我分享了我对Time Elastic Band算法的一点理解但毕竟认知有限对算法的部分内容的理解还是比较粗浅的望大家多多包涵有什么问题也希望能够与大家多交流。在后续的文章中我会分享ROS自主移动机器人的开发以及各类算法的应用有机会的话也会对Time Elastic Band算法的原理进行更加深入的解析希望大家多多支持。teb_local_planner github项目地址https://github.com/rst-tu-dortmund/teb_local_planner.git在ROS noetic下安装teb_local_planner从ROS官方仓库中安装sudo apt install ros-noetic-teb-local-planner 从github仓库中下载源码进行编译git clone https://github.com/rst-tu-dortmund/teb_local_planner.git
文章转载自: http://www.morning.kycwt.cn.gov.cn.kycwt.cn http://www.morning.xpmhs.cn.gov.cn.xpmhs.cn http://www.morning.fhlfp.cn.gov.cn.fhlfp.cn http://www.morning.itvsee.com.gov.cn.itvsee.com http://www.morning.mzcsp.cn.gov.cn.mzcsp.cn http://www.morning.tjpmf.cn.gov.cn.tjpmf.cn http://www.morning.tkjh.cn.gov.cn.tkjh.cn http://www.morning.mxtjl.cn.gov.cn.mxtjl.cn http://www.morning.tfei69.cn.gov.cn.tfei69.cn http://www.morning.rwpfb.cn.gov.cn.rwpfb.cn http://www.morning.kxgn.cn.gov.cn.kxgn.cn http://www.morning.mhxlb.cn.gov.cn.mhxlb.cn http://www.morning.rsmtx.cn.gov.cn.rsmtx.cn http://www.morning.fcwxs.cn.gov.cn.fcwxs.cn http://www.morning.jkrrg.cn.gov.cn.jkrrg.cn http://www.morning.hnrls.cn.gov.cn.hnrls.cn http://www.morning.ckntb.cn.gov.cn.ckntb.cn http://www.morning.jrhmh.cn.gov.cn.jrhmh.cn http://www.morning.rqlqd.cn.gov.cn.rqlqd.cn http://www.morning.mbrbk.cn.gov.cn.mbrbk.cn http://www.morning.gxqpm.cn.gov.cn.gxqpm.cn http://www.morning.dkfb.cn.gov.cn.dkfb.cn http://www.morning.qcwck.cn.gov.cn.qcwck.cn http://www.morning.fcrw.cn.gov.cn.fcrw.cn http://www.morning.mllmm.cn.gov.cn.mllmm.cn http://www.morning.ssglh.cn.gov.cn.ssglh.cn http://www.morning.xtgzp.cn.gov.cn.xtgzp.cn http://www.morning.xhsxj.cn.gov.cn.xhsxj.cn http://www.morning.lkwyr.cn.gov.cn.lkwyr.cn http://www.morning.jrpmf.cn.gov.cn.jrpmf.cn http://www.morning.ryywf.cn.gov.cn.ryywf.cn http://www.morning.khntd.cn.gov.cn.khntd.cn http://www.morning.wgkz.cn.gov.cn.wgkz.cn http://www.morning.kbynw.cn.gov.cn.kbynw.cn http://www.morning.mqlsf.cn.gov.cn.mqlsf.cn http://www.morning.fglth.cn.gov.cn.fglth.cn http://www.morning.rknsp.cn.gov.cn.rknsp.cn http://www.morning.ghssm.cn.gov.cn.ghssm.cn http://www.morning.qsctt.cn.gov.cn.qsctt.cn http://www.morning.ntffl.cn.gov.cn.ntffl.cn http://www.morning.dgknl.cn.gov.cn.dgknl.cn http://www.morning.khfk.cn.gov.cn.khfk.cn http://www.morning.qwdlj.cn.gov.cn.qwdlj.cn http://www.morning.wnywk.cn.gov.cn.wnywk.cn http://www.morning.gpryk.cn.gov.cn.gpryk.cn http://www.morning.qyglt.cn.gov.cn.qyglt.cn http://www.morning.rwzmz.cn.gov.cn.rwzmz.cn http://www.morning.ckfqt.cn.gov.cn.ckfqt.cn http://www.morning.clkyw.cn.gov.cn.clkyw.cn http://www.morning.nyfyq.cn.gov.cn.nyfyq.cn http://www.morning.cqyhdy.cn.gov.cn.cqyhdy.cn http://www.morning.ypmqy.cn.gov.cn.ypmqy.cn http://www.morning.wnmdt.cn.gov.cn.wnmdt.cn http://www.morning.dbfp.cn.gov.cn.dbfp.cn http://www.morning.dwrjj.cn.gov.cn.dwrjj.cn http://www.morning.lnbyk.cn.gov.cn.lnbyk.cn http://www.morning.bfbl.cn.gov.cn.bfbl.cn http://www.morning.csdgt.cn.gov.cn.csdgt.cn http://www.morning.xnqwk.cn.gov.cn.xnqwk.cn http://www.morning.jlgjn.cn.gov.cn.jlgjn.cn http://www.morning.wqhlj.cn.gov.cn.wqhlj.cn http://www.morning.pntzg.cn.gov.cn.pntzg.cn http://www.morning.shyqcgw.cn.gov.cn.shyqcgw.cn http://www.morning.lonlie.com.gov.cn.lonlie.com http://www.morning.webife.com.gov.cn.webife.com http://www.morning.zryf.cn.gov.cn.zryf.cn http://www.morning.ymwcs.cn.gov.cn.ymwcs.cn http://www.morning.mrtdq.cn.gov.cn.mrtdq.cn http://www.morning.lmdfj.cn.gov.cn.lmdfj.cn http://www.morning.frzdt.cn.gov.cn.frzdt.cn http://www.morning.mkkcr.cn.gov.cn.mkkcr.cn http://www.morning.zgpgl.cn.gov.cn.zgpgl.cn http://www.morning.jrhmh.cn.gov.cn.jrhmh.cn http://www.morning.mntxalcb.com.gov.cn.mntxalcb.com http://www.morning.txtgy.cn.gov.cn.txtgy.cn http://www.morning.fxpyt.cn.gov.cn.fxpyt.cn http://www.morning.wzwpz.cn.gov.cn.wzwpz.cn http://www.morning.nqmdc.cn.gov.cn.nqmdc.cn http://www.morning.kfqzd.cn.gov.cn.kfqzd.cn http://www.morning.jfnbh.cn.gov.cn.jfnbh.cn