CN113091749A - 仿人机器人在复杂未知迷宫环境的行走导航和重定位方法 - Google Patents
仿人机器人在复杂未知迷宫环境的行走导航和重定位方法 Download PDFInfo
- Publication number
- CN113091749A CN113091749A CN202110390588.6A CN202110390588A CN113091749A CN 113091749 A CN113091749 A CN 113091749A CN 202110390588 A CN202110390588 A CN 202110390588A CN 113091749 A CN113091749 A CN 113091749A
- Authority
- CN
- China
- Prior art keywords
- humanoid robot
- real
- boundary line
- floor tile
- time
- 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
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
- G01C21/206—Instruments for performing navigational calculations specially adapted for indoor navigation
Abstract
本发明给出了一种仿人机器人在复杂未知迷宫环境的行走导航和重定位方法,行走导航包含训练准备阶段、实际运行阶段。在训练准备阶段,将仿人机器人调节至默认观测姿态,采集图像并对所有像素所对应的空间实际位置进行估计。在实际运行阶段,仿人机器人实时采集图像,识别得到迷宫地面边界线,估算自身的位置信息,得到当前位置的周围边界信息;执行寻径导航算法获得下一个节点目标位置,向该节点目标位置行进;检测仿人机器人是否发生跌倒和碰撞,若发生,则执行重定位算法以校正仿人机器人的位置与朝向。本发明中的方法仅依赖视觉系统,技术可移植性和推广性高,重定位方法提升了行走导航的容错能力,提高了迷宫导航任务的成功率和执行效率。
Description
技术领域
本发明涉及智能机器人技术领域,给出了一种仿人机器人在复杂未知迷宫环境中的行走导航和重定位方法。
背景技术
随着近年来仿生机器人领域技术和人工智能领域技术的飞速发展,机器人不仅已经开始成批量地为人类社会提供诸如迎宾、导引、快递运送等服务,而且正在挑战更多原本只能由人类完成的复杂任务。
复杂的、且对移动机器人而言未知的迷宫环境,是对人类社会中规模庞大且高度结构化的室内建筑构造的抽象化浓缩。令移动机器人,尤其是像人一样的仿人机器人在这种复杂未知迷宫环境中进行完全自主地探索并寻找目标,对于移动机器人实现更加智能化的室内应用,具有重要的技术指导意义。
仅在地图已知的迷宫中寻找路径的迷宫解谜问题已被广泛研究,并伴随着车载导航技术和无人驾驶技术的发展而不断取得进步。迷宫解谜的解决思路主要分为两大类:1)经典的地图搜索算法,即识别场景信息并基于预设的规则生成路径;2)模仿人类思考的启发式算法,例如通过采用深度学习在指定场景下进行训练来动态获得搜索策略。第一类方法通常以对迷宫地图的规则化描述为前提,例如最典型的栅格地图是将迷宫内的道路设定为由同等大小的单元格拼接而成,且机器人需要准确获取自身位置和周围场景的信息。第二类方法相对灵活,其不直接对迷宫的地图场景提出明确要求,但是需要在类似的场景中进行预先学习和训练。
相比较于轮式移动机器人,使用腿进行行走的仿人机器人,其行走过程中难以避免地存在诸如身体摇晃、脚底打滑、摇摆前进等情形,如果仿人机器人在前进过程中与墙体发生碰撞导致跌倒,其重新站起后还可能会因为位置和朝向的变化,而使得机器人突然失去其自身在迷宫中的全局位置与朝向,并导致基于预先规划路径的迷宫寻径导航无法继续。因此,对于仿人机器人在复杂未知迷宫环境中的行走,不仅需要解决即时导航问题,还需要针对机器人跌倒等情形进行相应的重定位及校正处理。
发明内容
本发明面向仿人机器人在复杂未知迷宫环境中的解谜寻径技术需求,针对由栅格地板和墙体组成的迷宫,提出一种新的行走导航和重定位方法,该方法不仅可识别迷宫中的当前局部场景,持续地生成节点目标位置来引导机器人行进,还可以通过试探性地回溯来恢复因身体跌倒而失去的全局位置和朝向信息,从而提高行走导航的成功率和效率。
为实现上述目的,本发明采用的技术方案为:
行走导航包含训练准备阶段、实际运行阶段;所述训练准备阶段包括:
S1,将仿人机器人调节至默认观测姿态,采集图像,获得图像ImgTrain,对图像ImgTrain中所有像素所对应的空间实际位置进行估计并获得估计值,该估计值具体为仿人机器人和该空间实际位置间的距离;
所述实际运行阶段包括:
S2,建立空的迷宫地图,仅设定起点、终点和机器人初始朝向,按照起点位置和机器人初始朝向,将仿人机器人放置于真实的迷宫中;
S3,仿人机器人采集图像,获得图像ImgRun,进行图像处理与图像特征提取,识别得到图像ImgRun中的迷宫地面边界线,估算仿人机器人的位置信息,得到仿人机器人当前位置的周围边界信息,并得到前方位置处的一部分的周围边界信息,将识别得到的位置信息、仿人机器人当前位置的周围边界信息和前方位置处的一部分的边界信息存储至迷宫地图;
S4,仿人机器人执行寻径导航算法获得下一个节点目标位置,向该节点目标位置行进;
S5,检测仿人机器人是否发生跌倒和碰撞,若发生,则执行重定位方法以校正仿人机器人的位置与朝向,然后继续向节点目标位置行进;
S6,若成功行进至节点目标位置,则返回S3重复执行,直至到达终点或运行终止,终点的形式包括迷宫出口、预先设定的迷宫中的其它可达位置;
仿人机器人,包含有安装于其身体上的视觉系统,用于采集图像;仿人机器人,具有在平地上进行行走移动的能力;仿人机器人,在跌倒后自行恢复至稳定站立状态。
迷宫,包括墙体、通路、起点、终点;通路位于地面,墙体垂直于地面;单条通路的转角均为直角,相交的通路之间的夹角均为直角;所有墙体表面颜色为相同的纯色,通路所在区域被划分为相同大小的地砖单元格,地砖单元格为矩形,且其尺寸足以容纳仿人机器人,地砖单元格的颜色为与墙体颜色不同的纯色,相邻的地砖单元格的颜色不同;相邻的地砖单元格之间、地砖单元格与墙体之间具有可见的边界线,这些边界线构成迷宫地面边界线;
地砖单元格包含四条实时边界线,分别定义为实时前边界线、实时后边界线、实时左边界线、实时右边界线;其中,若将仿人机器人的位置平移至该地砖单元格的中心处,保持仿人机器人当前的朝向不变,则仿人机器人的身体当前正向面对的边界线为实时前边界线,背对的边界线为实时后边界线,左右两边的边界线分别为实时左边界线和实时右边界线,即四条实时边界线的具体指代由仿人机器人的朝向实时决定;实时前边界线、实时后边界线,共同属于实时水平边界线;实时左边界线、实时右边界线,共同属于实时竖直边界线;实时边界线的类型信息包含墙体类型、通路类型、未知类型;
定义迷宫的全局方向16,用于在迷宫地图中存储信息,即迷宫地图中存储的基础数据信息仅基于全局方向16,而与仿人机器人的朝向无关;迷宫的全局方向16包含四个方向,对应于地砖单元格的四条边界线的实际朝向;S2中机器人初始朝向,为依据迷宫的全局方向16进行描述和记录。
S1包含如下子步骤:
S1-1:将仿人机器人放置于地面,调节仿人机器人和视觉系统的姿态,使得视觉系统面向仿人机器人身体的正前方,且使得当仿人机器人位于某一地砖单元格的中心处位置时,与该地砖单元格实时前边界线相邻的下一地砖单元格的实时后边界线、实时左边界线、实时右边界线均位于视觉系统的观测范围内,记录此时视觉系统与地面间的距离为h;随后保持仿人机器人的身体姿态固定不变,保持视觉系统的横滚角、俯仰角及偏航角固定不变,将此时仿人机器人和视觉系统的姿态记录为默认观测姿态。
S1-2:保持仿人机器人的位置不变,将图案纸放置于其正前方地面上,图案纸上按照地砖单元格的实际尺寸,首先绘制网格阵列,继而在该网格阵列中绘制子网格以将网格进行细分,得到细分网格阵列图案;图案纸的放置地点为预先设定,以使得图案纸上的细分网格阵列图案位于视觉系统可见范围内且将可见范围填充满;视觉系统采集图像,获取细分网格阵列图案中所有的可见顶点在图像中的像素坐标CVImgPos,将这些顶点记为顶点CellVertex。
S1-3:根据仿人机器人与图案纸间的实际相对距离,计算得到所有CellVertex与仿人机器人间的相对距离值CVDist,该相对距离值包括水平距离值CVDistX和竖直距离值CVDistY。
S1-4:遍历图像ImgTrain中的每一个像素点,估算任一个像素点Pixel在真实空间中对应的实际位置PixelWorldPos与仿人机器人间的相对距离值PWPDist,该相对距离值包括水平距离值PWPDistX和竖直距离值PWPDistY;估算相对距离值PWPDist的具体方法为:首先在图像ImgTrain中获得包围像素点Pixel的4个顶点CellVertex,将其中位于该像素点最左侧的2个顶点各自的水平距离值CVDistX中的较大值记录为CVDistXmin,将其中位于该像素点最右侧的2个顶点各自的水平距离值CVDistX中的较小值记录为CVDistXmax,将其中位于该像素点最下侧的2个顶点各自的竖直距离值CVDistY中的较大值记录为CVDistYmin,将其中位于该像素点最上侧的2个顶点各自的竖直距离值CVDistY中的较小值记录为CVDistYmax,则有水平距离值PWPDistX∈水平距离区间[CVDistXmin,CVDistXmax],竖直距离值PWPDistY∈竖直距离区间[CVDistYmin,CVDistYmax],记录像素点Pixel的水平距离区间和竖直距离区间。
S3中识别得到图像ImgRun中的迷宫地面边界线的具体方法为,通过识别图像ImgRun中的地砖单元格的实时边界线,计算实时边界线相对于图像下边缘的倾角Theta,并将该倾角Theta的取值范围设定在-90度到90度之间,若倾角Theta的绝对值小于阈值ThetaThreshold,则将该实时边界线标记为实时水平边界线,且将倾角Theta的值记为仿人机器人相对实时前边界线的偏转角度,否则标记为实时竖直边界线;计算实时水平边界线与仿人机器人间的前后方向距离DistY,若DistY的值大于阈值DistYMiddle,则该实时水平边界线为仿人机器人当前所处的地砖单元格的前方紧邻的地砖单元格FrontCell的实时前边界线,否则为地砖单元格FrontCell的实时后边界线;计算实时竖直边界线与仿人机器人间的左右方向距离;进而得到仿人机器人在当前地砖单元格中的更精确位置。
S3中得到当前位置的周围边界信息的具体方法为:
若仿人机器人当前所处的地砖单元格的周围边界信息未知,则首先执行地砖单元格前方边界判断规则,获得前方边界信息并记录,而后令仿人机器人原地旋转90度角后再次执行地砖单元格前方边界判断规则并记录,依此连续重复旋转后,完成对当前所处的地砖单元格的四周边界信息的记录:其中,地砖单元格前方边界判断规则具体为:计算图像ImgRun的中心位置像素的颜色与墙体的颜色间的颜色差值,若颜色差值小于阈值ColorThreshold,则将实时前边界线的类型信息设定为墙体,否则设定为通路;
仿人机器人当前所处的地砖单元格的前方紧邻的地砖单元格FrontCell的周围边界信息的获取方法为:将在图像ImgRun中当前识别得到的实时后边界线平行地向前方平移dn个像素,再继续平行地向前方平移dm个像素,依次获得两条与实时后边界线相平行的线段,计算该两条线段所构成的区域SampleRegion的所有像素的颜色平均值,进而计算该颜色平均值与墙体的颜色间的颜色差值,若颜色差值小于阈值ColorThreshold,则将地砖单元格FrontCell的实时后边界线的类型信息设定为墙体,否则设定为通路;与此相似,将在图像ImgRun中当前识别得到的实时左边界线平行地向左侧平移dn个像素,再继续平行地向左侧平移dm个像素,将在图像ImgRun中当前识别得到的实时右边界线平行地向右侧平移dn个像素,再继续平行地向右侧平移dm个像素,分别判定得到地砖单元格FrontCell的实时左边界线、实时右边界线的类型信息;
dn的值为预先设定,以使得区域SampleRegion不包含边界线,以避免增加颜色差值的计算偏差;dm的值为预先设定,以使得区域SampleRegion包含足够数量的像素,以增加对颜色差值进行统计计算的精度;
颜色差值由两种颜色各自的RGB值分量的曼哈顿距离计算得到。
S4中的寻径导航算法,具体为:
根据迷宫的全局方向,描述并记录仿人机器人的当前朝向;
调整仿人机器人和视觉系统的姿态至默认观测姿态,再调整仿人机器人的位置至有效观测位置,使得对于仿人机器人当前所处的地砖单元格的前方紧邻的地砖单元格FrontCell,其实时后边界线、实时左边界线、实时右边界线均位于视觉系统的观测范围内;
获取仿人机器人当前位置的周围边界信息,在迷宫地图中确认当前所在的地砖单元格的位置,在与当前地砖单元格相邻的地砖单元格中选择得到下一个节点目标位置,选择的依据为在所有直接可达的相邻的地砖单元格中,与终点的曼哈顿距离最短的一个;计算仿人机器人行走到节点目标位置后的目标朝向;节点目标位置位于某一地砖单元格的中心处;
仿人机器人由当前朝向转向目标朝向,使得仿人机器人面向节点目标位置;
计算节点目标位置对应的地砖单元格的实时后边界线与仿人机器人间的前后方向距离DistYTarget,令仿人机器人向前行走一定距离以接近节点目标位置,行走的距离值为DistYTarget+CellLength/2,其中CellLength为地砖单元格沿前进方向的边长。
调整仿人机器人的位置至有效观测位置的具体过程为:
检测图像ImgRun中是否包含实时水平边界线,若未检测到,令仿人机器人向后退距离DistYBack;若检测到,但该实时水平边界线与仿人机器人间的前后方向距离DistYTarget超过阈值DistYMax,则认为仿人机器人的位置过于靠前,将当前检测到的实时水平边界线视为前方紧邻的地砖单元格FrontCell的实时前边界线,令仿人机器人向后退距离DistYBack;若仿人机器人执行了向后退操作,则在该操作完成后重新获取图像ImgRun并重新执行上述检测,以使得图像ImgRun中有且只有前方紧邻的地砖单元格FrontCell的实时后边界线;若检测到实时水平边界线,则计算该边界线的倾角Theta,若Theta的绝对值大于阈值ThetaHoriMax,令仿人机器人原地沿逆时针转弯,转角大小为Theta;
检测图像ImgRun中是否包含实时左边界线,若未检测到,令仿人机器人向左平移一步,在该操作完成后重新获取图像ImgRun并重新执行本项检测;
检测图像ImgRun中是否包含实时右边界线,若未检测到,令仿人机器人向右平移一步,在该操作完成后重新获取图像ImgRun并重新执行本项检测。
S5中重定位方法,其具体过程为:
获取仿人机器人当前所处的地砖单元格的周围边界信息,并记录,将当前所处的地砖单元格标记为MissCell;
定义一组空的数据列表,记为假设列表,该列表中的每个元素为一组仿人机器人的位置数据和朝向数据,即每个元素代表一种仿人机器人的位置和朝向的可能性;
将碰撞和跌倒发生时,仿人机器人所处的地砖单元格,以及与该地砖单元格相邻且相贯通的地砖单元格的位置数据,作为假设列表中的位置数据集合;将迷宫的全局方向中的四个方向,作为假设列表中的朝向数据集合;将位置数据集合和朝向数据集合进行组合,将组合后得到的所有数据记入假设列表,使得假设列表中包含用于估计仿人机器人当前位置和朝向的所有可能;
从假设列表中的任一元素开始,根据记录的已经过路径进行逐格回溯,即依次返回该路径中的上一个地砖单元格,回溯格数的上限值为N,初值为零,在回溯过程中,对经过的每一个地砖单元格的周围边界信息进行检测,并将其与记录在迷宫地图中的相应信息进行单元格场景比对,若信息不一致则删除该元素,即否定该元素所对应的假设,令仿人机器人反向回溯以重新返回至地砖单元格MissCell,回溯的格数重置为零,并在假设列表中选择另一元素重新开始上述过程;若对于某元素的回溯格数达到上限N,则同样令仿人机器人反向回溯以重新返回至地砖单元格MissCell,并重新开始下一次路径回溯,但不删除该元素,且在之后的路径回溯中不再选择该元素;
若对假设列表中的所有元素都按照上述步骤完成路径回溯检测后,假设列表中剩余的元素数量大于1,则将回溯格数的上限值N自加1,并重新对假设列表进行路径回溯检测,直至假设列表中仅剩下1个元素,该元素所对应的位置数据和朝向数据即代表仿人机器人发生碰撞和跌倒并重新站起之后的真实位置与真实朝向,即仿人机器人成功获取到自身在碰撞和跌倒之后在迷宫地图中的位置和朝向信息,进而根据该信息,仿人机器人先返回地砖单元格MissCell所在位置,再移动恢复至发生碰撞和跌倒前的位置与朝向,从而实现重定位。
单元格场景比对,用于在假定的全局方向上,将指定的地砖单元格的边界类型信息,与已存储在迷宫地图中的基础数据信息进行比对,即对指定的地砖单元格的四条边界线的类型信息进行逐一比对,若信息全部相同,则为一致,否则为不一致;用于单元格场景比对的边界线的类型信息,仅包含墙体类型、通路类型,不包含未知类型;
假定的全局方向,由假设列表中的当前元素所包含的仿人机器人的朝向数据,根据回溯过程中走过的路径推导而来。
迷宫,其复杂度由如下两个参数描述:
地砖单元格的数量CountCell,
全部的地砖单元格的全部的边界线中,类型信息为墙体类型的边界线的总数量CountWall与地砖单元格的数量CountCell间的比值RatioWall;
上述两个参数的数值越大,迷宫的复杂度越高;
复杂未知迷宫环境,指地砖单元格的数量CountCell的最大值不低于100,比值RatioWall的最大值不低于75%。
与现有技术相比,本发明具备以下显著特点:
(1)本发明中的行走导航方法针对地图未知的迷宫,迷宫、起点、终点均可在符合设计规格的前提下任意调整,且仅应用机器人具备的视觉系统作为感知场景的方式,而不需要借助加速度计、陀螺仪、测距传感器等装置,技术可移植性和推广性高。
(2)本发明中的迷宫场景的地面由两种不同颜色的同规格、单色地砖单元格组成,易于搭建,并适于作为标准化的测试场景或竞技场景。
(3)本发明中的行走导航方法不需要完整地探索地图和维护全部地图数据,对数据存储要求不高。
(4)针对仿人机器人跌倒后重新站起以及被碰撞等情形所导致的失去在全局地图中的位置或方向的问题,设计了重定位的方法,提升了行走导航的容错能力,提高了行走导航任务的成功率和执行效率。
附图说明
图1为本发明所述的行走导航方法的总体流程图。
图2为本发明所述的迷宫的组成和结构示意图。
图3为本发明所述的行走导航S1的方法示意图,其中图3(a)为仿人机器人获取图像ImgTrain的方法示意图,图3(b)为图像ImgTrain的示意图。
图4为本发明所述的行走导航S3中仿人机器人获得当前位置及前方位置处的周围边界信息的过程说明示意图,其中图4(a)为获得当前所处的地砖单元格的前方边界信息的示意图,图4(b)为获得当前所处的地砖单元格的四周边界信息的过程中图像ImgRun的对应情形,图4(c)为获得当前所处的地砖单元格的四周边界信息的过程说明示意图。
图5为本发明所述的行走导航S4中提供的寻径导航算法的实例图。
图6为本发明所述的仿人机器人跌倒后重新站起情形失去全局方位的场景示意图。
图7为本发明所述的重定位方法中的单元格场景比对的示例示意图。
图8为本发明所述的行走导航与重定位方法的应用实例流程图,其中图8(a)为行走导航与重定位及校正流程图,图8(b)为优化的重定位及校正流程图。
具体实施方式
以下结合实施例和附图对本发明提出的一种仿人机器人的迷宫特征识别、寻径及对寻径中错误进行校正的方法作进一步详细的说明,但以下实施例仅是说明性的,本发明的保护范围并不受这些实例的限制。
实施例1
如图1所示,行走导航的步骤包括:
S1,将仿人机器人调节至默认观测姿态,采集图像,获得图像ImgTrain,对图像ImgTrain中所有像素所对应的空间实际位置进行估计并获得估计值,该估计值具体为仿人机器人和该空间实际位置间的距离。
S2,建立空的迷宫地图,仅设定起点、终点、机器人初始朝向,按照起点位置和机器人初始朝向,将仿人机器人放置于真实的迷宫中。
S3,仿人机器人采集图像,获得图像ImgRun,进行图像处理与图像特征提取,识别得到图像ImgRun中的迷宫地面边界线,估算仿人机器人的位置信息,得到仿人机器人当前位置的周围边界信息,并得到前方位置处的一部分的周围边界信息,将识别得到的位置信息和边界信息存储至迷宫地图。
S4,仿人机器人执行寻径导航算法获得下一个节点目标位置,向该节点目标位置行进。
S5,检测仿人机器人是否发生跌倒和碰撞,若发生,则执行重定位方法以校正仿人机器人的位置与朝向,然后继续向节点目标位置行进。
S6,若成功行进至节点目标位置,则返回步骤S3重复执行,直至到达终点或运行终止,终点的形式包括迷宫出口、预先设定的迷宫中的其它可达位置。
S1为训练准备阶段,S2-S6为实际运行阶段。
如图2所示,迷宫包括墙体10、通路11、起点12、终点13;通路11位于地面,墙体10垂直于地面;单条通路11的转角均为直角,相交的通路11之间的夹角均为直角;所有墙体10表面颜色为相同的纯色,通路11所在区域被划分为相同大小的地砖单元格14,地砖单元格14为矩形,且其尺寸足以容纳仿人机器人,地砖单元格14的颜色为与墙体10颜色不同的纯色,相邻的地砖单元格14的颜色不同;相邻的地砖单元格14之间、地砖单元格14与墙体10之间具有可见的边界线15,这些边界线构成迷宫地面边界线;
地砖单元格14包含四条实时边界线,分别定义为实时前边界线15F、实时后边界线15B、实时左边界线15L、实时右边界线15R;其中,若将仿人机器人的位置平移至该地砖单元格14的中心处,保持仿人机器人当前的朝向不变,则仿人机器人的身体当前正向面对的边界线为实时前边界线15F,背对的边界线为实时后边界线15B,左右两边的边界线分别为实时左边界线15L和实时右边界线15R,即四条实时边界线的具体指代由仿人机器人的朝向实时决定;实时前边界线15F、实时后边界线15B,共同属于实时水平边界线;实时左边界线15L、实时右边界线15R,共同属于实时竖直边界线;实时边界线的类型信息包含墙体类型、通路类型、未知类型;
定义迷宫的全局方向16,用于在迷宫地图中存储信息,即迷宫地图中存储的基础数据信息仅基于全局方向16,而与仿人机器人的朝向无关;迷宫的全局方向16包含四个方向,对应于地砖单元格14的四条边界线的实际朝向;S2中机器人初始朝向,为依据迷宫的全局方向16进行描述和记录。
如图3(a)所示,仿人机器人包含有安装于其身体上的视觉系统,用于采集图像;仿人机器人具有在平地上进行行走移动的能力,并在跌倒后自行恢复至稳定站立状态。
如图3(a)和图3(b)所示,S1包含如下子步骤:
S1-1:将仿人机器人放置于地面,调节仿人机器人和视觉系统的姿态,使得视觉系统面向仿人机器人身体的正前方,且使得当仿人机器人位于某一地砖单元格14-1的中心处位置时,与该地砖单元格14-1实时前边界线15F-1相邻的地砖单元格14-2的实时后边界线15B-2、实时左边界线15L-2、实时右边界线15R-2均位于视觉系统的观测范围内,该观测范围即图3(a)所示的粗虚线框包围的区域,记录此时视觉系统与地面间的距离为h;在图3(a)中,地砖单元格14-1和地砖单元格14-2均由粗实线包围而成;随后保持仿人机器人的身体姿态固定不变,保持视觉系统的横滚角、俯仰角及偏航角固定不变,将此时仿人机器人和视觉系统的姿态记录为默认观测姿态。对于图3(a)所示的仿人机器人,其视觉传感器固定于机器人头部,因此只要机器人的头部姿态保持不变,即可保持视觉系统的横滚角、俯仰角及偏航角固定不变;而对于具有额外运动自由度的视觉系统而言,则需要记录此时额外运动自由度的信息并保持不变。
S1-2:保持仿人机器人的位置不变,将图案纸17放置于其正前方地面上,图案纸17上按照地砖单元格的实际尺寸,首先绘制网格阵列,如图3(a)中的粗实线所示,继而在该网格阵列中绘制子网格以将网格进行细分,得到细分网格阵列图案,如图3(a)中的细实线所示;图案纸的放置地点为预先设定,以使得图案纸上的细分网格阵列图案位于视觉系统可见范围内且将可见范围填充满;视觉系统采集图像,获取细分网格阵列图案中所有的可见顶点在图像中的像素坐标CVImgPos,将这些顶点记为顶点CellVertex。
S1-3:根据仿人机器人与图案纸间的实际相对距离,计算得到所有顶点CellVertex与仿人机器人间的相对距离值CVDist,该相对距离值包括水平距离值CVDistX和竖直距离值CVDistY。
S1-4:遍历图像ImgTrain中的每一个像素点,估算任一个像素点Pixel在真实空间中对应的实际位置PixelWorldPos与仿人机器人间的相对距离值PWPDist,该相对距离值包括水平距离值PWPDistX和竖直距离值PWPDistY;估算相对距离值PWPDist的具体方法为:首先在图像ImgTrain中获得包围像素点Pixel的4个顶点CellVertex,如图3(b)中的CellVertex1、CellVertex2、CellVertex3、CellVertex4,将其中位于该像素点最左侧的2个顶点即CellVertex1和CellVertex4各自的水平距离值CVDistX中的较大值记录为CVDistXmin,将其中位于该像素点最右侧的2个顶点即CellVertex2和CellVertex3各自的水平距离值CVDistX中的较小值记录为CVDistXmax,将其中位于该像素点最下侧的2个顶点即CellVertex3和CellVertex4各自的竖直距离值CVDistY中的较大值记录为CVDistYmin,将其中位于该像素点最上侧的2个顶点即CellVertex1和CellVertex2各自的竖直距离值CVDistY中的较小值记录为CVDistYmax,则有水平距离值PWPDistX∈水平距离区间[CVDistXmin,CVDistXmax],PWPDistY∈竖直距离区间[CVDistYmin,CVDistYmax],记录像素点Pixel的水平距离区间和竖直距离区间。
如图4所示,S3中识别得到图像ImgRun中的迷宫地面边界线的具体方法为,通过识别图像ImgRun中的地砖单元格的实时边界线,计算实时边界线相对于图像下边缘的倾角Theta,并将该倾角Theta的取值范围设定在-90度到90度之间,若倾角Theta的绝对值小于阈值ThetaThreshold,则将该实时边界线标记为实时水平边界线,且将倾角Theta的值记为仿人机器人相对实时前边界线的偏转角度,否则标记为实时竖直边界线;计算实时水平边界线与仿人机器人间的前后方向距离DistY,若DistY的值大于阈值DistYMiddle,则该实时水平边界线为仿人机器人当前所处的地砖单元格的前方紧邻的地砖单元格FrontCell的实时前边界线,否则为地砖单元格FrontCell的实时后边界线;计算实时竖直边界线与仿人机器人间的左右方向距离;进而得到仿人机器人在当前地砖单元格中的更精确位置。
S3中得到当前位置的周围边界信息的具体方法为:
若仿人机器人当前所处的地砖单元格的周围边界信息未知,则首先执行地砖单元格前方边界判断规则,获得前方边界信息并记录,而后令仿人机器人原地旋转90度角后再次执行地砖单元格前方边界判断规则并记录,依此连续重复旋转后,完成对当前所处的地砖单元格的四周边界信息的记录:其中,地砖单元格前方边界判断规则具体为:计算图像ImgRun的中心位置像素的颜色与墙体的颜色间的颜色差值,若颜色差值小于阈值ColorThreshold,则将实时前边界线的类型信息设定为墙体,否则设定为通路。
仿人机器人当前所处的地砖单元格的前方紧邻的地砖单元格FrontCell的周围边界信息的获取方法为:将图像ImgRun中当前识别得到的实时后边界线平行地向前方平移dn个像素,再继续平行地向前方平移dm个像素,依次获得两条与实时后边界线相平行的线段,计算该两条线段所构成的区域SampleRegion的所有像素的颜色平均值,进而计算该颜色平均值与墙体的颜色间的颜色差值,若颜色差值小于阈值ColorThreshold,则将地砖单元格FrontCell的实时后边界线的类型信息设定为墙体,否则设定为通路;与此相似,将图像ImgRun中当前识别得到的实时左边界线平行地向左侧平移dn个像素,再继续平行地向左侧平移dm个像素,将在图像ImgRun中当前识别得到的实时右边界线平行地向右侧平移dn个像素,再继续平行地向右侧平移dm个像素,分别判定得到地砖单元格FrontCell的实时左边界线、实时右边界线的类型信息。
dn的值为预先设定,以使得区域SampleRegion不包含边界线,以避免增加颜色差值的计算偏差;dm的值为预先设定,以使得区域SampleRegion包含足够数量的像素,以增加对颜色差值进行统计计算的精度。
颜色差值由两种颜色各自的RGB值分量的曼哈顿距离计算得到,对于已知RGB分量的颜色Color1=[R1,G1,B1],Color2=[R2,G2,B2],有颜色差值为|R1-R2|+|G1-G2|+|B1-B2|。
如图4(a)所示,仿人机器人1位于地砖单元格14-1的中心位置,地砖单元格14-2位于仿人机器人1的前方并与地砖单元格14-1相邻,仿人机器人1及其视觉系统的姿态处于默认观测姿态,此时仿人机器人1的视觉系统可以观测到地砖单元格14-2的实时后边界线15B-2、实时左边界线15L-2、实时右边界线15R-2;在此状态下,仿人机器人1向前行走一小段距离后再次观测,可以观测到地砖单元格14-2的实时前边界线15F-2,此时地砖单元格14-2四条边界线的信息类型全部被识别并被记录。图4(a)中的右边部分,展示了地砖单元格14-2的实时后边界线15B-2的类型信息为通路类型的情形。图4(b)展示了地砖单元格14-2的实时后边界线15B-2的两种类型信息对应的图像ImgRun的示意,左边部分为墙体类型的情形,右边部分为通路类型的情形。图4(c)展示了仿人机器人1在连续重复旋转,完成对当前所处的地砖单元格14-1的四周边界信息记录的过程,在面对墙体时,图像ImgRun中只包含一条边界线,在面对通路时,图像ImgRun中包含三条边界线,在这两种情况下均只需要采集更为靠近机器人的实时水平边界线,即可实现对地砖单元格14-1的周围边界信息。
如图5所示,S4中的寻径导航算法,具体为:
根据迷宫的全局方向,描述并记录仿人机器人的当前朝向;
调整仿人机器人和视觉系统的姿态至默认观测姿态,再调整仿人机器人的位置至有效观测位置,使得对于仿人机器人当前所处的地砖单元格的前方紧邻的地砖单元格FrontCell,其实时后边界线、实时左边界线、实时右边界线均位于视觉系统的观测范围内;
获取仿人机器人当前位置的周围边界信息,在迷宫地图中确认当前所在的地砖单元格的位置,在与当前地砖单元格相邻的地砖单元格中选择得到下一个节点目标位置,选择的依据为在所有直接可达的相邻的地砖单元格中,与终点的曼哈顿距离最短的一个;计算仿人机器人行走到节点目标位置后的目标朝向;节点目标位置位于某一地砖单元格的中心处;
仿人机器人由当前朝向转向目标朝向,使得仿人机器人面向节点目标位置;
计算节点目标位置对应的地砖单元格的实时后边界线与仿人机器人间的前后方向距离DistYTarget,令仿人机器人向前行走一定距离以接近节点目标位置,行走的距离值为DistYTarget+CellLength/2,其中CellLength为地砖单元格沿前进方向的边长。
调整仿人机器人的位置至有效观测位置的具体过程为:
检测图像ImgRun中是否包含实时水平边界线,若未检测到,令仿人机器人向后退距离DistYBack;若检测到,但该实时水平边界线与仿人机器人间的前后方向距离DistYTarget超过阈值DistYMax,则认为仿人机器人的位置过于靠前,将当前检测到的实时水平边界线视为前方紧邻的地砖单元格FrontCell的实时前边界线,令仿人机器人向后退距离DistYBack;若仿人机器人执行了向后退操作,则在该操作完成后重新获取图像ImgRun并重新执行上述检测,以使得图像ImgRun中有且只有前方紧邻的地砖单元格FrontCell的实时后边界线;若检测到实时水平边界线,则计算该边界线的倾角Theta,若Theta的绝对值大于阈值ThetaHoriMax,令仿人机器人原地沿逆时针转弯,转角大小为Theta;
检测图像ImgRun中是否包含实时左边界线,若未检测到,令仿人机器人向左平移一步,在该操作完成后重新获取图像ImgRun并重新执行本项检测;
检测图像ImgRun中是否包含实时右边界线,若未检测到,令仿人机器人向右平移一步,在该操作完成后重新获取图像ImgRun并重新执行本项检测。
在图5展示的寻径导航过程中,实线代表对应的边界线类型为墙体,虚线代表对应的边界线类型为通路。仿人机器人的起点位于标号为a6的地砖单元格,终点位于标号为f1的地砖单元格,44为行进路线,45为位置标号,46为所在位置与终点间的曼哈顿距离,47为可能的前进方向。首先从起点a6开始,运行深度优先算法,下一位置有两个选择分别为a5、b6,它们的曼哈顿距离相等皆为9,可以随机取一个方向,根据预先设定的方向优先级,仿人机器人进入a5位置,重复同样的过程依次通过a4、a3、a2,进入b2。在b2位置运行深度优先,下一位置有两个选择分别为b3、c2,b3的曼哈顿距离为6,c2的曼哈顿距离为4,根据贪婪策略选择下一位置c2,进入c2。以上通过深度优先与贪婪策略的结合,完成导航,最终到达终点f1,终点处的曼哈顿距离为0。
如图6所示,S5中重定位方法,其具体过程为:
获取仿人机器人当前所处的地砖单元格的周围边界信息,并记录,将当前所处的地砖单元格标记为MissCell;
定义一组空的数据列表,记为假设列表,该列表中的每个元素为一组仿人机器人的位置数据和朝向数据,即每个元素代表一种仿人机器人的位置和朝向的可能性;
将碰撞和跌倒发生时,仿人机器人所处的地砖单元格,以及与该地砖单元格相邻且相贯通的地砖单元格的位置数据,作为假设列表中的位置数据集合;将迷宫的全局方向中的四个方向,作为假设列表中的朝向数据集合;将位置数据集合和朝向数据集合进行组合,将组合后得到的所有数据记入假设列表,使得假设列表中包含用于估计仿人机器人当前位置和朝向的所有可能;
从假设列表中的任一元素开始,根据记录的已经过路径进行逐格回溯,即依次返回该路径中的上一个地砖单元格,回溯格数的上限值为N,初值为零,在回溯过程中,对经过的每一个地砖单元格的周围边界信息进行检测,并将其与记录在迷宫地图中的相应信息进行单元格场景比对,若信息不一致则删除该元素,即否定该元素所对应的假设,令仿人机器人反向回溯以重新返回至地砖单元格MissCell,回溯的格数重置为零,并在假设列表中选择另一元素重新开始上述过程;若对于某元素的回溯格数达到上限N,则同样令仿人机器人反向回溯以重新返回至地砖单元格MissCell,并重新开始下一次路径回溯,但不删除该元素,且在之后的路径回溯中不再选择该元素;
若对假设列表中的所有元素都按照上述步骤完成路径回溯检测后,假设列表中剩余的元素数量大于1,则将回溯格数的上限值N自加1,并重新对假设列表进行路径回溯检测,直至假设列表中仅剩下1个元素,该元素所对应的位置数据和朝向数据即代表仿人机器人发生碰撞和跌倒并重新站起之后的真实位置与真实朝向,即仿人机器人成功获取到自身在碰撞和跌倒之后在迷宫地图中的位置和朝向信息,进而根据该信息,仿人机器人先返回地砖单元格MissCell所在位置,再移动恢复至发生碰撞和跌倒前的位置与朝向,从而实现重定位。
如图6所示,位于地砖单元格f6处的仿人机器人,摔倒前的行进路径为61,其在62位置处发生跌倒,跌倒后仿人机器人位于位置63,重新恢复站立姿态后,仿人机器人通过位置调整到达地砖单元格f4的中心处,此时仿人机器人的位置与朝向为64,当前所在的地砖单元格f4并不被机器人所知,并被机器人标记为MissCell。
如图7所示,单元格场景比对,用于在假定的全局方向上,将指定的地砖单元格的边界类型信息,与已存储在迷宫地图中的基础数据信息进行比对,即对指定的地砖单元格的四条边界线的类型信息进行逐一比对,若信息全部相同,则为一致,否则为不一致;用于单元格场景比对的边界线的类型信息,仅包含墙体类型、通路类型,不包含未知类型;
假定的全局方向,由假设列表中的当前元素所包含的仿人机器人的朝向数据,根据回溯过程中走过的路径推导而来。
如图7所示的单元格场景比对的示例示意图中,列举了仿人机器人在所有可能位置与朝向下采集信息的情形,其中仿人机器人四个朝向标记为D4,四个朝向编码分别为上2,下3,左1,右0。将所有三面墙体的单元格场景情况分别标记为T33、T31、T32、T30,将所有L型两面墙体的单元格场景情况分别标记为T23、T22、T20、T21,将所有直通道型两面墙体的单元格场景情况分别标记为T24、T25,将所有单面墙体的单元格场景情况分别标记为T12、T10、T13、T11。
以下就仿人机器人摔倒后的重定位及校正的过程进行举例说明:
如图6所示,摔倒发生在位置f5,站立后机器人在位置f4,朝向方向3,此时记录下的正确路线为f6→f5,并记录下了路线经过的地砖单元格;
机器人站起后首先读取当前位置的周围边界信息,得到当前所在地砖单元格的边界信息为两墙体通路类型;
列出在摔倒发生位置f5周围所有可能的落点以及站立后所有可能的朝向,得到可能落点f4、f6、e5、f5,可能朝向0、1、2、3,总共16种可能落点与朝向组合;
从第一个假设位置朝向组合开始回溯,假设组合为[f5,0],在该朝向假设下,当前的边界信息记录为[1,1,0,0](边界信息记录顺序为朝向0、朝向1、朝向2、朝向3,记录中的值1代表墙体,0代表通路),为T24,读取路径中该假设位置的边界信息记录,得到边界信息[1,0,0,0],为T10,比对不符合,排除该假设;
从第二个可能位置朝向组合开始回溯,假设组合为[e5,0],先在该假设下尝试回到f5位置,在假设朝向0的情况下前进一步,采集边界信息得到[0,0,1,0],为T12,路线中f5位置的边界信息记录[1,0,0,0],为T10,对比不符合,排除该假设,返回摔倒后起立的位置与朝向;
重复以上回溯比对,在对每一个假设位置朝向组合进行检验后,只剩下两组假设,分别为[f6,3]和[f4,3],将回溯格数的上限值N自加一,回溯两步再做比对,排除[f6,3],剩下的[f4,3]即为摔倒后起立的正确状态。
至此完成重定位,机器人从[f4,3]继续执行行走导航算法。
实施例2
图8所示为行走导航与重定位方法的应用实例流程图,该流程更为详细地展示了仿人机器人系统的行走导航过程,图8(a)为寻径与摔倒校正流程图,具体如下:
SS1:设定机器人的初始位置、朝向值,根据该设定值放置机器人。
判断J1:判断当前位置的地形是否完全已知:
若存在某方向地形未知,执行SS2,否则执行SS4。
SS2:对正前方地形做检测并记录。
判断J2:判断当前位置的地形是否完全已知:
若当前位置的地形完全已知,跳转SS4。
SS3:右转90度。
返回判断J1,循环执行从判断J1到SS3,直到完成对地形的完全检测。
SS4:确定当前位置的地形完全已知后,执行贪婪深度算法得到下一位置P1;将当前位置记录为P2,将机器人已经过所有单元格记录为路径R。
SS5:机器人原地转动,面向P1。
判断J3:判断是否发生跌倒:
若跌倒进入校正流程,执行SS9,否则执行SS6。
SS6:机器人未跌倒,继续寻径;执行调整姿态步骤,使得机器人位于当前单元格中心。
SS7:识别并记录前方视线范围内所有单元格地形,计算机器人当前位置与下一单元格P1中心位置间的距离D1。
SS8:机器人前进距离D1。
判断J4:再判断是否发生跌倒:
若跌倒进入校正流程,执行SS9。
判断J5:判断是够到达终点:
若未到达终点,执行判断J1,继续寻径。
完成寻径并到达终点。
如图8(b)所示,经过优化的机器人重定位及校正流程如下:
SS9:机器人重新站立,并调整位置到位于当前位置P3的单元格中心,设定最大回溯步数N为1。
判断J6:判断P3的地形是否完全已知:
若有未知部分,执行SS10,完全已知,执行SS12。
SS10:对正前方地形做检测并记录。
SS11:右转90度。
执行判断J6,循环从判断J6到SS11,完成P3地形完全检测。
SS12:确定P3的地形完全已知后,列出P3位置与朝向的所有可能组合,建立集合L。
SS13:从集合L中取出第一组作为当前位置与朝向的假设值,记为Y。
SS14:设置已回溯步数计数器S为0。
判断J7:判断Y的位置是否和P2位置相同:
若不同,执行SS15,相同,执行SS16。
SS15:S为0时,机器人回溯移动到P2;S不为0时,说明机器人已经在路径R上,
机器人沿路径R回溯一步。
SS16:已完成一步回溯,S自加1。
判断J8:将回溯后检测到的单元格地形,与路径R中记录的该单元格地形做比对:
如果不完全一致,执行SS17,否则判断J9。
SS17:从L中删除假设组Y。
判断J9:完成比对后,判断S是否等于N:
若不等,执行判断J7,循环从判断J7到判断J9,完成对单个位置朝向假设组的一次回溯检验;相同,执行SS18。
SS18:机器人返回P3,准备进入下一个假设组的检验;
判断J10:判断L中所有假设组是否都完成回溯:
如果还有未完成回溯的假设组,执行SS19;完成则执行判断J11。
SS19:从L中取出下一组未经过回溯检验的假设组,记为新的Y;循环从SS14到判断J10,将L中所有假设组都回溯完毕。
判断J11:对L全体完成一次回溯检验后,检查L中是否只剩下一组假设:是的话执行SS21;
如果仍有两组或以上的假设组,说明错误的假设组没有完全排除,执行SS20。
SS20:N自加1;循环从SS13到判断J11,完全排除所有错误假设,剩下的即为正确的重新站立后机器人在P2的位置与朝向。
SS21:机器人返回P2,执行判断J1,根据正确的位置与朝向,继续寻径流程。
对于校正部分可以做进一步优化,通过记忆跌倒站立后的单元格周围地图,可以实现地形比对时不必每次都实际行走到回溯位置,可以直接读取地形并比对,节省了时间;图8(b)所示校正优化流程图过程如下:
完成原校正流程的SS12后;
SS22:从集合L中取出一组当前位置朝向的假设值,记为Y。
SS23:生成一个空地图M0,用于记录当前位置周围单元格的地形。
SS24:将前一位置朝向假设值与现在假设值Y作比较,把地图M0转换成当前位置朝向假设下的新地图M0。
SS25:设置已回溯步数计数器S为0。
判断J12:判断Y的位置是否和P2位置相同:
若相同,执行判断J14
若不同,执行判断J13
判断J13:从路径R读取回溯一步后的位置P4;若S为0,P4设置为P2;检查P4地形是否被记录在M0中:
若未被记录,执行SS26。
SS26:机器人回溯到P4,记录P4的地形到当前假设下的M0,S自加1。
若已被记录,执行SS27。
SS27:从M0中读取P4的地形,S自加1。
判断J14:将当前假设下的位置P4地形与记录在R中的P4地形进行比对,判断是否完全一致:
若不完全一致,执行SS28;否则,执行判断J15。
SS28:从L中删除该假设组Y。
判断J15:S是否等于N:
若不等,循环从判断J12到判断J15的所有步骤,完成对Y深度为N的回溯检查;
相等执行SS29。
SS29:机器人返回原处P3。
判断J16:L中所有假设是否都回溯完毕:
若有未经过回溯检查的假设组,执行SS30。
SS30:从L中取下一组假设组,记为新的Y;循环从SS24到判断J16的所有步骤。
继续原校正流程的判断J11。
图8(b)所示的流程,可将图8(a)虚线框中的内容进行整体替换。
Claims (10)
1.一种仿人机器人在复杂未知迷宫环境的行走导航和重定位方法,其特征在于:
行走导航包含训练准备阶段和实际运行阶段;所述训练准备阶段包括:
S1,将仿人机器人调节至默认观测姿态,采集图像,获得图像ImgTrain,对图像ImgTrain中所有像素所对应的空间实际位置进行估计并获得估计值,所述估计值具体为仿人机器人和该空间实际位置间的距离;
所述实际运行阶段包括:
S2,建立空的迷宫地图,并设定起点、终点和机器人初始朝向,按照所述起点位置和所述机器人初始朝向,将仿人机器人放置于真实的迷宫中;
S3,仿人机器人采集图像,获得图像ImgRun,进行图像处理与图像特征提取,识别得到图像ImgRun中的迷宫地面边界线,估算仿人机器人的位置信息,得到仿人机器人当前位置的周围边界信息,并得到前方位置处的一部分的周围边界信息,将识别得到的位置信息、仿人机器人当前位置的周围边界信息和前方位置处的一部分的边界信息存储至迷宫地图;
S4,仿人机器人执行寻径导航算法获得下一个节点目标位置,向该节点目标位置行进;
S5,检测仿人机器人是否发生跌倒和碰撞,若发生,则执行重定位方法以校正仿人机器人的位置与朝向,然后继续向所述节点目标位置行进;
S6,若成功行进至所述节点目标位置,则返回所述S3重复执行,直至到达终点或运行终止,所述终点的形式包括迷宫出口、预先设定的迷宫中的其它可达位置;
所述仿人机器人,包含有安装于其身体上的视觉系统,用于采集图像;所述仿人机器人,具有在平地上进行行走移动的能力;所述仿人机器人,在跌倒后自行恢复至稳定站立状态。
2.根据权利要求1所述的一种仿人机器人在复杂未知迷宫环境的行走导航和重定位方法,其特征在于:
所述迷宫,包括墙体、通路、起点和终点;通路位于地面,墙体垂直于地面;单条通路的转角均为直角,相交的通路之间的夹角均为直角;所有墙体表面颜色为相同的纯色,通路所在区域被划分为相同大小的地砖单元格,地砖单元格为矩形,且其尺寸足以容纳所述仿人机器人,地砖单元格的颜色为与墙体颜色不同的纯色,相邻的地砖单元格的颜色不同;相邻的地砖单元格之间、地砖单元格与墙体之间具有可见的边界线,边界线构成所述迷宫地面边界线;
所述地砖单元格包含四条实时边界线,分别定义为实时前边界线、实时后边界线、实时左边界线和实时右边界线;其中,若将所述仿人机器人的位置平移至该地砖单元格的中心处,保持所述仿人机器人当前的朝向不变,则所述仿人机器人的身体当前正向面对的边界线为实时前边界线,背对的边界线为实时后边界线,左右两边的边界线分别为实时左边界线和实时右边界线,即四条实时边界线的具体指代由所述仿人机器人的朝向实时决定;所述实时前边界线和所述实时后边界线共同属于实时水平边界线;所述实时左边界线和所述实时右边界线共同属于实时竖直边界线;所述实时边界线的类型信息包含墙体类型、通路类型和未知类型;
定义所述迷宫的全局方向,用于在所述迷宫地图中存储信息,即所述迷宫地图中存储的基础数据信息仅基于所述全局方向,而与所述仿人机器人的朝向无关;所述迷宫的全局方向包含四个方向,对应于所述地砖单元格的四条边界线的实际朝向;所述S2中所述机器人初始朝向,为依据所述迷宫的全局方向进行描述和记录。
3.根据权利要求2所述的一种仿人机器人在复杂未知迷宫环境的行走导航和重定位方法,其特征在于:
所述S1包含如下步骤:
S1-1:将所述仿人机器人放置于地面,调节所述仿人机器人和视觉系统的姿态,使得所述视觉系统面向所述仿人机器人身体的正前方,且使得当所述仿人机器人位于某一所述地砖单元格的中心处位置时,与该地砖单元格实时前边界线相邻的下一地砖单元格的所述实时后边界线、实时左边界线、实时右边界线均位于所述视觉系统的观测范围内,记录此时所述视觉系统与地面间的距离为h;随后保持仿人机器人的身体姿态固定不变,保持视觉系统的横滚角、俯仰角及偏航角固定不变,将此时所述仿人机器人和视觉系统的姿态记录为默认观测姿态;
S1-2:保持所述仿人机器人的位置不变,将图案纸放置于其正前方地面上,所述图案纸上按照所述地砖单元格的实际尺寸,绘制网格阵列,并在该网格阵列中绘制子网格以将网格进行细分,得到细分网格阵列图案;所述图案纸的放置地点为预先设定,以使得图案纸上的细分网格阵列图案位于所述视觉系统可见范围内且将可见范围填充满;所述视觉系统采集图像,获取所述细分网格阵列图案中所有的可见顶点在图像中的像素坐标CVImgPos,将所述可见顶点记为顶点CellVertex;
S1-3:根据所述仿人机器人与所述图案纸间的实际相对距离,计算得到所有所述顶点CellVertex与所述仿人机器人间的相对距离值CVDist,该相对距离值CVDist包括水平距离值CVDistX和竖直距离值CVDistY;
S1-4:遍历所述图像ImgTrain中的每一个像素点,估算任一个像素点Pixel在真实空间中对应的实际位置PixelWorldPos与所述仿人机器人间的相对距离值PWPDist,该相对距离值PWPDist包括水平距离值PWPDistX和竖直距离值PWPDistY;
估算所述相对距离值PWPDist的具体方法为:首先在所述图像ImgTrain中获得包围所述像素点Pixel的4个顶点CellVertex,将其中位于该像素点最左侧的2个顶点各自的水平距离值CVDistX中的较大值记录为CVDistXmin,将其中位于该像素点最右侧的2个顶点各自的水平距离值CVDistX中的较小值记录为CVDistXmax,将其中位于该像素点最下侧的2个顶点各自的竖直距离值CVDistY中的较大值记录为CVDistYmin,将其中位于该像素点最上侧的2个顶点各自的竖直距离值CVDistY中的较小值记录为CVDistYmax,则所述水平距离值PWPDistX∈水平距离区间[CVDistXmin,CVDistXmax],所述竖直距离值PWPDistY∈竖直距离区间[CVDistYmin,CVDistYmax],记录所述像素点Pixel的水平距离区间和竖直距离区间。
4.根据权利要求2所述的一种仿人机器人在复杂未知迷宫环境的行走导航和重定位方法,其特征在于:
所述S3中所述的识别得到图像ImgRun中的迷宫地面边界线的具体方法为:通过识别所述图像ImgRun中的所述地砖单元格的实时边界线,计算实时边界线相对于图像下边缘的倾角Theta,并将所述倾角Theta的取值范围设定在-90度到90度之间,若所述倾角Theta的绝对值小于阈值ThetaThreshold,则将所述实时边界线标记为实时水平边界线,且将所述倾角Theta的值记为所述仿人机器人相对所述实时前边界线的偏转角度,否则标记为实时竖直边界线;计算所述实时水平边界线与所述仿人机器人间的前后方向距离DistY,若DistY的值大于阈值DistYMiddle,则该所述实时水平边界线为所述仿人机器人当前所处的地砖单元格的前方紧邻的地砖单元格FrontCell的实时前边界线,否则为所述地砖单元格FrontCell的实时后边界线;计算所述实时竖直边界线与所述仿人机器人间的左右方向距离;进而得到所述仿人机器人在当前地砖单元格中的精确位置。
5.根据权利要求2所述的一种仿人机器人在复杂未知迷宫环境的行走导航和重定位方法,其特征在于:
所述S3中所述得到仿人机器人当前位置的周围边界信息的具体方法为:
若所述仿人机器人当前所处的地砖单元格的周围边界信息未知,则首先执行地砖单元格前方边界判断规则,获得前方边界信息并记录,而后令所述仿人机器人原地旋转90度角后再次执行地砖单元格前方边界判断规则并记录,依此连续重复旋转后,完成对当前所处的地砖单元格的四周边界信息的记录:其中,所述地砖单元格前方边界判断规则具体为:计算所述图像ImgRun的中心位置像素的颜色与所述墙体的颜色间的颜色差值,若颜色差值小于阈值ColorThreshold,则将实时前边界线的类型信息设定为墙体,否则设定为通路;
所述仿人机器人当前所处的地砖单元格的前方紧邻的地砖单元格FrontCell的周围边界信息的获取方法为:将所述图像ImgRun中当前识别得到的所述实时后边界线向前方平移dn个像素,再继续向前方平移dm个像素,依次获得两条与所述实时后边界线相平行的线段,计算该两条线段所构成的区域SampleRegion的所有像素的颜色平均值,并计算该颜色平均值与所述墙体的颜色间的颜色差值,若颜色差值小于阈值ColorThreshold,则将所述地砖单元格FrontCell的实时后边界线的类型信息设定为墙体,否则设定为通路;将所述图像ImgRun中当前识别得到的所述实时左边界线向左侧平移dn个像素,再继续向左侧平移dm个像素,将在所述图像ImgRun中当前识别得到的所述实时右边界线向右侧平移dn个像素,再继续向右侧平移dm个像素,分别判定得到所述地砖单元格FrontCell的实时左边界线、实时右边界线的类型信息;
所述dn的值为预先设定,以使得所述区域SampleRegion不包含边界线,以避免增加所述颜色差值的计算偏差;所述dm的值为预先设定,以使得所述区域SampleRegion包含足够数量的像素,以增加对所述颜色差值进行统计计算的精度;
所述颜色差值由两种颜色各自的RGB值分量的曼哈顿距离计算得到。
6.根据权利要求2-5任意一项所述的一种仿人机器人在复杂未知迷宫环境的行走导航和重定位方法,其特征在于:
所述S4中的所述寻径导航算法,具体为:
根据迷宫的所述全局方向,描述并记录所述仿人机器人的当前朝向;
调整所述仿人机器人和所述视觉系统的姿态至所述默认观测姿态,再调整所述仿人机器人的位置至有效观测位置,使得对于所述仿人机器人当前所处的地砖单元格的前方紧邻的地砖单元格FrontCell,其实时后边界线、实时左边界线和实时右边界线均位于所述视觉系统的观测范围内;
获取所述仿人机器人当前位置的周围边界信息,在所述迷宫地图中确认当前所在的所述地砖单元格的位置,在与当前地砖单元格相邻的地砖单元格中选择得到下一个节点目标位置,选择的依据为在所有直接可达的相邻的地砖单元格中,与所述终点的曼哈顿距离最短的一个;计算所述仿人机器人行走到所述节点目标位置后的目标朝向;所述节点目标位置位于某一地砖单元格的中心处;
所述仿人机器人由所述当前朝向转向所述目标朝向,使得所述仿人机器人面向所述节点目标位置;
计算所述节点目标位置对应的地砖单元格的实时后边界线与所述仿人机器人间的前后方向距离DistYTarget,令所述仿人机器人向前行走一定距离以接近所述节点目标位置,行走的距离值为DistYTarget+CellLength/2,其中CellLength为地砖单元格沿前进方向的边长。
7.根据权利要求6所述的一种仿人机器人在复杂未知迷宫环境的行走导航和重定位方法,其特征在于:
所述调整所述仿人机器人的位置至有效观测位置的具体过程为:
检测所述图像ImgRun中是否包含所述实时水平边界线,若未检测到,令所述仿人机器人向后退距离DistYBack;若检测到,但该实时水平边界线与所述仿人机器人间的前后方向距离DistYTarget超过阈值DistYMax,则认为所述仿人机器人的位置过于靠前,将当前检测到的实时水平边界线视为前方紧邻的地砖单元格FrontCell的实时前边界线,令所述仿人机器人向后退距离DistYBack;若所述仿人机器人执行了向后退操作,则在该操作完成后重新获取图像ImgRun并重新执行上述检测,以使得所述图像ImgRun中有且只有前方紧邻的地砖单元格FrontCell的实时后边界线;若检测到实时水平边界线,则计算该边界线的倾角Theta,若倾角Theta的绝对值大于阈值ThetaHoriMax,令所述仿人机器人原地沿逆时针转弯,转角大小为Theta;
检测所述图像ImgRun中是否包含实时左边界线,若未检测到,令所述仿人机器人向左平移一步,在该操作完成后重新获取图像ImgRun并重新执行本项检测;
检测所述图像ImgRun中是否包含实时右边界线,若未检测到,令所述仿人机器人向右平移一步,在该操作完成后重新获取图像ImgRun并重新执行本项检测。
8.根据权利要求7所述的一种仿人机器人在复杂未知迷宫环境的行走导航和重定位方法,其特征在于:
所述S5中所述的重定位方法,其具体过程为:
获取所述仿人机器人当前所处的地砖单元格的周围边界信息,并记录,将当前所处的地砖单元格标记为MissCell;
定义一组空的数据列表,记为假设列表,该列表中的每个元素为一组所述仿人机器人的位置数据和朝向数据,即每个元素代表一种所述仿人机器人的位置和朝向的可能性;
将碰撞和跌倒发生时,所述仿人机器人所处的地砖单元格,以及与该地砖单元格相邻且相贯通的地砖单元格的位置数据,作为假设列表中的位置数据集合;将所述迷宫的全局方向中的四个方向,作为假设列表中的朝向数据集合;将所述位置数据集合和朝向数据集合进行组合,将组合后得到的所有数据记入所述假设列表,使得所述假设列表中包含用于估计所述仿人机器人当前位置和朝向的所有可能;
从所述假设列表中的任一元素开始,根据记录的已经过路径进行逐格回溯,即依次返回该路径中的上一个地砖单元格,回溯格数的上限值为N,初值为零,在回溯过程中,对经过的每一个地砖单元格的周围边界信息进行检测,并将其与记录在所述迷宫地图中的相应信息进行单元格场景比对,若信息不一致则删除该元素,即否定该元素所对应的假设,令所述仿人机器人反向回溯以重新返回至所述地砖单元格MissCell,回溯的格数重置为零,并在所述假设列表中选择另一元素重新开始上述过程;若对于某元素的回溯格数达到上限N,则同样令所述仿人机器人反向回溯以重新返回至所述地砖单元格MissCell,并重新开始下一次路径回溯,但不删除该元素,且在之后的路径回溯中不再选择该元素;
若对所述假设列表中的所有元素都按照上述步骤完成路径回溯检测后,假设列表中剩余的元素数量大于1,则将所述回溯格数的上限值N自加1,并重新对所述假设列表进行路径回溯检测,直至所述假设列表中仅剩下1个元素,该元素所对应的位置数据和朝向数据即代表所述仿人机器人发生碰撞和跌倒并重新站起之后的真实位置与真实朝向,即所述仿人机器人成功获取到自身在碰撞和跌倒之后在所述迷宫地图中的位置和朝向信息,进而根据该信息,所述仿人机器人先返回所述地砖单元格MissCell所在位置,再移动恢复至发生碰撞和跌倒前的位置与朝向,从而实现重定位。
9.根据权利要求8所述的一种仿人机器人在复杂未知迷宫环境的行走导航和重定位方法,其特征在于:
所述单元格场景比对,用于在假定的全局方向上,将指定的地砖单元格的边界类型信息,与已存储在所述迷宫地图中的基础数据信息进行比对,即对指定的地砖单元格的四条边界线的类型信息进行逐一比对,若信息全部相同,则为一致,否则为不一致;用于所述单元格场景比对的所述边界线的类型信息,包含墙体类型和通路类型,不包含未知类型;
所述假定的全局方向,由所述假设列表中的当前元素所包含的所述仿人机器人的朝向数据,根据所述回溯过程中走过的路径推导而来。
10.根据权利要求2所述的一种仿人机器人在复杂未知迷宫环境的行走导航和重定位方法,其特征在于:
所述迷宫,其复杂度由如下两个参数描述:
所述地砖单元格的数量CountCell,
全部的所述地砖单元格的全部的边界线中,类型信息为墙体类型的边界线的总数量CountWall与所述地砖单元格的数量CountCell间的比值RatioWall;
上述两个参数的数值越大,所述迷宫的复杂度越高;
所述复杂未知迷宫环境,指所述地砖单元格的数量CountCell的最大值不低于100,所述比值RatioWall的最大值不低于75%。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110390588.6A CN113091749B (zh) | 2021-04-12 | 2021-04-12 | 仿人机器人在复杂未知迷宫环境的行走导航和重定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110390588.6A CN113091749B (zh) | 2021-04-12 | 2021-04-12 | 仿人机器人在复杂未知迷宫环境的行走导航和重定位方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113091749A true CN113091749A (zh) | 2021-07-09 |
CN113091749B CN113091749B (zh) | 2022-08-23 |
Family
ID=76677194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110390588.6A Active CN113091749B (zh) | 2021-04-12 | 2021-04-12 | 仿人机器人在复杂未知迷宫环境的行走导航和重定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113091749B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114115284A (zh) * | 2021-12-02 | 2022-03-01 | 北京理工大学 | 一种基于探测并跟随距目标最近且未被访问的间隙的未知迷宫遍历方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109164802A (zh) * | 2018-08-23 | 2019-01-08 | 厦门理工学院 | 一种机器人迷宫行走方法、装置及机器人 |
CN109176503A (zh) * | 2018-07-27 | 2019-01-11 | 东南大学 | 一种基于仿生触须的智能路径探测机器人及路径探测方法 |
CN110032186A (zh) * | 2019-03-27 | 2019-07-19 | 上海大学 | 一种仿人机器人的迷宫特征识别和行走方法 |
CN110653819A (zh) * | 2019-09-25 | 2020-01-07 | 上海大学 | 一种仿人机器人的踢球动作生成系统及方法 |
CN110709790A (zh) * | 2017-03-02 | 2020-01-17 | 罗博艾特有限责任公司 | 用于控制自主移动机器人的方法 |
CN110908384A (zh) * | 2019-12-05 | 2020-03-24 | 中山大学 | 一种分布式多机器人协同过未知随机迷宫的编队导航方法 |
-
2021
- 2021-04-12 CN CN202110390588.6A patent/CN113091749B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110709790A (zh) * | 2017-03-02 | 2020-01-17 | 罗博艾特有限责任公司 | 用于控制自主移动机器人的方法 |
CN109176503A (zh) * | 2018-07-27 | 2019-01-11 | 东南大学 | 一种基于仿生触须的智能路径探测机器人及路径探测方法 |
CN109164802A (zh) * | 2018-08-23 | 2019-01-08 | 厦门理工学院 | 一种机器人迷宫行走方法、装置及机器人 |
CN110032186A (zh) * | 2019-03-27 | 2019-07-19 | 上海大学 | 一种仿人机器人的迷宫特征识别和行走方法 |
CN110653819A (zh) * | 2019-09-25 | 2020-01-07 | 上海大学 | 一种仿人机器人的踢球动作生成系统及方法 |
CN110908384A (zh) * | 2019-12-05 | 2020-03-24 | 中山大学 | 一种分布式多机器人协同过未知随机迷宫的编队导航方法 |
Non-Patent Citations (3)
Title |
---|
ANGELA FARAGASSO,ET AL: "Vision-Based Corridor Navigation for Humanoid Robots", 《2013 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION (ICRA)》 * |
LI WEI, ET AL: "Practical Vision-Based Walking Navigation for the Humanoid Robot NAO in the Maze-like Environment", 《PROCEEDING OF THE IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND BIOMIMETICS》 * |
SUPRIYA JOSE: "Mobile Robot Remote Path Planning and Motion Control in a Maze Environment", 《2ND IEEE INTERNATIONAL CONFERENCE ON ENGINEERING AND TECHNOLOGY 》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114115284A (zh) * | 2021-12-02 | 2022-03-01 | 北京理工大学 | 一种基于探测并跟随距目标最近且未被访问的间隙的未知迷宫遍历方法 |
CN114115284B (zh) * | 2021-12-02 | 2022-12-06 | 北京理工大学 | 一种基于探测并跟随距目标最近且未被访问的间隙的未知迷宫遍历方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113091749B (zh) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7085296B2 (ja) | ロボットの再測位方法 | |
US10571926B1 (en) | Autonomous platform guidance systems with auxiliary sensors and obstacle avoidance | |
Argyros et al. | Robot homing by exploiting panoramic vision | |
Churchill et al. | Practice makes perfect? managing and leveraging visual experiences for lifelong navigation | |
CN103869820B (zh) | 一种巡视器地面导航规划控制方法 | |
EP3018603B1 (en) | Adaptive mapping with spatial summaries of sensor data | |
Sadat et al. | Feature-rich path planning for robust navigation of MAVs with mono-SLAM | |
JP5832341B2 (ja) | 動画処理装置、動画処理方法および動画処理用のプログラム | |
JP5018458B2 (ja) | 座標補正方法、座標補正プログラム、及び自律移動ロボット | |
CN110907947B (zh) | 一种移动机器人slam问题中的实时回环检测方法 | |
CN108829116B (zh) | 基于单目摄像头的避障方法及设备 | |
US9651388B1 (en) | System and method for improved simultaneous localization and mapping | |
JP2009169845A (ja) | 自律移動ロボット及び地図更新方法 | |
CN112444246B (zh) | 高精度的数字孪生场景中的激光融合定位方法 | |
Wulf et al. | Ground truth evaluation of large urban 6D SLAM | |
Belter et al. | Precise self‐localization of a walking robot on rough terrain using parallel tracking and mapping | |
CN110597265A (zh) | 一种扫地机器人回充方法和装置 | |
Churchill et al. | Experience based navigation: Theory, practice and implementation | |
Gu et al. | Robot foraging: Autonomous sample return in a large outdoor environment | |
CN114549738A (zh) | 无人车室内实时稠密点云重建方法、系统、设备及介质 | |
CN113091749B (zh) | 仿人机器人在复杂未知迷宫环境的行走导航和重定位方法 | |
CN115267796B (zh) | 定位方法、装置、机器人和存储介质 | |
CN112733971B (zh) | 扫描设备的位姿确定方法、装置、设备及存储介质 | |
Bouman et al. | Adaptive coverage path planning for efficient exploration of unknown environments | |
Pérez et al. | Integration of Monte Carlo Localization and place recognition for reliable long-term robot localization |
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 |