CN108415432B - 机器人基于直边的定位方法 - Google Patents

机器人基于直边的定位方法 Download PDF

Info

Publication number
CN108415432B
CN108415432B CN201810193145.6A CN201810193145A CN108415432B CN 108415432 B CN108415432 B CN 108415432B CN 201810193145 A CN201810193145 A CN 201810193145A CN 108415432 B CN108415432 B CN 108415432B
Authority
CN
China
Prior art keywords
positioning
robot
edge
determining
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.)
Active
Application number
CN201810193145.6A
Other languages
English (en)
Other versions
CN108415432A (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.)
Zhuhai Amicro Semiconductor Co Ltd
Original Assignee
Zhuhai Amicro Semiconductor Co Ltd
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 Zhuhai Amicro Semiconductor Co Ltd filed Critical Zhuhai Amicro Semiconductor Co Ltd
Priority to CN201810193145.6A priority Critical patent/CN108415432B/zh
Publication of CN108415432A publication Critical patent/CN108415432A/zh
Application granted granted Critical
Publication of CN108415432B publication Critical patent/CN108415432B/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/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • 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/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/027Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising intertial navigation means, e.g. azimuth detector
    • 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/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0272Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

本发明涉及一种机器人基于直边的定位方法,在机器人的行走过程中,通过记录沿障碍物的边缘走过的直边为定位边,可以为后续机器人行走误差较大,满足预设定位条件时进行误差修正提供修正数据,从而避免了机器人的行走误差越积越大而导致无法进行准确的行走和导航,提高了机器人定位的准确性和行走效率。

Description

