CN110209167B - 一种实时的完全分布式的多机器人系统编队的方法 - Google Patents

一种实时的完全分布式的多机器人系统编队的方法 Download PDF

Info

Publication number
CN110209167B
CN110209167B CN201910443891.0A CN201910443891A CN110209167B CN 110209167 B CN110209167 B CN 110209167B CN 201910443891 A CN201910443891 A CN 201910443891A CN 110209167 B CN110209167 B CN 110209167B
Authority
CN
China
Prior art keywords
robot
time
robots
obstacle
calculation
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.)
Active
Application number
CN201910443891.0A
Other languages
English (en)
Other versions
CN110209167A (zh
Inventor
力上民
胡核算
张婷婷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201910443891.0A priority Critical patent/CN110209167B/zh
Publication of CN110209167A publication Critical patent/CN110209167A/zh
Application granted granted Critical
Publication of CN110209167B publication Critical patent/CN110209167B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0287Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling

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)
  • Manipulator (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Numerical Control (AREA)

Abstract

本发明属于机器人协同控制系统技术领域,特别涉及一种实时的完全分布式的多机器人系统编队的方法,本发明是适时探测周围环境的,所以不需要提前知道全局环境,克服了集中控制存在的缺陷;同组机器人之间有通信,并且用相对坐标系做数学规划,各个机器人之间会绝对保证相对位置不变,避免机器人之间的碰撞;采用分布式的方法代替Leader‑Follower的方法可以保证任何机器人遇到障碍物队形都不会乱。

Description

一种实时的完全分布式的多机器人系统编队的方法
技术领域
本发明属于机器人协同控制系统技术领域,特别涉及一种实时的完全分布式的多机器人系统编队的方法。
背景技术
随着科技的不断发展,机器人被应用到许多领域,如自动制造、柔性生产、搜索营救、环境监测、安全健康等。但是单机器人在信息获取、处理及控制能力等方面都有限制。对于复杂的工作、任务及多变的工作环境,单个机器人的能力明显不足。相对于单个机器人,多个机器人可以协调合作完成单一机器人难以完成的复杂任务,比如环境监督、灾难营救和雷区映射等等。
多机器人编队控制是多机器人系统研究领域一类常见的协作问题,采用多个机器人组成编队具有较多优点,例如在军事侦察、搜索、排雷等应用中能够获取更多的环境信息,在飞行器、卫星编队飞行等应用中能够完成更多、更复杂的任务。
近年来,随着网络技术、通信技术以及信息技术的发展,关于多机器人系统编队的研究有长足的进展,但有些方法仍存在一些不足,具体体现如下:1.集中控制方法缺乏健壮性和灵活性,当环境发生变化时控制器就需要重新制定全局的控制方案。2.采用分散式控制方法缺乏统一的规则,每个人机器人不能获取一起工作的其他机器人的状态和信息,可能会发生碰撞,后果不堪设想。3.采用Leader-Follower的控制方法缺乏普适性,如果Follower机器人遇到障碍物,控制器不会做出相应的决策保持队型。
发明内容
本发明的目的在于提供一种具有普适性、健壮性及灵活性的一种实时的完全分布式的多机器人系统编队的方法。
本发明提供的技术方案如下:一种实时的完全分布式的多机器人系统编队的方法,至少包括多机器人,其特征是:多机器人按如下步骤编队:
步骤1)若
Figure BDA0002072969340000021
则执行下一步,否则跳出本算法;
步骤2)取
Figure BDA0002072969340000022
stop_Pi,和positioni[n],并且初始化
Figure BDA0002072969340000023
Figure BDA0002072969340000024
Figure BDA0002072969340000025
步骤3)机器人i判断在当前时刻k0是否可以探测到静态或者动态障碍物,若有,则添加静态障碍物相对位置坐标到
Figure BDA0002072969340000026
添加动态障碍物相对位置坐标到
Figure BDA0002072969340000027
步骤4)机器人i广播自己的障碍物集合
Figure BDA0002072969340000028
给同组的其他机器人;
步骤5)若
Figure BDA0002072969340000029
执行下一步,否则跳到步骤8;
步骤6)机器人i接收机器人j发来的虚拟障碍物的相对坐标
Figure BDA00020729693400000210
分别添加
Figure BDA00020729693400000211
Figure BDA00020729693400000212
并且m1=m1+1;
步骤7)若m1=n-1,则
Figure BDA0002072969340000031
并且执行下一步,否则转到步骤6;
步骤8)机器人i根据
Figure BDA0002072969340000032
stop_Pi
Figure BDA0002072969340000033
用iscp算法计算下一个时间点k0+1的速度和位置及k0时刻的加速度,如果计算成功则
Figure BDA0002072969340000034
步骤9)若
Figure BDA0002072969340000035
则机器人i广播自己的计算状态给同组的其他机器人;
步骤10)若
Figure BDA0002072969340000036
执行下一步,否则转到步骤13;
步骤11)机器人i接收机器人j发来的计算状态,置
Figure BDA0002072969340000037
并且m2=m2+1;
步骤12)若m2=n-1,则
Figure BDA0002072969340000038
转到下一步,否则转到步骤11;
步骤13)机器人i把自己的计算结果送到执行器执行。
其中机器人i在时间点k0的iscp算法步骤如下:
步骤1)根据前一个时间点的计算结果初始化初始位置序列0xi(k0+1:Ti),迭代次数s=0,以及
Figure BDA0002072969340000039
步骤2)判断s是否满足s≤smax,若满足则执行下一步,否则转到步骤13;
步骤3)初始化
Figure BDA00020729693400000311
HasAdded=false;
步骤4)判断k是否满足
Figure BDA00020729693400000310
若满足则执行下一步,否则,跳到步骤9;
步骤5)判断k是否满足k∈PosiIndex,若满足则执行下一步,否则转到步骤7;
步骤6)碰撞避免的约束条件凸优化CVXConstr=ApproxCVX(sxi[k],O),将凸优化后的约束条件加到避碰约束条件集合CurConstr=CurConstr∪CVXConstr,转到步骤9;
步骤7)判断HasAdded=false和sflag_newi[k]=true两个条件是否均满足,若满足则添加障碍物位置spi[k]到集合O中并且执行下一步,否则转到步骤9;
步骤8)HasAdded=true,PosiIndex=PosiIndex∪{k},CVXConstr=ApproxCVX(sxi[k-1],O),CVXConstr=CurConstr∪CVXConstr;
步骤9)根据前边的结果构造数学规划CVX_Pi[k0]=Approx(Pi[k0],CurConstr),并且求解该数学规划(aa,vv,xx)=Solve(CVX_Pi[k0]),利用计算结果当中的位置xx初始化下一次迭代初始位置序列s+1xi[k0+1:Ti]=xx;
步骤10)判断是否满足max||s+1xi[k]-sxi[k]||≤∈,若满足执行下一步,否则转到步骤12,其中∈为精度;
步骤11)返回下一个时间点的信息ai[k0]=aa[1],vi[k0+1]=vv[1],xi[k0+1]=xx[1],跳出本算法;
步骤12)迭代次数加一s=s+1并且转到步骤2;
步骤13)报告错误,并采取紧急行动,例如紧急制动。
前述步骤9当中的数学规划模型如下:
Figure BDA0002072969340000051
subject to:
Figure BDA0002072969340000052
vi[k+1]=vi[k]+ai[k]hi
vi[k]∈[vmin,vmax],ai[k]∈[amin,amax]
Figure BDA0002072969340000053
||xi[k]-x0||2≥ρ′
其中xi[k]、vi[k]、ai[k]分别表示机器人i在k时刻的位置、速度和加速度,hi表示离散的时间步长,
Figure BDA0002072969340000056
表示机器人i的目标位置,||·||2表示二范数,对于静态障碍物ρ′=ρ+ρ0,对于动态障碍物ρ′=2ρ,其中ρ表示机器人的安全半径,ρ0表示静态障碍物的半径,x0表示静态或动态障碍物的位置。其中||xi[k]-x0||2≥ρ′在计算时需要凸优化为
Figure BDA0002072969340000054
xi[k′]是一个位置序列包括
Figure BDA0002072969340000057
其中
Figure BDA0002072969340000058
表示在第k个时间点的预测界域,sxi[k′]表示机器人i在第k′个时间点的第s次迭代的结果。
步骤中的符号定义:
Figure BDA0002072969340000055
Figure BDA0002072969340000061
Figure BDA0002072969340000071
在给定的环境当中,多个机器人只知道自己的目标位置和同一个系统当中与其他机器人的相对位置。在移动的过程当中,每个机器人探测自己周围的环境,当某一个或者多个机器人探测到有障碍物时,其会广播障碍物和自己的相对位置给同组的机器人,同组其他机器人接收到障碍物的信息时把其当作虚拟障碍物添加到自己约束当中进行数学规划求解,这样就保证了在每次规划当中每个机器人用同样的数学规划方法,同样的目标函数和同样的约束条件,在同样的精度要求下计算出下一个时间点的相对位置是一样的。近而保证适时避障并且队形不变,最终到达各自的目标位置。
与现有的技术相比,本发明的有益效果具体体现在:
1、与采用集中控制的方法相比更具有灵活性,机器人可以适时地自动地根据不同的环境做出相应的决策进而执行,不会由于环境的变化需要重新制定整个方案;另外本发明不像集中控制方法需要获取全部环境情况,只需要获取自己的局部环境即可。
2、与采用分散控制的方法相比更具有安全性,同组的机器人可以保证自己内部不会发生碰撞,分散式控制由于机器人之间没有通信,可能在两个机器人遇到不同障碍物时由于同时避障而导致两个机器人发生碰撞。本发明不会发生这种情况,因为机器人之间有通信,两个机器人遇到不同障碍物之后,每个机器人会把另一个机器人遇到的障碍物考虑到自己的规划当中。
3、与采用Leader-Follower方法相比更具有普适性,本发明不设立主机和从机,每个机器人既是主机又是从机,完全可以避免Leader-Follower中从机遇到障碍物而不能保持队形的缺陷。
附图说明
下边结合实施例附图对本发明作进一步说明:
图1是采用分散式控制方法,机器人之间会发生碰撞;
图2与图1对比,采用分布式的方法可以避免机器人之间的碰撞;
图3是五个机器人编队的环境信息;
图4表示在k0=16时,4号机器人探测到障碍物O2,此时4号机器人会把O2和自己的相对位置(3.8,3.2)-16current_P4广播给1,2,3,5号机器人,当其它四个机器人接收到相对位置坐标后,会把此相对坐标作为虚拟障碍物加到自己的数学规划里进行计算,当五个机器人都计算结束后,各自执行器分别按照计算结果执行。
图5表示在k0=19时,1号机器人和4号机器人分别遇到障碍物O1和O2。1号机器人广播O1和自己的相对位置(3,4.3)-19current_P1给2,3,4,5号机器人,4号机器人广播O2和自己的相对位置(3.8,3.2)-19current_P4给1,2,3,5号机器人,每个机器人都接收到所有广播后,把接收到的位置作为一个障碍物加到自己的数学规划里进行计算。
图6表示在k0=21时,1号、4号、5号机器人分别探测到障碍物O1、O2、O2,1、4、5号机器人分别广播(3,4.3)-21current_P1,(3.8,3.2)-21current_P4,(3.8,3.2)-21current_P5给同组其它四个机器人。
图7表示1、3、5号机器人均可以探测到障碍物,处理方式同上。
图8表示k0=27时,3号机器人探测到障碍物O2,并且进行避障。
图9表示k0=29时,3号机器人遇到动态障碍物O3,即此时3号机器人同时遇到静态障碍物O2和动态障碍物O3,3号机器人会把两个障碍物和自己的相对位置广播给1、2、4、5号机器人。
图10表示3号机器人处理图九遇到的障碍物的路径,五个机器人经过图11所示的路径最终到达图12所示的位置。
具体实施方式
实施例1
结合表1定义的符号内容说明本发明具体实施过程:一种实时的完全分布式的多机器人系统编队的方法,至少包括多机器人,多机器人按如下步骤编队:
步骤1)若
Figure BDA0002072969340000101
则执行下一步,否则跳出本算法;
步骤2)获取
Figure BDA0002072969340000102
stop_Pi,和positioni[n],并且初始化
Figure BDA0002072969340000103
Figure BDA0002072969340000104
Figure BDA0002072969340000105
步骤3)机器人i判断在当前时刻k0是否可以探测到静态或者动态障碍物,若有,则添加静态障碍物相对位置坐标到
Figure BDA0002072969340000106
添加动态障碍物相对位置坐标到
Figure BDA0002072969340000107
步骤4)机器人i广播自己的障碍物集合
Figure BDA0002072969340000108
给同组的其他机器人;
步骤5)若
Figure BDA0002072969340000109
执行下一步,否则跳到步骤8;
步骤6)机器人i接收机器人j发来的虚拟障碍物的相对坐标
Figure BDA00020729693400001010
分别添加
Figure BDA00020729693400001011
Figure BDA00020729693400001012
并且m1=m1+1;
步骤7)若m1=n-1,则
Figure BDA00020729693400001013
并且执行下一步,否则转到步骤6;
步骤8)机器人i根据
Figure BDA00020729693400001014
Figure BDA0002072969340000111
Figure BDA0002072969340000112
用iscp算法计算下一个时间点k0+1的速度和位置及k0时刻的加速度,如果计算成功则
Figure BDA0002072969340000113
步骤9)若
Figure BDA0002072969340000114
则机器人i广播自己的计算状态给同组的其他机器人;
步骤10)若
Figure BDA0002072969340000115
执行下一步,否则转到步骤13;
步骤11)机器人i接收机器人j发来的计算状态,置
Figure BDA0002072969340000116
并且m2=m2+1;
步骤12)若m2=n-1,则
Figure BDA0002072969340000117
转到下一步,否则转到步骤11;
步骤13)机器人i把自己的计算结果送到执行器执行。
其中机器人i在时间点k0的iscp算法步骤如下:
步骤1)根据前一个时间点的计算结果初始化初始位置序列0xi(k0+1:Ti),迭代次数s=0,以及
Figure BDA0002072969340000118
步骤2)判断s是否满足s≤smax,若满足则执行下一步,否则转到步骤13;
步骤3)初始化
Figure BDA0002072969340000119
HasAdded=false;
步骤4)判断k是否满足
Figure BDA00020729693400001110
若满足则执行下一步,否则,跳到步骤9;
步骤5)判断k是否满足k∈PosiIndex,若满足则执行下一步,否则转到步骤7;
步骤6)碰撞避免的约束条件凸优化CVXConstr=ApproxCVX(sxi[k],O),将凸优化后的约束条件加到避碰约束条件集合CurConstr=CurConstr∪CVXConstr,转到步骤9;
步骤7)判断HasAdded=false和sflag_newi[k]=true两个条件是否均满足,若满足则添加障碍物位置spi[k]到集合O中并且执行下一步,否则转到步骤9;
步骤8)HasAdded=true,PosiIndex=PosiIndex∪{k},CVXConstr=ApproxCVX(sxi[k-1],O),CVXConstr=CurConstr∪CVXConstr;
步骤9)根据前边的结果构造数学规划CVX_Pi[k0]=Approx(Pi[k0],CurConstr),并且求解该数学规划(aa,vv,xx)=Solve(CVX_Pi[k0]),利用计算结果当中的位置xx初始化下一次迭代初始位置序列s+1xi[k0+1:Ti]=xx;
步骤10)判断是否满足max||s+1xi[k]-sxi[k]||≤∈,若满足执行下一步,否则转到步骤12,其中∈为精度;
步骤11)返回下一个时间点的信息ai[k0]=aa[1],vi[k0+1]=vv[1],xi[k0+1]=xx[1],跳出本算法;
步骤12)迭代次数加一s=s+1并且转到步骤2;
步骤13)报告错误,并采取紧急行动,例如紧急制动。
前述步骤9当中的数学规划模型如下:
Figure BDA0002072969340000121
subject to:
Figure BDA0002072969340000131
vi[k+1]=vi[k]+ai[k]hi
vi[k]∈[vmin,vmax],ai[k]∈[amin,amax]
Figure BDA0002072969340000132
||xi[k]-x0||2≥ρ′
其中xi[k]、vi[k]、ai[k]分别表示机器人i在k时刻的位置、速度和加速度,hi表示离散的时间步长,
Figure BDA0002072969340000135
表示机器人i的目标位置,||·||2表示二范数,对于静态障碍物ρ′=ρ+ρ0,对于动态障碍物ρ′=2ρ,其中ρ表示机器人的安全半径,ρ0表示静态障碍物的半径,x0表示静态或动态障碍物的位置。其中||xi[k]-x0||2≥ρ′在计算时需要凸优化为
Figure BDA0002072969340000133
xi[k′]是一个位置序列包括
Figure BDA0002072969340000136
其中
Figure BDA0002072969340000137
表示在第k个时间点的预测界域,sxi[k′]表示机器人i在第k′个时间点的第s次迭代的结果。
步骤中的符号定义:表1
Figure BDA0002072969340000134
Figure BDA0002072969340000141
Figure BDA0002072969340000151
实施例2
在上述实施例基础上,本实施例以五个机器人为例阐述编队过程,具体实现如图2。
步骤1)各机器人检查是否到达目标位置,即
Figure BDA0002072969340000152
的状态,如果为false则执行下一步,其中i=1,2,3,4,5,比如本例i=1;
步骤2)各机器人获取自己当前位置、速度以及上一个位置的加速度
Figure BDA0002072969340000153
自己的目标位置stop_Pi,以及和同组其他机器人的相对位置positioni[n]并且初始化
Figure BDA0002072969340000154
Figure BDA0002072969340000161
步骤3)机器人i在当前时刻k0探测周围环境,确定障碍物的位置,并且添加静态障碍物的相对位置到
Figure BDA0002072969340000162
添加动态障碍物的相对位置到
Figure BDA0002072969340000163
步骤4)机器人i广播自己的障碍物集合
Figure BDA0002072969340000164
给同组的其它机器人j,j=2,3,4,5;
步骤5)机器人i判断是否收到了同组所有机器人发来的障碍物集合,即判断
Figure BDA0002072969340000165
的状态,如果为false,则执行下一步,否则转到步骤8;
步骤6)机器人i接收来自同组机器人j发来的障碍物的相对坐标
Figure BDA0002072969340000166
并把其当做自己遇到的障碍物分别添加
Figure BDA0002072969340000167
Figure BDA0002072969340000168
Figure BDA0002072969340000169
然后记录数m1=m1+1;
步骤7)如果机器人i接收了同组其它所有机器人的广播,此时m1=4,则使
Figure BDA00020729693400001610
并且执行下一步,否则转到步骤5;
步骤8)机器人i根据
Figure BDA00020729693400001611
stop_Pi
Figure BDA00020729693400001612
用iscp算法计算下一个时间点k0+1的速度和位置及k0时刻的加速度,如果计算成功则
Figure BDA00020729693400001613
步骤9)若
Figure BDA00020729693400001614
则机器人i广播自己的计算状态给同组的其他机器人j;
步骤10)若
Figure BDA00020729693400001615
即执行下一步,否则转到步骤13;
步骤11)机器人i接收机器人j发来的计算状态,置
Figure BDA0002072969340000171
并且计数m2=m2+1;
步骤12)若m2=4,即收到了同组所有其它机器人广播的状态,则令
Figure BDA0002072969340000172
转到下一步,否则转到步骤11;
步骤13)机器人i把自己的计算结果送到执行器执行。
其中,上述步骤8中的iscp算法具体如下:
步骤1)根据前一个时间点的计算结果初始化初始位置序列0xi(k0+1:Ti),迭代次数s=0,以及
Figure BDA0002072969340000173
步骤2)判断s是否满足s≤smax,若满足则执行下一步,否则转到步骤13;
步骤3)初始化
Figure BDA0002072969340000174
HasAdded=false;
步骤4)判断k是否满足
Figure BDA0002072969340000175
若满足则执行下一步,否则,跳到步骤9;
步骤5)判断k是否满足k∈PosiIndex,若满足则执行下一步,否则转到步骤7;
步骤6)碰撞避免的约束条件凸优化CVXConstr=ApproxCVX(sxi[k],O),将凸优化后的约束条件加到避碰约束条件集合CurConstr=CurConstr∪CVXConstr,转到步骤9;
步骤7)判断HasAdded=false和sflag_newi[k]=true两个条件是否均满足,若满足则添加障碍物位置spi[k]到集合O中并且执行下一步,否则转到步骤9;
步骤8)HasAdded=true,PosiIndex=PosiIndex∪{k},CVXConstr=ApproxCVX(sxi[k-1],O),CVXConstr=CurConstr∪CVXConstr;
步骤9)根据前边的结果构造数学规划CVX_Pi[k0]=Approx(Pi[k0],CurConstr),并且求解该数学规划(aa,vv,xx)=Solve(CVX_Pi[k0]),利用计算结果当中的位置xx初始化下一次迭代初始位置序列s+1xi[k0+1:Ti]=xx;
步骤10)判断是否满足max||s+1xi[k]-sxi[k]||≤∈,若满足执行下一步,否则转到步骤12,其中∈为精度;
步骤11)返回下一个时间点的信息ai[k0]=aa[1],vi[k0+1]=vv[1],xi[k0+1]=xx[1],跳出本算法;
步骤12)迭代次数加一s=s+1并且转到步骤2;
步骤13)报告错误,并采取紧急行动,例如紧急制动。
本例当中要实现的任务是:五个机器人一直保持矩形队形(其中一个在矩形的中心)并且各机器人的相对位置不变,适时避免静态和动态障碍物,从初始到达目标位置。
结合附图对算法的执行做具体的说明:
如图3所示,本例编号为1,2,3,4,5的五个机器人的初始位置分别为(1.5,3),(2.5,3),(1.5,2),(2.5,2),(2,2.5),5号机器人的目标位置为Obj=(8,8)。运行环境中存在三个障碍物,分别是两个静态障碍物O1=(3,4.3),O2=(3.8,3.2)和一个动态障碍物O3=(5,3.8),动态障碍物会在运行时显示。五个机器人需要保持现在的队形避过环境当中的所有障碍物到达目标位置。
在本例当中,整个任务等时间离散为50个时间点,时间步长为0.1,一次可以规划10个时间点的路径,传感半径为0.65,最大速度为5,机器人的安全半径为0.3(此处把障碍物看做一个点,障碍物的半径加到机器人的安全半径),在各个时间点上机器人和相对应的障碍物分别为:表2
时间点 机器人(遇到的障碍物)
14~17 4(O<sub>2</sub>)
18~20 1(O<sub>1</sub>),4(O<sub>2</sub>)
21~24 1(O<sub>1</sub>),4(O<sub>2</sub>),5(O<sub>2</sub>)
25~26 1(O<sub>1</sub>),3(O<sub>2</sub>),5(O<sub>2</sub>)
27~28 3(O<sub>2</sub>)
本发明中机器人运动时会把整个过程等时间离散(比如50个时间点到达目标位置),机器人在每个时间点上会进行探测,并根据探测到障碍物的位置用数学规划进行传感器范围内(比如10个时间点)的路径规划,但是在执行的时候只执行一个时间点的结果,通过这种方式就可以保证机器人适时规划路径,并且可以保证是最优的路径。
在编队的时候,同组的机器人之间互相通信,并且在运动的过程中,每个机器人根据自己适时位置建立相对坐标系保证规划和运动的一致性。如果某一个机器人甲遇到障碍物,甲会把障碍物和自己的相对位置广播给同组其他机器人乙,乙接收到障碍物相对坐标后,会把此相对坐标当做一个障碍物处理,实际上乙没有遇到障碍物,只是因为甲的广播乙自己虚拟出一个障碍物,当乙遇到障碍物时也是同样的方法。这种方法保证了同组机器人在每一个点上的数学规划是一样的,用同样的数学规划方法同样的精度,最后的结果是一样的,即每个机器人以当前位置为参考点,下一个位置的加速度、速度、方向和位置是一样的,如图2。
本发明是适时探测周围环境的,所以不需要提前知道全局环境,克服了集中控制存在的缺陷;同组机器人之间有通信,并且用相对坐标系做数学规划,各个机器人之间会绝对保证相对位置不变,避免机器人之间的碰撞;采用分布式的方法代替Leader-Follower的方法可以保证任何机器人遇到障碍物队形都不会乱。

Claims (3)

1.一种实时的完全分布式的多机器人系统编队的方法,其特征是:至少包括如下步骤:
步骤1)若
Figure FDA0003023809100000011
则执行下一步,否则跳出本算法;
步骤2)获取
Figure FDA0003023809100000012
stop_Pi,和positioni[n],并且初始化
Figure FDA0003023809100000013
Figure FDA0003023809100000014
Figure FDA0003023809100000015
步骤3)机器人i判断在当前时刻
Figure FDA0003023809100000016
是否可以探测到静态或者动态障碍物,若有,则添加静态障碍物相对位置坐标到
Figure FDA0003023809100000017
添加动态障碍物相对位置坐标到
Figure FDA0003023809100000018
步骤4)机器人i广播自己的障碍物集合
Figure FDA0003023809100000019
给同组的其他机器人;
步骤5)若
Figure FDA00030238091000000110
执行下一步,否则跳到步骤8;
步骤6)机器人i接收机器人j发来的虚拟障碍物的相对坐标
Figure FDA00030238091000000111
分别添加
Figure FDA00030238091000000112
Figure FDA00030238091000000113
并且m1=m1+1;
步骤7)若m1=n-1,则
Figure FDA00030238091000000114
并且执行下一步,否则转到步骤6;
步骤8)机器人i根据
Figure FDA0003023809100000021
Figure FDA0003023809100000022
用iscp算法计算下一个时间点k0+1的速度和位置及k0时刻的加速度,如果计算成功则
Figure FDA0003023809100000023
步骤9)若
Figure FDA0003023809100000024
则机器人i广播自己的计算状态给同组的其他机器人;
步骤10)若
Figure FDA0003023809100000025
执行下一步,否则转到步骤13;
步骤11)机器人i接收机器人j发来的计算状态,置
Figure FDA0003023809100000026
并且m2=m2+1;
步骤12)若m2=n-1,则
Figure FDA0003023809100000027
转到下一步,否则转到步骤11;
步骤13)机器人i把自己的计算结果送到执行器执行;
步骤中的符号定义:
i,j,n系统中有n个机器人,i,j分别表示第i,j个机器人,1≤i,j≤n
Figure FDA0003023809100000028
机器人i在k0时刻的位置
Figure FDA0003023809100000029
机器人i在k0时刻的速度
Figure FDA00030238091000000210
机器人i在k0时刻的加速度
stop_Pi机器人i的目标位置
positioni[n]机器人i与同一个系统中其他机器人的相对位置
Figure FDA00030238091000000211
机器人i在k0时刻是否到达终点
Figure FDA00030238091000000212
机器人i在k0时刻是否结束了当前的iscp计算
Figure FDA00030238091000000213
机器人i在k0时刻是否接收了同组所有机器人广播的障碍物
Figure FDA0003023809100000031
机器人i在k0时刻是否接收了同组所有机器人计算状态的广播
Figure FDA0003023809100000032
记录机器人i在k0时刻记录计算结束的机器人的集合
Figure FDA0003023809100000033
机器人i在k0时刻探测到的静态和动态障碍物
Figure FDA0003023809100000034
在k0时刻中机器人i要处理的静态障碍物
Figure FDA0003023809100000035
在k0时刻中机器人i要处理的动态障碍物
s,smax s表示迭代次数,smax表示允许最大的迭代次数
sxi(k0+1:Ti),机器人i在第s次迭代中规划的从k0+1到Ti时刻的位置坐标,k0表示当前的时刻,Ti表示在整个规划当中离散的时间点总数
Figure FDA0003023809100000036
机器人i在k0时刻可以规划的最大时间点
PosiIndex在k0
Figure FDA0003023809100000037
中被添加约束条件的时间点的集合
CurConstr第s次迭代当中
Figure FDA0003023809100000038
内各时间点添加的避碰约束条件集合
HasAdded第s次迭代中是否有新的时间点被添加到PosiIndex
ApproxCVX(sxi[k],O)对机器人i在第s次迭代中的第k个时间点的避碰约束条件进行凸优化,其中O表示其在第k个时间点探测到障碍物的集合
sflag_newi[k]机器人i在第s次迭代中第k个时间点是否发现新的障碍物
spi[k]机器人i在第s次迭代中第k个时间点新添加的障碍物
Approx(Pi[k0],CurConstr)根据约束条件CurConstr构造机器人在k0时间点的数学规划模型Pi[k0]
Solve(CVX_Pi[k0])求解数学规划Pi[k0],返回探测范围内加速度、速度和位置序列。
2.根据权利要求1所述的一种实时的完全分布式的多机器人系统编队的方法,其特征是:步骤8)具体包括如下步骤:
步骤1)根据前一个时间点的计算结果初始化初始位置序列0xi(k0+1:Ti),迭代次数s=0,以及
Figure FDA0003023809100000041
步骤2)判断s是否满足s≤smax,若满足则执行下一步,否则转到步骤13;
步骤3)初始化
Figure FDA0003023809100000042
HasAdded=false;
步骤4)判断k是否满足
Figure FDA0003023809100000043
若满足则执行下一步,否则,跳到步骤9;
步骤5)判断k是否满足k∈PosiIndex,若满足则执行下一步,否则转到步骤7;
步骤6)对碰撞避免的约束条件凸优化CVXConstr=ApproxCVX(sxi[k],O),将凸优化后的约束条件加到避碰约束条件集合CurConstr=CurConstr∪CVXConstr,转到步骤9;
步骤7)判断HasAdded=false和sflag_newi[k]=true两个条件是否均满足,若满足则添加障碍物位置spi[k]到集合O中并且执行下一步,否则转到步骤9;
步骤8)
HasAdded=true,PosiIndex=PosiIndex∪{k},CVXConstr
=ApproxCVX(sxi[k-1],O),CVXConstr=CurConstr∪CVXConstr;
步骤9)根据前边的结果构造数学规划CVX_Pi[k0]=Approx(Pi[k0],CurConstr),并且求解该数学规划(aa,vv,xx)=Solve(CVX_Pi[k0]),利用计算结果当中的位置xx初始化下一次迭代初始位置序列s+1xi[k0+1:Ti]=xx;
步骤10)判断是否满足max||s+1xi[k]-sxi[k]||≤,若满足执行下一步,否则转到步骤12,其中为精度;
步骤11)返回下一个时间点的信息ai[k0]=aa[1],vi[k0+1]=vv[1],xi[k0+1]=xx[1],跳出本算法;
步骤12)迭代次数加一s=s+1并且转到步骤2;
步骤13)报告错误,并采取紧急行动;
步骤中的符号定义:
i,j,n系统中有n个机器人,i,j分别表示第i,j个机器人,1≤i,j≤n
Figure FDA0003023809100000051
机器人i在k0时刻的位置
Figure FDA0003023809100000052
机器人i在k0时刻的速度
Figure FDA0003023809100000053
机器人i在k0时刻的加速度
stop_Pi机器人i的目标位置
positioni[n]机器人i与同一个系统中其他机器人的相对位置
Figure FDA0003023809100000054
机器人i在k0时刻是否到达终点
Figure FDA0003023809100000055
机器人i在k0时刻是否结束了当前的iscp计算
Figure FDA0003023809100000056
机器人i在k0时刻是否接收了同组所有机器人广播的障碍物
Figure FDA0003023809100000061
机器人i在k0时刻是否接收了同组所有机器人计算状态的广播
Figure FDA0003023809100000062
记录机器人i在k0时刻记录计算结束的机器人的集合
Figure FDA0003023809100000063
机器人i在k0时刻探测到的静态和动态障碍物
Figure FDA0003023809100000064
在k0时刻中机器人i要处理的静态障碍物
Figure FDA0003023809100000065
在k0时刻中机器人i要处理的动态障碍物
s,smax s表示迭代次数,smax表示允许最大的迭代次数
sxi(k0+1:Ti),机器人i在第s次迭代中规划的从k0+1到Ti时刻的位置坐标,k0表示当前的时刻,Ti表示在整个规划当中离散的时间点总数
Figure FDA0003023809100000066
机器人i在k0时刻可以规划的最大时间点
PosiIndex在k0
Figure FDA0003023809100000067
中被添加约束条件的时间点的集合
CurConstr第s次迭代当中
Figure FDA0003023809100000068
内各时间点添加的避碰约束条件集合
HasAdded第s次迭代中是否有新的时间点被添加到PosiIndex
ApproxCVX(sxi[k],O)对机器人i在第s次迭代中的第k个时间点的避碰约束条件进行凸优化,其中O表示其在第k个时间点探测到障碍物的集合
sflag_newi[k]机器人i在第s次迭代中第k个时间点是否发现新的障碍物
spi[k]机器人i在第s次迭代中第k个时间点新添加的障碍物
Approx(Pi[k0],CurConstr)根据约束条件CurConstr构造机器人在k0时间点的数学规划模型Pi[k0]
Solve(CVX_Pi[k0])求解数学规划Pi[k0],返回探测范围内加速度、速度和位置序列。
3.根据权利要求1所述的一种实时的完全分布式的多机器人系统编队的方法,其特征是:前述步骤9当中的数学规划模型是:
Figure FDA0003023809100000071
subject to:
Figure FDA0003023809100000072
vi[k+1]=vi[k]+ai[k]hi
vi[k]∈[vmin,vmax],ai[k]∈[amin,amax]
Figure FDA0003023809100000073
||xi[k]-x0||2≥ρ′
其中xi[k]、vi[k]、ai[k]分别表示机器人i在k时刻的位置、速度和加速度,hi表示离散的时间步长,
Figure FDA0003023809100000074
表示机器人i的目标位置,||·||2表示二范数,对于静态障碍物ρ′=ρ+ρ0,对于动态障碍物ρ′=2ρ,其中ρ表示机器人的安全半径,ρ0表示静态障碍物的半径,x0表示静态或动态障碍物的位置;其中||xi[k]-x0||2≥ρ′在计算时需要凸优化为
Figure FDA0003023809100000075
xi[k′]是一个位置序列包括
Figure FDA0003023809100000076
其中
Figure FDA0003023809100000077
表示在第k个时间点的预测界域,sxi[k′]表示机器人i在第k′个时间点的第s次迭代的结果。
CN201910443891.0A 2019-05-27 2019-05-27 一种实时的完全分布式的多机器人系统编队的方法 Active CN110209167B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910443891.0A CN110209167B (zh) 2019-05-27 2019-05-27 一种实时的完全分布式的多机器人系统编队的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910443891.0A CN110209167B (zh) 2019-05-27 2019-05-27 一种实时的完全分布式的多机器人系统编队的方法

Publications (2)

Publication Number Publication Date
CN110209167A CN110209167A (zh) 2019-09-06
CN110209167B true CN110209167B (zh) 2021-07-16

Family

ID=67788828

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910443891.0A Active CN110209167B (zh) 2019-05-27 2019-05-27 一种实时的完全分布式的多机器人系统编队的方法

Country Status (1)

Country Link
CN (1) CN110209167B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813108A (zh) * 2020-06-23 2020-10-23 西安电子科技大学 一种实时分布式多机器人队形控制方法、系统
CN112286179A (zh) * 2020-09-07 2021-01-29 西安电子科技大学 一种协同运动控制方法、系统、计算机设备、机器人
CN112327829A (zh) * 2020-10-15 2021-02-05 西安电子科技大学 分布式多机器人协同运动控制方法、系统、介质及应用

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331711A (zh) * 2011-08-12 2012-01-25 江苏合成物联网科技有限公司 一种移动自主机器人的编队控制方法
CN103901887B (zh) * 2014-03-04 2017-05-24 重庆邮电大学 一种基于改进粒子群算法的多移动机器人编队控制方法
CN106483958B (zh) * 2016-11-10 2018-02-06 北京理工大学 一种基于障碍图和势场法的人机协同编队跟随及避障方法
CN108724188B (zh) * 2018-06-14 2022-02-25 西安电子科技大学 一种多机器人协同运动控制方法
CN108829113B (zh) * 2018-09-01 2021-05-28 哈尔滨工程大学 一种多机器人编队自适应零空间行为融合方法

