首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

未知环境下自适应方向调整的在线螺旋覆盖路径规划方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:湖南第一师范学院

摘要:本发明公开了一种未知环境下自适应方向调整的在线螺旋覆盖路径规划方法,目的是解决局部极值而导致的覆盖效率变低问题。先构建由客户端和机器人终端组成的在线螺旋覆盖路径规划系统。机器人终端装载有自适应螺旋覆盖路径规划模块和基本功能模块。自适应螺旋覆盖路径规划模块由地图管理子模块、状态控制子模块、割点检测子模块、障碍物探索子模块、双向螺旋填充子模块和方向自适应调整子模块组成。这些模块相互配合执行覆盖任务,生成覆盖整个目标区域的运动轨迹。本发明能够在线规划出覆盖目标区域地螺旋路径,能提前预测到割点引入的局部极值,避免局部极值引入的效率降低问题,且路径规划耗时少,在实现完全覆盖的同时减少局部极值。

主权项:1.一种未知环境下自适应方向调整的在线螺旋覆盖路径规划方法,其特征在于包括以下步骤:第一步,构建在线螺旋覆盖路径规划系统,在线螺旋覆盖路径规划系统由客户端和机器人终端组成;客户端是一台移动终端或者PC机,客户端将用户定义的目标区域的边界信息Bound发送给机器人终端的地图管理子模块;机器人终端是一台机器人,机器人终端装载有自适应螺旋覆盖路径规划模块和机器人自带的基本功能模块;基本功能模块包括:一个雷达传感器,雷达传感器用于采集环境信息,可检测半径为r2的矩形区域内的障碍物,具体包括障碍物的边界和障碍物与雷达传感器之间的距离,r2为正数;采集完环境信息后,雷达传感器将环境信息发送给定位模块;一个任务传感器,用于执行覆盖任务,覆盖宽度为r1大小的矩形区域,r1≤r2;一个用于实时定位的定位模块,定位模块负责构建栅格地图Gd,并得到机器人在栅格地图中的实时位姿信息posec,posec为三元组xc,yc,θc,其中xc,yc表示机器人在栅格地图中当前所处的x、y轴坐标,θc表示机器人实时朝向,将Gd和posec发送给自适应螺旋覆盖路径规划模块;一个导航模块,导航模块从自适应螺旋覆盖路径规划模块接收机器人目标点位姿,引导机器人安全地从posec运动到目标点位姿;其他机器人运行必备的软硬件控制模块;自适应螺旋覆盖路径规划模块与定位模块和导航模块相连,由地图管理子模块、状态控制子模块、割点检测子模块、障碍物探索子模块、双向螺旋填充子模块和方向自适应调整子模块共六个子模块组成;地图管理子模块接收客户端发送的边界信息Bound和定位模块发送的机器人在栅格地图中的位姿信息posec及栅格地图Gd,根据相对尺度构建二维单元矩阵MAP,并计算出机器人当前时刻在MAP中的位姿wc,将MAP及wc发送给割点检测子模块、障碍物探索子模块、双向螺旋填充子模块和方向自适应调整子模块;割点检测子模块接收地图管理子模块发送的MAP和wc,在wc处检测割点,得到割点子集aCV和第一状态控制信号Nstatel,并在割点检测过程中生成全局水漫填充矩阵GM,将aCV和GM发送给方向自适应调整子模块,将Nstate1发送给状态控制子模块;状态控制子模块接收状态控制子模块接收割点检测子模块发送的Nstate1,接收障碍物探索子模块发送的第二状态控制信号Nstate2,接收方向自适应调整子模块发送的第三状态控制信号Nstate3,接收双向螺旋填充子模块发送的第四状态控制信号Nstate4,生成控制信号Cstate,并将Cstate发送给障碍物探索子模块、双向螺旋填充子模块和方向自适应调整子模块;障碍物探索子模块从地图管理子模块接收MAP及wc,从状态控制子模块接收Cstate,从双向螺旋填充子模块接收障碍物起点信号Spoint,从方向自适应调整子模块接收螺旋正侧方向信号RLS和逆侧方向信号OLS,根据RLS和OLS生成第二目标点位姿posen2,根据posec与Spoint相对位置信息生成第二状态控制信号Nstate2,将posen2发送给导航模块,将Nstate2发送给状态控制子模块;方向自适应调整子模块从地图管理子模块接收MAP及wc,从状态控制子模块接收Cstate,从割点检测子模块接收aCV和GM,根据割点的相对位置生成螺旋正侧方向信号RLS和逆侧方向信号OLS、第三目标点位姿posen3和控制信号Nstate3,将posen3发送给导航模块,将Nstate3发送给状态控制子模块,将RLS和OLS发送给障碍物探索子模块和双向螺旋填充子模块;双向螺旋填充子模块从地图管理子模块接收MAP及wc,从状态控制子模块接收Cstate,根据当前螺旋方向生成第四目标点位姿posen4,根据检测到的障碍物信息生成障碍物起点信号Spoint和第四状态控制信号Nstate4,将posen4发送给导航模块,将Spoint发送给障碍物探索子模块,将Nstate4发送给状态控制子模块;第二步,地图管理子模块接收客户端发送的边界信号Bound,初始化二维单元矩阵MAP;地图管理子模块接收客户端发送的边界信号Bound,初始化二维单元矩阵MAP;割点检测子模块、障碍物探索子模块、方向自适应调整子模块和双向螺旋填充子模块初始化参数,具体操作如下:2.1地图管理子模块采用网格分解方法,将目标区域划分为多个宽度为r1的正方形单元,这些单元构成二维单元矩阵MAP,MAP={c11,...,c1M;...;cnm;...;cN1,...,cNM},N为矩阵行数,M为矩阵列数,N,M均为正整数,其中cnm代表MAP中第n行第m列个单元;初始化MAP中每个单元的值为1,即令cnm=1,1≤n≤N,1≤m≤M;cnm为1表示该单元未被机器人访问过,cnm为2表示该单元已被机器人访问,cnm为0表示该单元被障碍物占据;2.2割点检测子模块初始化第一控制信号Nstate1=0,表示割点检测子模块处于初始状态,尚未检测到割点,将Nstatel发送给状态控制子模块;2.3障碍物探索子模块初始化第二控制信号Nstate2=0,表示障碍物探索子模块处于初始状态,无需跟随障碍物,将Nstate2发送给状态控制子模块;2.4方向自适应调整子模块初始化螺旋正方向RLS为1,螺旋逆方向OLS为0,RLS=1,OLS=0表示初始情况下沿顺时针方向规划覆盖路径,初始化第三控制信号Nstate3=0,表示方向自适应调整子模块处于初始状态,无需更换螺旋填充方向;将RLS和OLS发送给障碍物探索子模块和双向螺旋填充子模块,将Nstate3发送给状态控制子模块;2.5双向螺旋填充子模块初始化第四控制信号Nstate4=0,表示双向螺旋子模块处于初始状态,尚未开始螺旋填充覆盖,将Nstate4发送给状态控制子模块;第三步,机器人终端的雷达传感器采集环境信息,包括障碍物与雷达传感器之间的距离和障碍物的形状,将环境信息发送给定位模块;第四步,机器人终端的定位模块根据从雷达传感器接收的环境信息,实时构建环境的栅格地图Gd,并从Gd中获取机器人当前位姿posec,将栅格地图Gd和当前位姿posec发送给地图管理子模块;栅格地图Gd用不同的值Value来表示被障碍物占据的网格和没被障碍物占据的网格;第五步,地图管理模块子模块从定位模块接收栅格地图Gd和机器人在Gd中的当前位姿posec,从客户端接收Bound,更新二维单元矩阵MAP,并计算出机器人在MAP中的当前位姿wc;方法是:5.1根据客户端发送的Bound、机器人当前位姿posec和栅格地图Gd,计算机器人在MAP中的当前位姿wc:cx,cy,cθ;其中,cθ=θc,cx和cy为机器人当前在MAP中所处单元的x轴和y轴坐标,cθ为机器人在MAP中的朝向;MAP中单个单元为宽度为r1的正方形方格,其中r1为任务传感器的覆盖宽度;5.2令MAP中,以cx,cy为中心,宽度为wd的矩形为RE,其中wd表示雷达传感器在MAP中的感知范围,且满足更新RE内单元的值,具体方法如下:5.2.1令矩形范围内单元总行数A=wd,令单元总列数B=wd;5.2.2初始化行序号a为1,列序号b为1;5.2.3令cab为RE1内第a行第b列的单元,更新MAP中与cab对应的单元的值;方法如下:5.2.3.1计算cab在MAP地图里的行坐标ax,ax=cx+a-A2,列坐标ay=cy+b-B2;二维单元矩阵MAP中的单元cab对应栅格地图Gd中的一个矩形GRE;计算矩形GRE左上角栅格在栅格地图Gd中的序列号index;计算矩形GRE一行包含的栅格列数为Rnum,其中其中resolution为栅格地图Gd的分辨率;5.2.3.2计算矩形GRE中所有栅格的累加值gsum;5.2.3.3计算矩形区域RE中各栅格的平均值ave,令如果ave的值大于一个设定的阈值A,A为正整数,则表示该单元大概率被障碍物占据,令cab=0,转5.2.4;否则,cab保持原值,直接转5.2.4;5.2.4如果a=A且b=B,说明MAP更新完毕,将MAP和wc发送给割点检测子模块,转第六步;如果a=A但b≠B,令a=1,b=b+1,转5.2.3;如果a≠A,且b≤B,令a=a+1,转5.2.3;第六步,割点检测子模块从地图管理子模块接收MAP和wc,在wc处进行割点检测,生成割点子集aCV、全局水漫填充矩阵GM以及第一状态控制信号Nstate1,将aCV和GM发送给方向自适应调整子模块,将Nstatel发送给状态控制子模块;方法如下:6.1初始化割点检测子集aCV为空,初始化局部填充矩阵FM和全局水漫填充矩阵GM为空;6.2采用螺旋填充方法计算MAP中机器人当前所处位姿wc的正前方的单元DF、正后方的单元DB、RLS侧的单元DR和OLS侧的单元DO,具体方法如下:6.2.1计算DF的行坐标cxF和列坐标cyF:cxF=cx-sincθcyF=cy+coscθ6.2.2计算DR的行坐标cxB和列坐标cyB:cxB=cx+sincθcyB=cy-coscθ6.2.3如果RLS为1,按以下公式计算DR的行坐标cxR和列坐标cyR: 否则,按以下公式计算DR的行坐标CxR和列坐标cyR: 6.2.4如果OLS为1,按以下公式计算DO的行坐标cxO和列坐标cyO: 否则,按以下公式计算DO的行坐标cxO和列坐标cyO: 6.3令单元集合D1={DF,DB,DR,DO},对D1中的每个未被机器人访问的单元,采用局部水漫填充与全局水漫填充结合的方法,检测这些单元是否为割点,方法如下:6.3.1令E为集合D1中元素的个数,E=4,初始化序列号e=1;6.3.2令τ等于集合D1中的第e个元素,如果τ已被机器人访问,转6.3.4;如果τ未被机器人访问,采用局部水漫填充方法判断τ是否为割点,若τ有可能为割点,转6.3.3在MAP内验证τ是否为割点;否则,说明τ不是割点,转6.4;6.3.3令全局水漫填充矩阵GM=MAP,采用全局水漫填充方法在GM内验证τ是否为割点,若τ为割点,令aCV=aCV∪{τ},转6.3.4;若τ不是割点,6.3.4;6.3.4如果e=E,说明已经检测完集合D1中所有元素是否为割点,转6.4;否则令e=e+1,转6.3.2;6.4如果aCV不为空,说明在wc邻域内发现了割点,令Nstate1为1,转6.5;否则,说明在wc邻域内没发现割点,令Nstate1为0,转6.5;6.5将Nstate1发送给状态控制子模块;第七步,状态控制子模块接收割点检测子模块发送的Nstate1,接收障碍物探索子模块发送的Nstate2,接收方向自适应调整子模块发送的Nstate3,双向螺旋填充子模块发送的Nstate4,根据Nstate1,Nstate2,Nstate3,Nstate4的值进行控制:7.1如果Nstatel为1,令Cstate等于1,转第八步;如果Nstate1为0,转7.2;7.2判断Nstate4是否为1,如果Nstate4为1,令Cstate等于2,转第十步;如果Nstate4为0,转7.3;7.3判断Nstate3是否为1,如果Nstate3为1,令Cstate等于3,转第十二步;如果Nstate3为0,令Cstate等于4,转第九步;第八步,方向自适应调整子模块从地图管理子模块接收MAP和wc,从状态控制子模块接收Cstate,从割点检测子模块接收aCV和GM,计算机器人下一时刻的第三访问位姿posen3、第三状态控制信号Nstate3和螺旋正方向信号RLS和螺旋逆方向信号OLS,并将posen3发送到机器人终端的导航模块,将Nstate3发送到状态控制子模块,将RLS和OLS发送给障碍物探索子模块和双向螺旋填充子模块;方法是:8.1初始化机器人在二维单元矩阵MAP中的第三下一时刻位姿wn3为空,令Nstate3为0;8.2采用螺旋填充方法计算二维单元矩阵MAP中机器人当前所处单元wc的正前方的单元DF、正后方的单元DB、RLS侧的单元DR和OLS侧的单元DO;8.3令第三单元集合D3={DF、DB、DR、DO};如果D3中的四个单元都被障碍物占据或都已经被访问,转8.4;否则,说明D3中存在没被障碍物占据,且尚未被访问的单元,转8.5;8.4判断割点集合CV是否为空;如果CV为空,令Nstate3为1,转8.6;否则,令wn3为CV中距离机器人当前欧式距离最近的割点单元,并令CV=CV-wn3,转8.6;8.5此时D3中存在不是障碍物且未被机器人访问的子单元,计算机器人下一时刻的访问单元wn3并更新RLS和OLS;8.6令CV=CV∪aCV;将wn3转换为在栅格地图Gd中的第三位姿posen3posen3为三元组xn3,yn3,θn3,posen3计算方法如下:xn3=wn31×r1,yn3=wn32×r1,θn3=wn33,其中wn31代表wn3的行坐标,wn32代表wn3的列坐标,wn33代表机器人在wn3的朝向;8.7将posen3发送到机器人终端的导航模块,将Nstate3发送到状态控制子模块,将RLS和OLS发送给障碍物探索子模块和双向螺旋填充子模块;第九步,双向螺旋填充子模块从地图管理子模块接收MAP和wc,从状态控制子模块接收Cstate,从自适应方向调整子模块接收RLS和OLS,计算机器人下一时刻的访问位姿posen4、第四状态控制信号Nstate4和障碍起始单元Spoint,将posen4发送到机器人终端的导航模块,将Nstate4发送到状态控制子模块,将Spoint发送到障碍物探索子模块;方法是:9.1初始化机器人在二维单元矩阵MAP中的第四下一时刻位姿wn4为空,令障碍物起始单元Spoint为空,令Nstate4为0;9.2采用螺旋填充方法,计算机器人在二维单元矩阵MAP中当前所处单元wc正前方的单元DF、正后方的单元DB、RLS侧的单元DR和OLS侧的单元DO;9.3如果DF、DB、DR和DO中至少存在一个单元被障碍物占据,令Nstate4为1,并令Spoint的坐标为机器人当前所处单元为的行列坐标cx,cy,其中cx和cx是wc的行列坐标,令wn4=wc,转第9.5;如果DF、DB、DR和DO中没有一个单元被障碍物占据,转9.4;9.4判断DR是否已被机器人访问,如果DR未被机器人访问过,令机器人在二维单元矩阵MAP下一时刻的位姿wn4={cxR,cyR,cθR},其中cxR是DR的行坐标,cyR是DR的列坐标,cθR是朝向,满足转9.6;如果DR被机器人访问过,转9.5;9.5判断DF是否已被机器人访问,如果DF未被机器人访问过,令机器人下一时刻位姿wn4={cxF,cyF,cθF},其中cxF是DF的行坐标,cyF是DF的列坐标,cθF是朝向,满足转9.6;如果DF被机器人访问过,令wn4={cxO,cyO,cθO},其中cxO是DO的行坐标,cyO是DO的列坐标,cθO是朝向,满足转9.6;9.6将wn4转换为在栅格地图Gd中的位姿posen4,posen4为三元组xn4,yn4,θn4,posen4的计算方法是:xn4=wn41×r1,yn4=wn42×r1,θn4=wn43,其中wn41代表wn4的行坐标,wn42代表wn4的列坐标,wn43代表机器人在wn4的朝向;9.7将posen4发送到机器人终端的导航模块,将Nstate4发送到状态控制子模块,将障碍物起始单元Spoint发送到障碍物探索子模块;第十步,障碍物探索子模块从地图管理模块接收MAP和wc,从状态控制子模块接收Cstate,从自适应方向调整子模块接收RLS和OLS,从双向螺旋填充子模块接收Spoint,计算机器人下一时刻的第二访问位姿posen2和第二状态控制信号Nstate2,将posen2发送到机器人终端的导航模块,将Nstate2发送到状态控制子模块;方法是:10.1初始化机器人在二维单元矩阵MAP中的第二下一时刻位姿wn2为空,令Nstate2为0;10.2采用螺旋填充方法计算二维单元矩阵MAP中机器人当前所处单元wc的正前方的单元DF、正后方的单元DB、RLS侧的单元DR和OLS侧的单元DO;10.3判断DR、DF或者DO是否和障碍物起始单元Spoint的行列坐标是否一致;如果DR、DF或者DO中存在一个单元,该单元的行列坐标与Spoint的行列坐标完全一致,说明机器人已经环绕障碍物一周,令Nstate2为1,转10.4;否则,说明尚未环绕障碍物一周,转10.4;10.4计算机器人在二维单元矩阵MAP中的第二下一时刻位姿wn2,方法是:判断DR是否为障碍物或已被机器人访问;如果DR不是障碍物且未被机器人访问,令wn2={cxR,cyR,cθR},其中cxR和cyR是DR的行坐标和列坐标,cθR是朝向,满足转10.5;如果DR是障碍物,或者DR已被机器人访问过,则判断DF是否为障碍物或已被机器人访问;如果DF不是障碍物且未被机器人访问,令wn2={cxF,cyF,cθF},其中cxF是DF的行坐标,cyF是DF的列坐标,cθF是朝向,满足转10.5;如果DF是障碍物,或者DF已被机器人访问过,令wn2={cxO,cyO,cθO},其中cxO和cyO是DO的行坐标和列坐标,cθO是朝向,满足转10.5;10.5将wn2转换为在栅格地图Gd中的第二位姿posen2,posen2为三元组xn2,yn2,θn2,posen2的计算方法是:xn2=wn21×r1,yn2=wn22×r1,θn2=wn23,其中wn21代表wn2的行坐标,wn22代表wn2的列坐标,wn23代表机器人在wn2的朝向;10.6将posen2发送到机器人终端的导航模块,将Nstate2发送到状态控制子模块;第十一步,机器人终端的导航模块接收双向螺旋填充子模块发送的第四位姿posen4,接收方向自适应调整子模块发送的第三位姿posen3,接收障碍物检测子模块发送的第二位姿posen2,令第四位姿posen4、第三位姿posen3、第二位姿posen2三者中最新的位姿为posen,导航模块设定posen作为目标点,引导机器人运动到目标点;机器人到达目标点后,在目标点执行覆盖任务,任务执行完毕,转第三步继续执行后续的覆盖任务;第十二步,自适应螺旋覆盖路径规划模块已经生成一条覆盖整个目标区域的运动轨迹,实现了对目标区域的完全覆盖,覆盖结束。

全文数据:

权利要求:

百度查询: 湖南第一师范学院 未知环境下自适应方向调整的在线螺旋覆盖路径规划方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。