机器人基于直边的定位方法
技术领域
本发明涉及机器人领域,具体涉及一种机器人基于直边的定位方法。
背景技术
随着陀螺仪技术的发展成熟,基于惯性导航的机器人定位技术获得了越来越多的应用。例如室内清洁机器人,通过陀螺仪提供精准的角度,加上里程计的数据,可以实现室内的惯性导航。这类导航技术,优点是只需要廉价的陀螺仪和里程计,不需要价格相对较高的激光、视觉或者无线定位等传感器。但是,机器人在使用惯性导航原理测量自身角度时,会因累计误差原因,导致机器人获取的自身定位不准确,从而影响机器人的工作效率。
发明内容
为解决上述问题,本发明提供了一种机器人基于直边的定位方法,可以对机器人的行走误差进行修正,提高机器人定位的准确性。本发明的具体技术方案如下:
一种机器人基于直边的定位方法,包括如下步骤:步骤S1:基于机器人行走过程中检测到的数据,判断机器人沿障碍物边缘所行走的路径是否为一条直边,如果是,则进入步骤S2,如果否,则继续检测;步骤S2:确定所述直边为定位边,并将直边所对应的方位参数记录为所述定位边的定位参数;步骤S3:判断机器人是否符合预设定位条件,如果是则进入步骤S4,否则回到步骤S1;步骤S4:搜索所述定位边;步骤S5:朝所述定位边中的一个定位点行走,判断机器人检测到障碍物的位置点是否处于所述定位点的第一预设范围内,如果是,则进入步骤S7,否则,进入步骤S6;步骤S6:搜索另一条定位边,并回到步骤S5;步骤S7:沿所述障碍物的边缘行走,并判断机器人的行进方向是否在所述定位边的定位参数中的定位方向的第二预设范围内,如果是,则进入步骤S8,否则搜索另一条定位边,并回到步骤S5;步骤S8:将机器人当前的定位数据修正为所述定位边所对应的定位参数。
进一步地,步骤S1中所述的基于机器人行走过程中检测到的数据,判断机器人沿障碍物边缘所行走的路径是否为一条直边,包括如下步骤:步骤S11:基于机器人的沿边传感器检测到的数据,判断机器人是否处于沿边行走状态,如果是,则进入步骤S12,否则继续检测;步骤S12:基于机器人的陀螺仪检测到的角度值确定行进方向;步骤S13:分析机器人是否一直沿同一行进方向行走达到第一预设距离,如果是,则确定机器人沿障碍物边缘所行走的路径是一条直边,否则确定机器人沿障碍物边缘所行走的路径不是一条直边。
进一步地,步骤S2中所述的将直边所对应的方位参数记录为所述定位边的定位参数,包括如下步骤:步骤S21:基于机器人的里程计检测到的行进距离确定所述直边的两端和中间的坐标位置,并将所述坐标位置记录为所述定位边的定位坐标;步骤S22:基于机器人的陀螺仪检测到的角度值确定所述直边的延伸方向,并将所述延伸方向记录为所述定位边的定位方向。
进一步地,步骤S2中所述的将直边所对应的方位参数记录为所述定位边的定位参数,包括如下步骤:步骤S21:基于机器人的里程计检测到的行进距离确定所述直边的两端和中间的坐标位置,并将所述坐标位置记录为所述定位边的定位坐标;步骤S22:基于机器人的陀螺仪检测到的角度值确定所述直边的延伸方向,并将所述延伸方向记录为所述定位边的定位方向;步骤S23:将垂直所述直边,并且指向所述直边内侧的方向记录为所述定位边的标定方向。
进一步地,步骤S3中所述的判断机器人是否符合预设定位条件,包括如下步骤:判断机器人行走的时间是否达到预设时间或者机器人行走的路径是否达到第一预设长度,如果任意一个判断结果为是,则确定机器人符合预设定位条件,否则,确定机器人不符合预设定位条件。
进一步地,步骤S4所述的搜索所述定位边,包括如下步骤:基于机器人所构建的栅格地图,搜索栅格地图中所述定位边所在的栅格位置。
进一步地,步骤S5所述的朝所述定位边中的一个定位点行走,判断机器人检测到障碍物的位置点是否处于所述定位点的第一预设范围内,包括如下步骤:步骤S51:确定所述定位边的起始位置点或者中间位置点作为定位点;步骤S52:确定所述定位点所在的栅格单元;步骤S53:搜索从机器人当前所在的栅格单元至所述定位点所在的栅格单元之间的栅格路径,沿所述栅格路径向所述定位点所在的栅格单元行走,当机器人检测到障碍物时,判断障碍物所在的栅格单元与所述定位点所在的栅格单元之间的距离是否小于第二预设距离,如果是,则确定机器人检测到障碍物的位置点处于所述定位点的第一预设范围内,否则,确定机器人检测到障碍物的位置点不处于所述定位点的第一预设范围内。
进一步地,步骤S7所述的沿所述障碍物的边缘行走,并判断机器人的行进方向是否在所述定位边的定位参数中的定位方向的第二预设范围内,包括如下步骤:步骤S71:机器人按沿边方向沿着所述障碍物的边缘行走,并基于陀螺仪检测到的数据确定行进方向;步骤S72:确定所记录的所述定位边的定位参数中的定位方向;步骤S73:判断所述行进方向与所述定位方向的角度差值是否小于预设误差角度值,如果是,则确定机器人的行进方向在所述定位边的定位参数中的定位方向的第二预设范围内,否则确定机器人的行进方向不在所述定位边的定位参数中的定位方向的第二预设范围内。
进一步地,步骤S8所述的将机器人当前的定位数据修正为所述定位边所对应的定位参数,包括如下步骤:步骤S81:确定所记录的所述定位边的终端位置点所对应的坐标值;步骤S82:确定机器人沿障碍物的边缘行走至转折处的位置点所对应的当前坐标值;步骤S83:将所述当前坐标值替换为所记录的所述定位边的终端位置点所对应的坐标值。
进一步地,在步骤S8之后,还包括:步骤S9:基于机器人当前的定位数据与所述定位边所对应的定位参数的差值,修正机器人所存储的地图信息。
进一步地,步骤S9所述的基于机器人当前的定位数据与所述定位边所对应的定位参数的差值,修正机器人所存储的地图信息,包括如下步骤:步骤S91:确定所记录的所述定位边的终端位置点所对应的坐标值与机器人沿障碍物的边缘行走至转折处的位置点所对应的当前坐标值之间的坐标差值为(△X,△Y);步骤S92:确定栅格单元的边长为L;步骤S93:确定所述坐标差值所对应的栅格坐标差值为R,R=(△X/L,△Y/L);步骤S94:将栅格地图中的栅格单元的栅格坐标减去R,作为重新确定的栅格坐标,并保持栅格单元的状态信息不变。
本发明的有益效果包括:在机器人的行走过程中,通过记录沿障碍物的边缘走过的直边为定位边,可以为后续机器人行走误差较大,满足预设定位条件时进行误差修正提供修正数据,从而避免了机器人的行走误差越积越大而导致无法进行准确的行走和导航,提高了机器人定位的准确性和行走效率。
附图说明
图1为本发明所述的机器人基于直边的定位方法的流程示意图。
图2为本发明所述的确定标定方向的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。应当理解,下面所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
本发明所述的机器人是一种智能清洁机器人(比如扫地机器人或者拖地机器人),下述实施例中提到的机器人都是指代智能清洁机器人。这些机器人能凭借一定的人工智能,自动在某些场合自动进行行走。机器人的机体上设有各种传感器,可检测行走距离、行走角度(即行进方向)、机体状态和障碍物等,如碰到墙壁或其他障碍物,会自行转弯,并依不同的设定,而走不同的路线,有规划地行走,还会根据行走过程中检测到的各种数据构建栅格地图。本发明所述的机器人包括如下结构:带有左驱动轮和右驱动轮的能够自主行走的机器人机体,机体上设有人机交互界面,机体上设有障碍检测单元。机体内部设置有惯性传感器,所述惯性传感器包括加速度计和陀螺仪等,两个驱动轮上都设有用于检测驱动轮的行走距离的里程计(一般是码盘),还设有能够处理相关传感器的参数,并能够输出控制信号到执行部件的控制模块。
如图1所示的机器人基于直边的定位方法,包括如下步骤:步骤S1:基于机器人行走过程中检测到的数据,包括陀螺仪检测到的角度值、里程计检测到的距离值和沿边传感器检测到的沿边值,来判断机器人沿障碍物边缘所行走的路径是否为一条直边。判断是否沿障碍物的边缘行走可以通过沿边传感器检测到的沿边值来确定,当沿边传感器检测到的沿边值始终保持为预设值,则表明机器人一直沿障碍物的边缘行走,所述预设值可以设置为1厘米或者0.5厘米至1.5厘米中的任意一值,可以理解的是,在所设置的沿边值的一定范围内(比如±10%)变化,也可以认为是保持为预设值。判断所行走的路径是否为一条直边,则可以通过陀螺仪检测的角度值或者里程计所检测的距离值来确定,比如陀螺仪检测到的角度值始终保持不变,则表明机器人行走的方向不变,一直沿某一方向直线行走。又比如里程计检测到的距离值按某一直线的斜率有规律地变化,则表明机器人始终沿着该直线一直行走。除了上述方式之外,还可以通过超声波定位、视觉定位或者激光定位等方式判断机器人沿障碍物边缘所行走的路径是否为一条直边。机器一边按***规划的路径行走,一边进行上述检测判断,当确定机器人沿障碍物边缘所行走的路径是一条直边时,则进入步骤S2,把所述直边确定为定位边,并将直边所对应的方位参数记录为所述定位边的定位参数,所述直边所对应的方位参数包括直边的起始位置点的坐标值、中间位置点的坐标值、终端位置点的坐标值、沿直边行走的方向等。则相应的方位参数记录为定位边的起始位置点的定位坐标值、中间位置点的定位坐标值、终端位置点的定位坐标值、沿直边行走的定位方向等定位参数。在记录好定位边的定位参数后,进入步骤S3,判断机器人是否符合预设定位条件,所述预设定位条件可以根据具体的设计需求进行相应设置,比如可以根据机器人的行走时间进行设置,当机器人行走了一定时间(比如20分钟),会积累一定的行走误差,此时就可以考虑进行误差修正,即判断符合预设定位条件;也可以根据机器人行走的距离进行设置,当机器人行走了一定的距离(比如50米),也会积累一定的行走误差,也可以判断符合预设定位条件,需要进行误差修正。此外,还可以根据机器人行走的时间结合行走的距离来进行设置。当判断机器人不符合预设定位条件,表明机器人所累积的行走误差不够大,不需要进行修正,则返回步骤S1继续一边按规划行走,一边检测。当判断机器人符合预设定位条件,则表明此时机器人需要进行误差修正,并进入步骤S4,搜索步骤S2中所记录的定位边。搜索所述定位边可以通过搜索栅格地图的形式来确定定位边所位于的一连串栅格单元。此时,搜索出来的定位边可能有多条,此时可以根据***设置选择其中一条定位边进行误差修正,比如选择最早确定的那条定位边,或者选择具有交点的两条定位边中的任意一条。在搜索并确定了可以进行误差修正的那条定位边后,进入步骤S5,朝所述定位边中的一个定位点行走,由于机器人导航行走时是基于坐标位置点进行逐点的位置移动,所以机器人相应去到定位边,需要先确定定位边中的一个位置点作为目标位置点(即所述定位点),才可以从当前位置点导航行走至该目标位置点,才可以到达所述定位边。所述定位点可以根据具体的设计需求进行相应设置,比如设置为所述定位边的起始位置点或者中间的位置点,或者起始点和中间点之间的任意一位置点。由于机器人当前的行走数据已经存在误差,当前存储的地图数据和实际的地形已经存在误差,所以,机器人朝所述定位点行走时,也许机器人导航还没有行走至所述定位点,就已经检测到了障碍物,也许机器人导航已经到达了所述定位点,可是机器人还没有检测到障碍物,则机器人需要继续前行,直到检测到障碍物。机器人检测到障碍物后,并不知道该障碍物是否属于所述定位边所对应的障碍物,需要先判断机器人检测到障碍物时的位置点是否处于所述定位点的第一预设范围内,如果在第一预设范围内,表明该障碍物是定位边所对应的障碍物的可能性很大,则进入步骤S7,作进一步判断。如果不在第一预设范围内,表明机器人行走误差比较大,该障碍物是定位边所对应的障碍物的可能性较小,则进入步骤S6,搜索另一条定位边,搜索方式也是采用上述相同的方式,不再赘述,优选的,确定另一条定位边时,可以选择与所确定的上一条定位边相邻的定位边,如此可以缩短机器人导航行走的距离,提高定位效率。重新确定了定位边以后,再回到步骤S5,按上述同样的方式继续进行操作。进入步骤S7时,由于机器人还不能完全确定当前检测到的障碍物就是所述定位边所对应的障碍物,所以,机器人会沿着所述障碍物的边缘朝所述定位边的终端位置点的方向行走,并通过陀螺仪检测到的数据确定当前的行进方向,然后判断机器人的行进方向是否在所述定位边的定位参数中的定位方向的第二预设范围内,所述第二预设范围可以根据具体设计需求进行相应设置,优选的,可以设置在所述定位方向的±3°范围内,比如所述定位方向为45°,机器人检测到当前的行进方向为42°至48°这个范围内,均可认为当前的行进方向在所述定位方向的第二预设范围内。由于陀螺仪的漂移或者机体打滑等原因,即使机器人沿直线行走,其检测到的行进方向也会不稳定,所以通过设置第二预设范围,可以避免机器人由于常规的微小误差而导致误判的问题。当确定机器人的行进方向在所述定位方向的第二预设范围内时,则表明机器人当前沿边的障碍物就是所记录的定位边所对应的障碍物,可以确定机器人所沿的边就是所述定位边所对应的直边,接着就可以进入步骤S8,将机器人当前的定位数据修正为所述定位边所对应的定位参数,所修正的定位数据包括坐标值和角度值,即将当前位置点所检测到的坐标值替换为定位边在该位置点时所记录的坐标值,将当前位置点所检测到的角度值替换为定位边在该位置点时所记录的角度值。如果确定机器人的行进方向不在所述定位方向的第二预设范围内,则搜索另一条定位边,搜索方式也是采用上述相同的方式,不再赘述,优选的,确定另一条定位边时,可以选择与所确定的上一条定位边相邻的定位边,如此可以缩短机器人导航行走的距离,提高定位效率。重新确定了定位边以后,再回到步骤S5,按上述同样的方式继续进行操作。本实施例所述的方法,在机器人的行走过程中,通过记录沿障碍物的边缘走过的直边为定位边,可以为后续机器人行走误差较大,满足预设定位条件时进行误差修正提供修正数据,从而避免了机器人的行走误差越积越大而导致无法进行准确的行走和导航,提高了机器人定位的准确性和行走效率。
作为其中一种实施方式,步骤S1中所述的基于机器人行走过程中检测到的数据,判断机器人沿障碍物边缘所行走的路径是否为一条直边,包括如下步骤:步骤S11:基于机器人的沿边传感器检测到的数据,所述沿边传感器可以采用红外传感器或者超声波传感器等,其用于检测机器人的机体与侧边的障碍物之间的距离。当沿边传感器检测到机器人在行走过程中,机体侧边一直有障碍物,则表明机器人是沿着障碍物的边缘行走,可以确定机器人处于沿边行走状态,并进入步骤S12,否则继续一边行走一边检测,直到确定机器人处于沿边行走状态后,再进入步骤S12。进入步骤S12后,基于机器人的陀螺仪检测到的角度值确定行进方向,即通过陀螺仪检测到的数据,可以得出机器人当前沿着障碍物的边缘行走的方向。在确定了行进方向之后,则进入步骤S13,分析机器人沿障碍物边缘所行走的路径是不是一条直边。如果机器人一直沿障碍物的边缘朝同一行进方向行走,并且行走的距离达到第一预设距离,则可以表明机器人是沿着一条直线行走,即可以确定机器人沿障碍物边缘所行走的路径是一条直边。其中,所述第一预设距离可以根据具体的设计需求进行相应设置,优选的,可以设置为2米或者大于2米的数值,如果设置的值过小,机器人不容易寻找到该边,同时由于行走误差等因素的影响,较短的直边也不适于作为定位边。所以,如果机器人不是一直沿障碍物的边缘朝同一行进方向行走,或者机器人一直沿障碍物的边缘朝同一行进方向行走的距离没有达到第一预设距离,则可以认为机器人不是沿着一条直线行走,即可以确定机器人沿障碍物边缘所行走的路径不是一条直边。本实施例所述的方法,通过检测沿边状态和沿边行进方向来判断机器人沿边行走的路径是不是一条直边,检测和判断方法简单、易操作,使机器人可以快速、准确地确定行走状态,更高效地为后续确定定位边的步骤提供参考数据。
作为其中一种实施方式,步骤S2中所述的将直边所对应的方位参数记录为所述定位边的定位参数,包括如下步骤:步骤S21:由于机器人是通过装设在驱动轮上的里程计来计算行走距离的,并且,在机器人所构建的XY轴坐标系中,通过里程计检测的行走距离和陀螺仪检测的行进方向,可以得出机器人行走的路径和具***置。所以,通过机器人的里程计检测到的行进距离可以确定机器人沿所述直边行走时的各个坐标位置,包括位于所述直边两端和中间的坐标位置,并将所述坐标位置记录为所述定位边的定位坐标。确定了定位坐标后,再进入步骤S22,通过机器人的陀螺仪检测到的角度值可以确定所述直边的延伸方向,即机器人沿直边行走时的行进方向,并将所述延伸方向记录为所述定位边的定位方向。所述步骤S21和步骤S22之间的先后顺序是可以调换的,即可以先记录定位方向,再记录定位坐标。此外,也可以同时记录定位坐标和定位方向,没有先后顺序之分。本实施例所述方法,通过把里程计和陀螺仪检测到的机器人沿直边行走的数据作为定位边的定位参数,数据获取容易,处理方便,更高效地得出定位边的定位参数,有利于后续的误差修正。
作为其中一种实施方式,步骤S2中所述的将直边所对应的方位参数记录为所述定位边的定位参数,包括如下步骤:步骤S21:基于机器人的里程计检测到的行进距离确定所述直边的两端和中间的坐标位置,并将所述坐标位置记录为所述定位边的定位坐标;步骤S22:基于机器人的陀螺仪检测到的角度值确定所述直边的延伸方向,并将所述延伸方向记录为所述定位边的定位方向;步骤S23:将垂直所述直边,并且指向所述直边内侧的方向记录为所述定位边的标定方向,所述直边内侧是指机器人从哪一侧检测到直边,该侧就是直边的内侧。本实施例与上一实施例的区别在于,增加了步骤S23,如图2所示,具有剖面线的长方形表示一堵墙体,机器人可以沿该墙体两侧的直边行走,行走在不同的侧边,即使行进方向相同,其坐标位置也是不同的,就不属于同一条定位边。所以,仅通过行进方向是无法判断机器人是行走在墙体的哪一侧,必须结合沿边传感器进行判断。而本实施例所述的方法,通过记录步骤S23中所述的标定方向,就可以不用借助沿边传感器的判断,直接依据标定方向就可以判断机器人是位于墙体的哪一侧行走。由于图2中,标定方向(a标示的箭头方向)是垂直于墙体(即所述直边),并指向墙体的内侧,所以,通过参数a就可以直接得出机器人是沿墙体的右侧行走的,即机器人靠着墙体的右侧,从A(x1,y1)点沿墙边向B(x2,y2)点方向行走。本实施例所述方法,通过增加记录标定方向,对机器人准确寻找和确定定位边更有利,定位效果更显著。
作为其中一种实施方式,由于机器人在行走过程中,行走误差是随着行走距离或者行走时间的增大而不断慢慢累积的,如果时时进行误差修正,则机器人的行走效率会非常低,所以,机器人需要在行走时满足预设定位条件,才进行一次误差修正,这样可以在保证行走效率的同时,修正行走误差以满足行走精度的要求。所以步骤S3中所述的判断机器人是否符合预设定位条件,具体包括如下步骤:判断机器人行走的时间是否达到预设时间,当机器人沿边行走的时间达到预设时间,表明机器人已经行走了很久,累积的行走误差已经比较大了,需要进行误差修正,所以可以确定机器人已经符合预设定位条件,需要进入步骤S4,进行后续的修正操作。其中,所述预设时间可以根据具体的设计需求进行相应设置,优选的,设置为10分钟至20分钟的范围内,本实施例可以设置为15分钟。如果机器人行走的时间没有达到预设时间,但是,行走的路径已经达到了第一预设长度,也可以表明机器人行走的路程比较长,累积的行走误差也比较大了,可以进行误差修正。此种情况适用于机器人沿边过程比较顺畅或者沿边时打滑比较少的情形,在这种情况下,机器人只要较少的时间,就可以沿边行走很长的距离,但是长距离行走,一点一点的误差累积起来,也会产生较大的行走误差。所以,当机器人行走的路径达到第一预设长度,也可以确定机器人已经符合预设定位条件,需要进入步骤S4,进行后续的修正操作。所述第一预设长度也可以根据具体的设计需求进行相应设置,优选的设置为30米至50米的范围内,本实施例设置为40米。此外,也可以通过行走时间结合行走路径长度来判断是否需要进行误差修正,这样可以更准确地确定机器人累积的行走误差是否达到了需要进行修正的程度。本实施例所述的方法,通过行走时间和/或行走距离来判断机器人是否符合需要进行误差修正的条件,判断方式比较简便,数据处理也比较容易,判断结果也比较准确,适于普遍使用。
作为其中一种实施方式,步骤S4所述的搜索所述定位边,包括如下步骤:基于机器人所构建的栅格地图,搜索栅格地图中所述定位边所在的栅格位置。由于机器人所构建的地图是栅格地图,在具体的行走过程中会把检测到的数据更新至对应的栅格单元的状态信息中,比如行走过程中检测到障碍物,则把该位置点所对应的栅格单元的状态信息标示为障碍单元,如果行走过程中检测到悬崖,则把该位置点所对应的栅格单元的状态信息标示为悬崖单元,正常行走过的栅格单元则标示为已行走单元,等等。所以,机器人搜索定位边时,可以通过搜索栅格地图的形式,把所述定位边所对应的栅格单元搜索出来,即可以知道所述定位边所在的栅格位置。后续机器人需要行走至所述定位边所在的位置时,只需要通过搜索栅格地图中,由已行走单元构成的连接机器人当前栅格位置和定位边所在的栅格位置的栅格路径,就可以沿所述栅格路径导航行走至所述定位边所在的位置。如果机器人所搜索到的定位边有多条,则机器人可以选择其中任意一条定位边进行修正,比如选择相邻的定位边,或者前几段定位边,优选的,本实施例选择的是最早确定的定位边,即机器人开始行走时所确定的第一条定位边,因为这条定位边对应的定位信息最准确,所以,基于最早确定的定位边进行定位修正,修正结果更准确。本实施例所述的搜索定位边包括搜索所有的定位边,以及选择和确定可以进行误差修正的定位边。本实施例所述的方法通过搜索栅格地图的形式来确定所述定位边的位置,可以快速准确地找到定位边,有利于提高机器人进行误差修正的效率。
作为其中一种实施方式,步骤S5所述的朝所述定位边中的一个定位点行走,判断机器人检测到障碍物的位置点是否处于所述定位点的第一预设范围内,包括如下步骤:步骤S51:在步骤S4中搜索并选择好所要进行定位修正的定位边后,确定所述定位边的起始位置点或者中间位置点作为定位点,选择中间位置点时,即使行走存在误差,机器人也可以比较容易找到对应的定位边,而选择起始位置点作为定位点,则有利于在定位边比较短时,准确判断出当前行走的边是不是所选择的定位边。在确定好定位点后,则进入步骤S52,确定所述定位点所在的栅格单元,可以通过XY轴坐标系中定位点的坐标值所对应的栅格单元的栅格坐标值来确定。然后再进入步骤S53,搜索从机器人当前所在的栅格单元至所述定位点所在的栅格单元之间的栅格路径,该栅格路径指的是由已行走单元连接构成的路径,机器人沿所述栅格路径向所述定位点所在的栅格单元行走。当机器人检测到障碍物时,判断障碍物所在的栅格单元与所述定位点所在的栅格单元之间的距离是否小于第二预设距离,如果是,则表明该定位边在地图上的位置与实际地形中的位置相差较小,如此可以确定机器人检测到障碍物的位置点处于所述定位点的第一预设范围内,则可以认为当前检测到的障碍物很可能就是所选择的定位边所对应的障碍物,需要进入步骤S7进行后续的确认。如果障碍物所在的栅格单元与所述定位点所在的栅格单元之间的距离不小于第二预设距离,则表明该定位边在地图上的位置与实际地形中的位置相差较大,可以确定机器人检测到障碍物的位置点不处于所述定位点的第一预设范围内,则可以认为当前检测到的障碍物很可能不是所选择的定位边所对应的障碍物,所以需要进入步骤S6,重新搜索并确定另外一条定位边进行误差修正。其中,所述第二预设距离可以根据具体的设计需求进行相应设置,优选的,可以设置为两个或者三个栅格单元的距离。本实施例所述的方法,通过栅格路径的方式朝定位点进行导航行走,同时通过障碍物所在的栅格单元与所述定位点所在的栅格单元之间的距离来判断当前检测到的障碍物是不是所述定位边所对应的障碍物,***操作更简易,数据分析和处理也更快捷,有利于机器人更快地确定所述定位边,更高效地进行误差修正。
作为其中一种实施方式,步骤S7所述的沿所述障碍物的边缘行走,并判断机器人的行进方向是否在所述定位边的定位参数中的定位方向的第二预设范围内,包括如下步骤:步骤S71:机器人按沿边方向沿着所述障碍物的边缘行走,并基于陀螺仪检测到的角度数据确定机器人当前的行进方向,其中,所述沿边方向是机器人沿着障碍物的边缘,朝着终端位置点行走,其方向就是沿边方向。如果机器人沿障碍物的边缘,朝起始位置点行走,其方向就是逆沿边方向。在确定了行进方向之后,进入步骤S72,确定所记录的所述定位边的定位参数中的定位方向,即把需要进行误差修正所对应的定位边的定位方向调取出来,供后续的数据对比使用。确定了定位方向后,再进入步骤S73,判断所述行进方向与所述定位方向的角度差值是否小于预设误差角度值,如果是,可以认为机器人当前的行进方向和所记录的定位方向相同,则可以确定机器人的行进方向在所述定位边的定位参数中的定位方向的第二预设范围内,即可以认为机器人当前所沿边的障碍物就是所记录的定位边所对应的障碍物。否则,认为机器人当前的行进方向和所记录的定位方向不相同,确定机器人的行进方向不在所述定位边的定位参数中的定位方向的第二预设范围内,即认为机器人当前所沿边的障碍物不是所记录的定位边所对应的障碍物。其中,所述预设误差角度值可以根据具体的设计需求进行相应设置,优选的,可以设置5°。由于陀螺仪的漂移或者机体打滑等原因,即使机器人沿直线行走,其检测到的行进方向也会不稳定,所以通过设置预设误差角度值,可以避免机器人由于常规的微小误差而导致误判的问题。本实施例所述的方法,通过方向的对比来判断机器人所沿的边是不是同一条边,判断方式简易高效,提高了机器人确定定位边的效率,进而提高了机器人进行误差修正的效率。
作为其中一种实施方式,步骤S8所述的将机器人当前的定位数据修正为所述定位边所对应的定位参数,包括如下步骤:步骤S81:确定所记录的所述定位边的终端位置点所对应的坐标值,由于定位边是直边,其两端的端点分别对应起始位置点和终端位置点,定位方向是从起始位置点指向终端位置点的,所以,在上述实施例所述的方法中,机器人检测到定位边所对应的障碍物后,需要确定进行修正的参考数据,本实施例就是确定终端位置点所对应的坐标值作为参考数据。因为终端位置点都是位于方向发生变化的转折点,所以,比较好进行位置的确认。在确定好参考数据后,进入步骤S82,确定机器人沿障碍物的边缘行走至转折处的位置点所对应的当前坐标值,所述转折处是指机器人的行进方向发生较大的变化,变化量不是在所述预设误差角度值的范围内,此时可以表明机器人不再继续沿定位边行走,而该转折点所对应的就是所述定位边的终端位置点,所以,确定转折点处的位置点的坐标值后,就可以进入步骤S83,进行后续的误差修正。进入步骤S83,将所述当前坐标值替换为所记录的所述定位边的终端位置点所对应的坐标值,这样就可以将已经发生行走误差的当前坐标值修正为所记录的比较准确的终端位置点所对应的坐标值,从而实现了机器人的重新定位。本实施例所述的方法,通过取定位边的终端位置点作为参考数据,机器人比较容易和准确地找到对应的位置点,以进行有效的误差修正,修正效果更显著。
作为其中一种实施方式,在步骤S8之后,还包括:步骤S9:基于机器人当前的定位数据与所述定位边所对应的定位参数的差值,修正机器人所存储的地图信息。由于机器人重新定位,所修正的只是当前的坐标位置,而原来存储的栅格地图还是会存在误差,甚至会在机器人重新定位以后造成更严重的误差,所以,在机器人进行重新定位以后,还需要对栅格地图的相关地图信息进行修正。修正的方式可以采用保持栅格单元的状态信息不变,只相应修正栅格单元的栅格坐标值。如此就可以利用修正后的栅格地图进行准确导航,提高了机器人的行走效率。
作为其中一种实施方式,步骤S9所述的基于机器人当前的定位数据与所述定位边所对应的定位参数的差值,修正机器人所存储的地图信息,包括如下步骤:步骤S91:确定所记录的所述定位边的终端位置点所对应的坐标值与机器人沿障碍物的边缘行走至转折处的位置点所对应的当前坐标值之间的坐标差值为(△X,△Y);步骤S92:确定栅格单元的边长为L;步骤S93:确定所述坐标差值所对应的栅格坐标差值为R,R=(△X/L,△Y/L),步骤S94:将栅格地图中的栅格单元的栅格坐标减去R,作为重新确定的栅格坐标,并保持栅格单元的状态信息不变。比如,机器人在转折处的位置点所检测到的当前坐标值为(46,58),所记录的定位边的终端位置点的坐标值为(26,38),则坐标差值为(46-26,58-38)。由于每个栅格单元的边长为20,所以,得出的栅格坐标差值R=((46-26)/20,(58-38)/20)=(1,1)。最后,将栅格地图中的栅格单元的栅格坐标减去(1,1),即可以作为重新确定的栅格坐标。此时,栅格坐标值变化前后的栅格单元的状态信息保持不变。本实施例通过位置点坐标值换算的方式,可以快速有效地对栅格地图的信息进行调整,从而快速地重新确定好最新最准确的栅格地图,为机器人后续的导航提供更准确的数据。
如上所述的这些实施例中,所述栅格地图是由很多栅格单元组合构成的,所述栅格单元是一个虚拟的边长为20厘米的正方形方格。很多个栅格单元连续拼接组成一个具有一定长度和宽度的栅格区域,该栅格区域对应的地图就是栅格地图。由于机器人在移动时,是一边行走一边清洁,所以,上述这些实施例描述机器人在某路径或区域行走,即表示机器人沿该路径进行行走清洁。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。这些程序可以存储于计算机可读取存储介质(比如ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质)中。该程序在执行时,执行包括上述各方法实施例的步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制,各实施例之间的技术方案是可以相互结合的;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种机器人基于直边的定位方法,其特征在于,包括如下步骤:
步骤S1:基于机器人行走过程中检测到的数据,判断机器人沿障碍物边缘所行走的路径是否为一条直边,如果是,则进入步骤S2,如果否,则继续检测;
步骤S2:确定所述直边为定位边,并将直边所对应的方位参数记录为所述定位边的定位参数;
步骤S3:判断机器人是否符合预设定位条件,如果是则进入步骤S4,否则回到步骤S1;
步骤S4:搜索所述定位边;
步骤S5:朝所述定位边中的一个定位点行走,判断机器人检测到障碍物的位置点是否处于所述定位点的第一预设范围内,如果是,则进入步骤S7,否则,进入步骤S6;
步骤S6:搜索另一条定位边,并回到步骤S5;
步骤S7:沿所述障碍物的边缘行走,并判断机器人的行进方向是否在所述定位边的定位参数中的定位方向的第二预设范围内,如果是,则进入步骤S8,否则搜索另一条定位边,并回到步骤S5;
步骤S8:将机器人当前的定位数据修正为所述定位边所对应的定位参数;
其中,步骤S3中所述的判断机器人是否符合预设定位条件,包括如下步骤:判断机器人行走的时间是否达到预设时间或者机器人行走的路径是否达到第一预设长度,如果任意一个判断结果为是,则确定机器人符合预设定位条件,否则,确定机器人不符合预设定位条件。
2.根据权利要求1所述的方法,其特征在于:步骤S1中所述的基于机器人行走过程中检测到的数据,判断机器人沿障碍物边缘所行走的路径是否为一条直边,包括如下步骤:
步骤S11:基于机器人的沿边传感器检测到的数据,判断机器人是否处于沿边行走状态,如果是,则进入步骤S12,否则继续检测;
步骤S12:基于机器人的陀螺仪检测到的角度值确定行进方向;
步骤S13:分析机器人是否一直沿同一行进方向行走达到第一预设距离,如果是,则确定机器人沿障碍物边缘所行走的路径是一条直边,否则确定机器人沿障碍物边缘所行走的路径不是一条直边。
3.根据权利要求1所述的方法,其特征在于:步骤S2中所述的将直边所对应的方位参数记录为所述定位边的定位参数,包括如下步骤:
步骤S21:基于机器人的里程计检测到的行进距离确定所述直边的两端和中间的坐标位置,并将所述坐标位置记录为所述定位边的定位坐标;
步骤S22:基于机器人的陀螺仪检测到的角度值确定所述直边的延伸方向,并将所述延伸方向记录为所述定位边的定位方向。
4.根据权利要求1所述的方法,其特征在于:步骤S2中所述的将直边所对应的方位参数记录为所述定位边的定位参数,包括如下步骤:
步骤S21:基于机器人的里程计检测到的行进距离确定所述直边的两端和中间的坐标位置,并将所述坐标位置记录为所述定位边的定位坐标;
步骤S22:基于机器人的陀螺仪检测到的角度值确定所述直边的延伸方向,并将所述延伸方向记录为所述定位边的定位方向;
步骤S23:将垂直所述直边,并且指向所述直边内侧的方向记录为所述定位边的标定方向。
5.根据权利要求1所述的方法,其特征在于:步骤S4所述的搜索所述定位边,包括如下步骤:
基于机器人所构建的栅格地图,搜索栅格地图中所述定位边所在的栅格位置。
6.根据权利要求5所述的方法,其特征在于:步骤S5所述的朝所述定位边中的一个定位点行走,判断机器人检测到障碍物的位置点是否处于所述定位点的第一预设范围内,包括如下步骤:
步骤S51:确定所述定位边的起始位置点或者中间位置点作为定位点;
步骤S52:确定所述定位点所在的栅格单元;
步骤S53:搜索从机器人当前所在的栅格单元至所述定位点所在的栅格单元之间的栅格路径,沿所述栅格路径向所述定位点所在的栅格单元行走,当机器人检测到障碍物时,判断障碍物所在的栅格单元与所述定位点所在的栅格单元之间的距离是否小于第二预设距离,如果是,则确定机器人检测到障碍物的位置点处于所述定位点的第一预设范围内,否则,确定机器人检测到障碍物的位置点不处于所述定位点的第一预设范围内。
7.根据权利要求5所述的方法,其特征在于:步骤S7所述的沿所述障碍物的边缘行走,并判断机器人的行进方向是否在所述定位边的定位参数中的定位方向的第二预设范围内,包括如下步骤:
步骤S71:机器人按沿边方向沿着所述障碍物的边缘行走,并基于陀螺仪检测到的数据确定行进方向;
步骤S72:确定所记录的所述定位边的定位参数中的定位方向;
步骤S73:判断所述行进方向与所述定位方向的角度差值是否小于预设误差角度值,如果是,则确定机器人的行进方向在所述定位边的定位参数中的定位方向的第二预设范围内,否则确定机器人的行进方向不在所述定位边的定位参数中的定位方向的第二预设范围内。
8.根据权利要求5所述的方法,其特征在于:步骤S8所述的将机器人当前的定位数据修正为所述定位边所对应的定位参数,包括如下步骤:
步骤S81:确定所记录的所述定位边的终端位置点所对应的坐标值;
步骤S82:确定机器人沿障碍物的边缘行走至转折处的位置点所对应的当前坐标值;
步骤S83:将所述当前坐标值替换为所记录的所述定位边的终端位置点所对应的坐标值。
9.根据权利要求8所述的方法,其特征在于:在步骤S8之后,还包括:
步骤S9:基于机器人当前的定位数据与所述定位边所对应的定位参数的差值,修正机器人所存储的地图信息。
10.根据权利要求9所述的方法,其特征在于:步骤S9所述的基于机器人当前的定位数据与所述定位边所对应的定位参数的差值,修正机器人所存储的地图信息,包括如下步骤:
步骤S91:确定所记录的所述定位边的终端位置点所对应的坐标值与机器人沿障碍物的边缘行走至转折处的位置点所对应的当前坐标值之间的坐标差值为(△X,△Y);
步骤S92:确定栅格单元的边长为L;
步骤S93:确定所述坐标差值所对应的栅格坐标差值为R,R=(△X/L,△Y/L);
步骤S94:将栅格地图中的栅格单元的栅格坐标减去R,作为重新确定的栅格坐标,并保持栅格单元的状态信息不变。
CN201810193145.6A 2018-03-09 2018-03-09 机器人基于直边的定位方法 Active CN108415432B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810193145.6A CN108415432B (zh) 2018-03-09 2018-03-09 机器人基于直边的定位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810193145.6A CN108415432B (zh) 2018-03-09 2018-03-09 机器人基于直边的定位方法

Publications (2)

Publication Number Publication Date
CN108415432A CN108415432A (zh) 2018-08-17
CN108415432B true CN108415432B (zh) 2020-12-15

Family

ID=63130751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810193145.6A Active CN108415432B (zh) 2018-03-09 2018-03-09 机器人基于直边的定位方法

Country Status (1)

Country Link
CN (1) CN108415432B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109085834B (zh) 2018-08-27 2019-09-03 珠海市一微半导体有限公司 机器人确定参考边的方法和机器人筛选参考墙边的方法
CN109683622B (zh) * 2019-02-22 2022-03-15 深圳市杉川机器人有限公司 机器人清扫方法、装置、机器人和计算机可读存储介质
CN109916393B (zh) * 2019-03-29 2023-03-31 电子科技大学 一种基于机器人位姿的多重栅格值导航方法及其应用
CN110908377B (zh) * 2019-11-26 2021-04-27 南京大学 一种机器人导航空间约简方法
CN111407188A (zh) * 2020-03-27 2020-07-14 深圳市银星智能科技股份有限公司 移动机器人重定位方法、装置及移动机器人
CN111208785B (zh) * 2020-04-20 2020-07-14 浙江欣奕华智能科技有限公司 一种运动控制方法及装置
CN111474931B (zh) * 2020-04-22 2023-08-15 珠海一微半导体股份有限公司 一种机器人沿直边行走的异常检测方法及脱卡的处理方法
CN111427362B (zh) * 2020-04-22 2023-08-11 珠海一微半导体股份有限公司 机器人沿直边行走的异常检测方法及脱卡的处理方法
CN113156949A (zh) * 2021-04-19 2021-07-23 深圳市云鼠科技开发有限公司 机器人航向角纠偏方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161328A (ja) * 1997-11-26 1999-06-18 Nec Corp 自走式ロボットの位置確認装置および位置確認方法
CN104503449A (zh) * 2014-11-24 2015-04-08 杭州申昊科技股份有限公司 一种基于环境直线特征的定位方法
CN106959695A (zh) * 2017-04-24 2017-07-18 广东宝乐机器人股份有限公司 移动机器人在工作区域内的角度修正方法及移动机器人
CN107091642A (zh) * 2017-05-15 2017-08-25 东南大学 一种基于异平面锚节点映射及栅格化纠偏的室内定位方法
CN107567605A (zh) * 2015-03-24 2018-01-09 法国雷恩国立应用科学学院 用于在配备有传感器的个人移动辅助装置中校正轨迹的改进方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161328A (ja) * 1997-11-26 1999-06-18 Nec Corp 自走式ロボットの位置確認装置および位置確認方法
CN104503449A (zh) * 2014-11-24 2015-04-08 杭州申昊科技股份有限公司 一种基于环境直线特征的定位方法
CN107567605A (zh) * 2015-03-24 2018-01-09 法国雷恩国立应用科学学院 用于在配备有传感器的个人移动辅助装置中校正轨迹的改进方法
CN106959695A (zh) * 2017-04-24 2017-07-18 广东宝乐机器人股份有限公司 移动机器人在工作区域内的角度修正方法及移动机器人
CN107091642A (zh) * 2017-05-15 2017-08-25 东南大学 一种基于异平面锚节点映射及栅格化纠偏的室内定位方法

Also Published As

Publication number Publication date
CN108415432A (zh) 2018-08-17

Similar Documents

Publication Publication Date Title
CN108415432B (zh) 机器人基于直边的定位方法
CN107943025B (zh) 机器人脱困的处理方法
US11832774B2 (en) Method for detecting skidding of robot, mapping method and chip
US11537142B2 (en) Method for robot repositioning
EP3764186B1 (en) Method for controlling autonomous mobile robot to travel along edge
CN109946715B (zh) 探测方法、装置、移动机器人及存储介质
CN109885049B (zh) 一种基于航位推算的激光导引agv自动建图和路径匹配方法
EP3271784B1 (en) Localization and mapping using physical features
CN109407675B (zh) 机器人回座的避障方法和芯片以及自主移动机器人
US8195331B2 (en) Method, medium, and apparatus for performing path planning of mobile robot
CN108274467B (zh) 机器人走直线的控制方法和芯片及机器人
WO2021058032A1 (zh) 地图建立方法、自移动设备、自动工作***
KR20170088228A (ko) 다중로봇의 자기위치인식에 기반한 지도작성 시스템 및 그 방법
US11656083B2 (en) Autonomous tunnel navigation with a robotic system
CN110580047A (zh) 一种自主机器人的防跌落行进方法及自主机器人
CN113110497A (zh) 基于导航路径的沿边绕障路径选择方法、芯片及机器人
JP2009223757A (ja) 自律移動体、その制御システム、自己位置推定方法
TWI426241B (zh) Self - propelled device for the tracking system
JPH10307627A (ja) 自律走行作業車の作業境界検出装置及び倣い走行制御装置
CN113607154A (zh) 一种室内机器人二维自主定位方法、***、设备及介质
US20230413712A1 (en) Path finding method and system for weeding robot
CN113334387B (zh) 焊接机器人的控制方法、装置、存储介质及焊接机器人
Chmelař et al. Range-data based position localization and refinement for a mobile robot
CN116942018A (zh) 基于特定介质区域的机器人控制方法、机器人及芯片
JP2022057522A (ja) 床レベル測定装置及び床レベル測定プログラム

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