Also Published As

Publication number Publication date
CN110209167A (zh) 2019-09-06

Similar Documents

Publication Publication Date Title
CN110209167B (zh) 一种实时的完全分布式的多机器人系统编队的方法
WO2019178319A1 (en) Method and apparatus for dynamic obstacle avoidance by mobile robots
Atanasov et al. Decentralized active information acquisition: Theory and application to multi-robot SLAM
US11287799B2 (en) Method for coordinating and monitoring objects
Zhang et al. A recursive receding horizon planning for unmanned vehicles
CN107491087B (zh) 一种基于碰撞锥的无人机编队避障优先级在线配置方法
Carrasco et al. Fault detection and isolation in cooperative mobile robots using multilayer architecture and dynamic observers
CN116300973B (zh) 一种复杂天气下无人驾驶矿车自主避障方法
Wakabayashi et al. Dynamic obstacle avoidance for Multi-rotor UAV using chance-constraints based on obstacle velocity
US11899750B2 (en) Quantile neural network
Wang et al. DDDAMS-based crowd control via UAVs and UGVs
Serra-Gómez et al. With whom to communicate: learning efficient communication for multi-robot collision avoidance
US11653256B2 (en) Apparatus, method and computer program for controlling wireless network capacity
de Oliveira Júnior et al. Improving the mobile robots indoor localization system by combining slam with fiducial markers
Martínez-de Dios et al. Aerial robot coworkers for autonomous localization of missing tools in manufacturing plants
Baranzadeh A decentralized control algorithm for target search by a multi-robot team
Xu et al. Indoor multi-sensory self-supervised autonomous mobile robotic navigation
Scholz et al. Distributed camera architecture for seamless detection and tracking of dynamic obstacles
Wang et al. Research on intelligent obstacle avoidance control method for mobile robot in multi-barrier environment
Zhang et al. An autonomous robotic system for intralogistics assisted by distributed smart camera network for navigation
Aburime et al. Compensation for time delays in the navigation of unmanned aerial vehicles
CN113510699A (zh) 一种基于改进蚁群优化算法的机械臂运动轨迹规划方法
Carney et al. Multi-agents path planning for a swarm of unmanned aerial vehicles
Yazdjerdi et al. Fault tolerant controller schemes for single and multiple mobile robots
Verba et al. The features of the information integration and complex processing in the airborne situational awareness systems

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