CN113759922A - 一种基于弹簧算法的机器人路径规划方法 - Google Patents
一种基于弹簧算法的机器人路径规划方法 Download PDFInfo
- Publication number
- CN113759922A CN113759922A CN202111073600.7A CN202111073600A CN113759922A CN 113759922 A CN113759922 A CN 113759922A CN 202111073600 A CN202111073600 A CN 202111073600A CN 113759922 A CN113759922 A CN 113759922A
- Authority
- CN
- China
- Prior art keywords
- solution
- algorithm
- spring
- space
- obstacle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 239000011159 matrix material Substances 0.000 claims abstract description 4
- 230000009471 action Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 230000004888 barrier function Effects 0.000 abstract description 6
- 230000000694 effects Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 238000011160 research Methods 0.000 description 5
- 230000035945 sensitivity Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 239000003016 pheromone Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0217—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
Landscapes
- Engineering & Computer Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Feedback Control In General (AREA)
Abstract
本发明公开了一种基于弹簧算法的移动机器人路径规划方法,S1、对障碍物进行编号(i=1,2,3…),记录其原位置;更新障碍物矩阵map_obs_belong;初始化解空间solution_space,放入初始解,S2、进入循环:S21、从solution_space中以'length'为参考值,最小值对应的解shortest。若该解的'collision'列表为空,退出循环,执行S3;否则执行S22;S22、选取shortest['collision']中的障碍物obs,从不同方向移至原位置,构建新解存入solution_space中,新解'way'属性值由Algorithm2决定;S3、输出全局最优解shortest。本发明的有益效果是,运行时间较短,算法所得最终路径,优于A*以及蚁群算法。
Description
技术领域
本发明涉及机器人路径规划技术领域,具体是一种基于弹簧算法的移动机器人路径规划方法。
背景技术
路径规划技术是移动机器人研究领域的一个重要组成部分,主要目的是在有障碍物的环境中,根据一定的准则(如路径最短,位置拐点最少,用时最短等),寻求一条从起始位置节点到目标位置节点之间的最优或次优安全无碰路径。
路径规划技术的发展在一定程度上标志着机器人智能水平的高低,而路径规划方法的优劣直接影响路径规划效果。
目前,国内外许多专家学者都在致力于路径规划算法的研究,常用的优化算法主要有Dijkstra、A*、人工势场法、免疫算法、蚁群优化算法、神经网络、粒子群优化算法和遗传算法等。
其中,以Dijkstra、A*为代表的传统路径优化算法虽然能保证取得最优解,但其优化效率对栅格地图的节点规模较为敏感,因此,对于节点规模较大的栅格地图的寻路问题,传统优化算法的表现并不十分优秀,而以蚁群算法、遗传算法为代表的启发式算法,不必遍历整个解空间,仅需对部分解子空间进行寻优,即可大概率获得最优解,该特性使得启发式算法对栅格图节点规模的敏感程度低于传统优化算法,但同时也使得启发式算法存在陷入局部最优解的可能。
发明内容
本发明的目的在于提供一种基于弹簧(Spring Algorithm,SA)的移动机器人路径规划方法,该算法的用时对节点规模的敏感程度远小于A*,且其得到的最优解也优于传统蚁群算法。
首先,针对栅格地图下的障碍物提出形变点的概念,即可能对弹簧产生形变的栅格顶点,如图1所示。
图1中,障碍物的四个顶点皆为形变点,当障碍物由栅格图下界向上移动至原位置时,顶点A将使得弹簧产生形变,如图1(a)效果所示;当障碍物由栅格图上界向下移动至原位置时,顶点C将使得弹簧产生形变,如图1(b)效果所示。
定义弹簧形变规则,即在障碍物移动的过程中,通过检测障碍物上的形变点是否逾越弹簧线段来判定弹簧是否发生形变。方法如Algorithm 1所示。
以图2所示为例,障碍物由上至下移动至其原位置,对顶点C检测其与弹簧各线段的位置状态,通过Algorithm 1可得状态列表state = [0]。
随着障碍物继续下移,顶点C会首先逾越弹簧线段SE,此时情形如图3。
由Algorithm 1可得state = [1],此时标志着C点产生了逾越行为,这将使得弹簧产生形变,即弹簧线段由SE变成SC+CE,具体操作见Algorithm 2。
定义后文解空间中解的所含属性名及其功能如表1所示。
表1 解的属性名及其功能
本发明解决其技术问题所采用的技术方案是:
一种基于弹簧算法的移动机器人路径规划方法,包括以下步骤:
S1、对障碍物进行编号(i=1,2,3…),以及记录其原位置;更新障碍物所属矩阵map_obs_belong;初始化解空间solution_space,即向其中放入初始解,其'way'属性为起点与终点两个节点,'length'为计算后的弹簧长度,'collision'为起点与终点连线所在节点上所有障碍物的编号构成的列表,'avoid'为空列表,'map'值为无障碍物时的地图数据;
S2、进入循环:
S21、从solution_space中以'length'为参考值,找到最小值所对应的那个解,记作shortest,若该解的'collision'列表为空,则退出循环,执行S3;否则执行S22;
S22、依次选取shortest['collision']中的障碍物obs,分别从不同的方向使其移动至原位置,并在每次移动后,构建新的解存入solution_space中,新的解的'way'属性值由Algorithm2决定,'length'由'way'重新计算得到,'collision'为shortest['collision']去除obs后的列表,'avoid'为shortest['avoid']添加obs以及其移动方向的列表,'map'值为obs移动至原为之后的地图数据,执行S23;
S3、输出全局最优解shortest。
本发明通过仿真弹簧形变的原理,设计了一种弹簧算法(Spring Algorithm,SA)。初始化先将障碍物全部移除,起点与终点之间以一根弹簧相连,随后将障碍物按照一定顺序由边界外移动至原位置,在此过程中,障碍物的移动会对弹簧产生碰撞形变,当所有障碍物回归至原位置时,形变后的弹簧的长度,将对应一个解,其中,最小解即为最优路径。通过案例仿真可以看出,弹簧算法的用时对节点规模的敏感程度远小于A*,且其得到的最优解也优于蚁群算法。
本发明的有益效果是,弹簧算法由于仅对障碍物进行研究,因此对于一些障碍物个数较少的栅格地图的寻路任务,其运行时间较短,且弹簧算法对节点规模的敏感程度较A*来看较小。同时,算法所得最终路径,优于A*以及蚁群算法。
附图说明
下面结合附图和实施例对本发明进一步说明:
图1 形变点使弹簧产生形变示意图;
图2 障碍物完全位于弹簧线段之上;
图3 障碍物局部位于弹簧线段之下;
图4 弹簧算法流程图;
图5 弹簧算法障碍物编码;
图6 弹簧算法所得结果;
图7 弹簧算法结果等价图;
图8 A*算法所得结果;
图9 蚁群算法所得结果;
图10 蚁群算法迭代收敛图。
具体实施方式
本发明的目的在于提供一种基于弹簧算法(Spring Algorithm)的移动机器人路径规划方法,该算法的用时对节点规模的敏感程度远小于A*,且其得到的最优解也优于传统蚁群算法。
首先,针对栅格地图下的障碍物提出形变点的概念,即可能对弹簧产生形变的栅格顶点,如图1所示。
图1中,障碍物的四个顶点皆为形变点,当障碍物由栅格图下界向上移动至原位置时,顶点A将使得弹簧产生形变,如图1(a)效果所示;当障碍物由栅格图上界向下移动至原位置时,顶点C将使得弹簧产生形变,如图1(b)效果所示。
定义弹簧形变规则,即在障碍物移动的过程中,通过检测障碍物上的形变点是否逾越弹簧线段来判定弹簧是否发生形变。方法如Algorithm 1所示。
以图2所示为例,障碍物由上至下移动至其原位置,对顶点C检测其与弹簧各线段的位置状态,通过Algorithm 1可得状态列表state = [0]。
随着障碍物继续下移,顶点C会首先逾越弹簧线段SE,此时情形如图3所示。
由Algorithm 1可得state = [1],此时标志着C点产生了逾越行为,这将使得弹簧产生形变,即弹簧线段由SE变成SC+CE,具体操作见Algorithm 2。
定义后文解空间中解的所含属性名及其功能如表1所示。
表1 解的属性名及其功能
本发明解决其技术问题所采用的技术方案是:
一种基于弹簧算法的移动机器人路径规划方法,包括以下步骤:
S1、对障碍物进行编号(i=1,2,3…),以及记录其原位置;更新障碍物所属矩阵map_obs_belong;初始化解空间solution_space,即向其中放入初始解,其'way'属性为起点与终点两个节点,'length'为计算后的弹簧长度,'collision'为起点与终点连线所在节点上所有障碍物的编号构成的列表,'avoid'为空列表,'map'值为无障碍物时的地图数据;
S2、进入循环:
S21、从solution_space中以'length'为参考值,找到最小值所对应的那个解,记作shortest。若该解的'collision'列表为空,则退出循环,执行S3;否则执行S22;
S22、依次选取shortest['collision']中的障碍物obs,分别从不同的方向使其移动至原位置,并在每次移动后,构建新的解存入solution_space中,新的解的'way'属性值由Algorithm2决定,'length'由'way'重新计算得到,'collision'为shortest['collision']去除obs后的列表,'avoid'为shortest['avoid']添加obs以及其移动方向的列表,'map'值为obs移动至原为之后的地图数据。执行S23;
S3、输出全局最优解shortest。
本发明的有益效果是,弹簧算法由于仅对障碍物进行研究,因此对于一些障碍物个数较少的栅格地图的寻路任务,其运行时间较短,且弹簧算法对节点规模的敏感程度较A*来看较小。同时,算法所得最终路径,优于A*以及蚁群算法。
本发明的效果可以通过以下仿真实验进一步说明:
为验证本方法的正确性和合理性,运用python语言编程,在20×20的栅格环境模型下对弹簧算法(Spring Algorithm,SA)进行仿真,栅格图数据选取期刊《电子科技》在2019年第32卷第9期中5-9页+29页《基于改进蚁群算法的移动机器人路径规划研究》文献中数据为案例,并与A*算法以及基本蚁群算法进行比较。其中,蚁群算法算法的主要参数如下:距离启发因子α=7,距离启发因子β=1,信息素挥发系数q=0.3,,蚂蚁数量m = 50,最大迭代次数为T = 100。
弹簧算法对栅格图中的障碍物编号见图5,算法所得最短路径的way列表[[12,3],[8,0],[5,0]],其中,0为由栅格上界向下移动,3为由栅格下界向上移动,因此,最短路径对应的障碍物移动次序为,先将障碍物12由下向上移动,再将障碍物8由上向下移动,组以后将障碍物5由上向下移动,最终所得弹簧形态即为最短路径,如图6所示;弹簧算法得到的结果等价图如图7所示。另外,算法所得结果也说明了其余障碍物对最短路径无影响。其他算法所得到的结果如图8-图10所示及表2所示。
由表2可知,在路径长度方面,A*与蚁群算法皆能找到最优解,而弹簧算法由于不遵循栅格图节点之间移动的角度限制问题(即机器人仅能沿着水平/垂直/对角移动),因此,其能得到更好的解,而这个结果也更符合实际情况。在运行时间方面,A*算法速度更快,而弹簧算法用时略长,但却明显小于蚁群算法。
为了测试各算法在不同节点规模下的表现,针对上述案例的栅格地图,进一步提高地图栅格环境的复杂度,选取40*40、60*60的规模进行仿真,实验数据如表3所示。
表 3 不同栅格环境下的算法仿真结果
由表3数据可知,弹簧算法在大规模地图的寻路问题上,依然比A*算法和蚁群算法能获得更优秀的结果,进一步说明本发明的可行性。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制;任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同替换、等效变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (1)
1.一种基于弹簧算法的机器人路径规划方法, 包括以下步骤:
1)定义弹簧形变规则
即在障碍物移动的过程中,通过检测障碍物上的形变点是否逾越弹簧线段来判定弹簧是否发生形变,方法如表Algorithm 1所示,
由Algorithm 1可得state = [1],此时标志着C点产生了逾越行为,这将使得弹簧产生形变,即弹簧线段由SE变成SC+CE,具体操作见表Algorithm 2,
定义后文解空间中解的所含属性名及其功能如表1所示,
表1 解的属性名及其功能
2)路径规划
S1、对障碍物进行编号(i=1,2,3…),以及记录其原位置;更新障碍物所属矩阵map_obs_belong;初始化解空间solution_space,即向其中放入初始解,其'way'属性为起点与终点两个节点,'length'为计算后的弹簧长度,'collision'为起点与终点连线所在节点上所有障碍物的编号构成的列表,'avoid'为空列表,'map'值为无障碍物时的地图数据;
S2、进入循环:
S21、从solution_space中以'length'为参考值,找到最小值所对应的那个解,记作shortest;
若该解的'collision'列表为空,则退出循环,执行S3;否则执行S22;
S22、依次选取shortest['collision']中的障碍物obs,分别从不同的方向使其移动至原位置,并在每次移动后,构建新的解存入solution_space中,新的解的'way'属性值由Algorithm2决定,'length'由'way'重新计算得到,'collision'为shortest['collision']去除obs后的列表,'avoid'为shortest['avoid']添加obs以及其移动方向的列表,'map'值为obs移动至原为之后的地图数据;
执行S23;
S3、输出全局最优解shortest。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111073600.7A CN113759922B (zh) | 2021-09-14 | 2021-09-14 | 一种基于弹簧算法的机器人路径规划方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111073600.7A CN113759922B (zh) | 2021-09-14 | 2021-09-14 | 一种基于弹簧算法的机器人路径规划方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113759922A true CN113759922A (zh) | 2021-12-07 |
CN113759922B CN113759922B (zh) | 2023-06-09 |
Family
ID=78795329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111073600.7A Active CN113759922B (zh) | 2021-09-14 | 2021-09-14 | 一种基于弹簧算法的机器人路径规划方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113759922B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129249A (zh) * | 2011-01-10 | 2011-07-20 | 中国矿业大学 | 一种危险源环境下的机器人全局路径规划方法 |
KR20130054798A (ko) * | 2011-11-17 | 2013-05-27 | 재단법인대구경북과학기술원 | 보행 로봇의 주행 경로 계획 장치 및 방법 |
CN104850011A (zh) * | 2015-05-22 | 2015-08-19 | 上海电力学院 | 一种障碍物环境中tsp避障最优路径规划方法 |
CN107627314A (zh) * | 2017-11-17 | 2018-01-26 | 成都市思卡利科技有限公司 | 一种基于遗传算法的寻路机器人、寻路系统及寻路方法 |
CN109282815A (zh) * | 2018-09-13 | 2019-01-29 | 天津西青区瑞博生物科技有限公司 | 一种动态环境下基于蚁群算法的移动机器人路径规划方法 |
CN109945881A (zh) * | 2019-03-01 | 2019-06-28 | 北京航空航天大学 | 一种蚁群算法的移动机器人路径规划方法 |
CN112327876A (zh) * | 2020-11-21 | 2021-02-05 | 安徽工程大学 | 一种基于终距指数的机器人路径规划方法 |
CN112518754A (zh) * | 2020-12-07 | 2021-03-19 | 安徽机电职业技术学院 | 一种基于蚁群算法的具有避障清理结构的路径自编机器人 |
-
2021
- 2021-09-14 CN CN202111073600.7A patent/CN113759922B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129249A (zh) * | 2011-01-10 | 2011-07-20 | 中国矿业大学 | 一种危险源环境下的机器人全局路径规划方法 |
KR20130054798A (ko) * | 2011-11-17 | 2013-05-27 | 재단법인대구경북과학기술원 | 보행 로봇의 주행 경로 계획 장치 및 방법 |
CN104850011A (zh) * | 2015-05-22 | 2015-08-19 | 上海电力学院 | 一种障碍物环境中tsp避障最优路径规划方法 |
CN107627314A (zh) * | 2017-11-17 | 2018-01-26 | 成都市思卡利科技有限公司 | 一种基于遗传算法的寻路机器人、寻路系统及寻路方法 |
CN109282815A (zh) * | 2018-09-13 | 2019-01-29 | 天津西青区瑞博生物科技有限公司 | 一种动态环境下基于蚁群算法的移动机器人路径规划方法 |
CN109945881A (zh) * | 2019-03-01 | 2019-06-28 | 北京航空航天大学 | 一种蚁群算法的移动机器人路径规划方法 |
CN112327876A (zh) * | 2020-11-21 | 2021-02-05 | 安徽工程大学 | 一种基于终距指数的机器人路径规划方法 |
CN112518754A (zh) * | 2020-12-07 | 2021-03-19 | 安徽机电职业技术学院 | 一种基于蚁群算法的具有避障清理结构的路径自编机器人 |
Non-Patent Citations (1)
Title |
---|
高申勇: "基于弹簧模型的移动机器人路径规划研究", 《仪器仪表学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113759922B (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110160546B (zh) | 一种移动机器人路径规划方法 | |
CN111504325B (zh) | 一种基于扩大搜索邻域的加权a*算法的全局路径规划方法 | |
CN110095122B (zh) | 一种基于改进蚁群算法的移动机器人路径规划方法 | |
CN112325897B (zh) | 基于启发式深度强化学习的路径规划方法 | |
CN109945881A (zh) | 一种蚁群算法的移动机器人路径规划方法 | |
CN112327876B (zh) | 一种基于终距指数的机器人路径规划方法 | |
CN108444490B (zh) | 基于可视图和a*算法深度融合的机器人路径规划方法 | |
CN113885536B (zh) | 一种基于全局海鸥算法的移动机器人路径规划方法 | |
CN109491389A (zh) | 一种具有速度约束的机器人轨迹跟踪方法 | |
CN113867368A (zh) | 一种基于改进海鸥算法的机器人路径规划方法 | |
CN110231824A (zh) | 基于直线偏离度方法的智能体路径规划方法 | |
CN112230665A (zh) | 一种基于aco的ros机器人全局路径优化方法 | |
CN111649758B (zh) | 一种动态环境下基于强化学习算法的路径规划方法 | |
CN114815802A (zh) | 一种基于改进蚁群算法的无人天车路径规划方法和系统 | |
CN110045738A (zh) | 基于蚁群算法和Maklink图的机器人路径规划方法 | |
Geng et al. | A kind of route planning method for UAV based on improved PSO algorithm | |
CN114326726B (zh) | 一种基于a*与改进人工势场法的编队路径规划控制方法 | |
Ma et al. | A Fast path re-planning method for UAV based on improved A* algorithm | |
CN113917925A (zh) | 一种基于改进遗传算法的移动机器人路径规划方法 | |
CN113759922A (zh) | 一种基于弹簧算法的机器人路径规划方法 | |
CN115686020B (zh) | 一种基于iapf-a*融合算法的机器人路径规划 | |
CN115454070B (zh) | 一种K-Means蚁群算法多机器人路径规划方法 | |
CN115344046A (zh) | 一种基于改进深度q网络算法的移动机器人路径规划 | |
CN113419532A (zh) | 一种基于均匀设计的路径规划蚁群算法参数选取方法 | |
Yan | Research on the A Star Algorithm for Finding Shortest Path |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |