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。