著录项信息
专利名称 | 一种机器人导航方法及系统 |
申请号 | CN201210046562.0 | 申请日期 | 2012-02-24 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2013-09-11 | 公开/公告号 | CN103294054A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G05D1/02 | IPC分类号 | G;0;5;D;1;/;0;2查看分类表>
|
申请人 | 联想(北京)有限公司 | 申请人地址 | 北京市海淀区上地信息产业基地创业路6号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 联想(北京)有限公司 | 当前权利人 | 联想(北京)有限公司 |
发明人 | 李南君;宋爽;宁柯军 |
代理机构 | 北京集佳知识产权代理有限公司 | 代理人 | 逯长明 |
摘要
本发明提供了一种机器人导航方法及系统,所述方法包括:在设定的移动路径上提取控制点,所述控制点包括机器人当前的位置点和所述设定的移动路径终点,并控制所述机器人按照所述控制点在所述移动路径上排列的先后顺序,遍历所述控制点。所述方法主要涉及计算和定位的过程,所以只需要借助机器人自身的计算和处理装置即可完成,而不需要在机器人所处的工作环境中设置额外的设备,因此适用于任何环境中工作的机器人,从而扩展了机器人的使用范围。
一种机器人导航方法及系统\n技术领域\n[0001] 本发明涉及自动控制领域,尤其涉及一种机器人导航方法及系统。\n背景技术\n[0002] 机器人导航是指移动机器人通过感知自身所处的环境和当前状态,实现面向目标的自主运动的过程。简单地说,就是机器人能够确定自身的位置、目标位置和到达目标的路径,并沿着所述路径到达目标。\n[0003] 目前的机器人导航方法有多种,但是目前普遍存在的机器人导航方法大多数都需要在机器人所处的工作环境中安装额外的设备,例如基于视觉的机器人导航方法就需要在机器人所处的环境中安装立体摄像头;基于无线信号的惯性导航需要在工作环境中安装无线信号收发装置,而这对于恶劣的环境无疑是无法实现的,例如使用机器人探测高温区域,就不可能预先在高温区域设置摄像头或无线信号收发装置。所以,现有的机器人导航方法不适用于高温、未知等复杂的工作环境,从而限制了机器人的工作范围。\n发明内容\n[0004] 有鉴于此,本发明提供了一种机器人导航方法及系统,目的在于解决现有的机器人导航方法因不适用于复杂工作环境,而导致机器人工作范围受限制的问题。\n[0005] 为实现上述目的,本发明提供如下技术方案:\n[0006] 一种机器人导航方法,包括:\n[0007] 在设定的移动路径上提取控制点,所述控制点包括机器人当前的位置点和所述设定的移动路径终点;\n[0008] 控制所述机器人按照所述控制点在所述移动路径上排列的先后顺序,遍历所述控制点。\n[0009] 优选地,所述在设定的移动路径上提取控制点包括:\n[0010] 提取所述设定的移动路径的起始点和终点为控制点,将两者之间的路径作为提取区间;\n[0011] 判断所述提取区间内的点是否满足预设的第一条件,如果是,则提取满足预设条件的点为控制点;\n[0012] 当所述提取区间内的点满足预设的第二条件时,以相邻的控制点分别作为起始点和终点重新划分提取区间,返回执行判断在所述提取区间内的点是否满足预设的条件及后续步骤,直到所述提取区间没有满足所述预设的第二条件的点。\n[0013] 优选地,所述预设的第一条件包括:\n[0014] 距离此提取区间的起始点和终点所在直线的距离最大;\n[0015] 所述预设的第二条件包括:\n[0016] 所述提取区间的起始点与终点间的距离大于预设的第一数值,且选择出的控制点到此区间的起始点与终点构成的直线的距离大于预设的第二数值。\n[0017] 优选地,所述控制所述机器人按照所述控制点在所述移动路径上排列的先后顺序,遍历所述控制点包括:\n[0018] 按照所述控制点在所述移动路径上排列的先后顺序,将与所述机器人当前位置点相邻的控制点作为目标控制点;\n[0019] 控制所述机器人移动到所述目标控制点;\n[0020] 将与所述目标控制点相邻的后一个控制点作为新的目标控制点,并返回执行控制所述机器人移动到所述目标控制点的步骤,直到确定所述机器人遍历所有的控制点。\n[0021] 优选地,所述控制所述机器人移动到所述目标控制点包括:\n[0022] 获取所述机器人当前位置的坐标;\n[0023] 判断所述当前位置的坐标是否与预先存储的目标控制点的坐标相同,如果是,则确定所述机器人移动到所述目标控制点。\n[0024] 优选地,所述确定所述机器人遍历所有的控制点包括:\n[0025] 判断机器人到达的目标控制点是否为所述设定的移动路径的终点;\n[0026] 如果是,则确定所述机器人已遍历所有的控制点。\n[0027] 优选地,所述遍历所述控制点包括:\n[0028] 以最短路径遍历所述控制点。\n[0029] 一种机器人导航系统,包括:\n[0030] 控制点提取模块,用于在设定的移动路径上提取控制点,所述控制点包括机器人当前的位置点和所述设定的移动路径终点;\n[0031] 导航控制模块,用于控制所述机器人按照所述控制点在所述移动路径上排列的先后顺序,遍历所述控制点。\n[0032] 优选地,所述控制点提取模块包括:\n[0033] 第一初始化单元,用于提取所述设定的移动路径的起始点和终点为控制点,将两者之间的路径作为提取区间;\n[0034] 控制点提取单元,用于判断所述提取区间内的点是否满足预设的条件,如果是,则提取满足预设条件的点为控制点;\n[0035] 第一迭代单元,用于以相邻的控制点分别作为起始端点重新划分提取区间,并触发所述控制点提取单元工作,直到所述提取区间没有满足所述预设条件的点。\n[0036] 优选地,所述导航控制模块包括:\n[0037] 第二初始化单元,用于按照所述控制点在所述移动路径上排列的先后顺序,将与所述机器人当前位置点相邻的控制点作为目标控制点;\n[0038] 移动控制单元,用于控制所述机器人移动到所述目标控制点;\n[0039] 第二迭代单元,用于将与所述目标控制点相邻的后一个控制点作为新的目标控制点,并触发所述移动控制单元工作,直到确定所述机器人遍历所有的控制点。\n[0040] 优选地,所述移动控制单元包括:\n[0041] 坐标获取单元,用于获取所述机器人当前位置的坐标;\n[0042] 确定单元,用于判断所述当前位置的坐标是否与预先存储的目标控制点的坐标相同,如果是,则确定所述机器人移动到所述目标控制点。\n[0043] 优选地,所述第二迭代单元包括:\n[0044] 判断单元,用于判断机器人到达的目标控制点是否为所述设定的移动路径的终点;\n[0045] 遍历确定单元,用于如果机器人到达的目标控制点为所述设定的移动路径的终点,则确定所述机器人已遍历所有的控制点。\n[0046] 本发明实施例所述的机器人导航方法及系统,通过在设定的移动路径上确定控制点,通过控制点引导机器人经过设定路径的近似路径到达目标点,所述方法主要涉及计算和定位的过程,所以只需要借助机器人自身的计算和处理装置即可完成,而不需要在机器人所处的工作环境中设置额外的设备,因此适用于任何环境中工作的机器人,从而扩展了机器人的使用范围。\n附图说明\n[0047] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。\n[0048] 图1为本发明实施例公开的一种机器人导航方法的流程图;\n[0049] 图2为本发明实施例公开的一种机器人导航方法中用户设定的移动路径中的控制点的示意图;\n[0050] 图3为本发明实施例公开的在用户设定的移动路径上提取控制点方法的流程图;\n[0051] 图4为本发明实施例公开的控制机器人提取控制点的示意图;\n[0052] 图5为本发明实施例公开的控制机器人遍历控制点的方法的流程图;\n[0053] 图6为本发明实施例公开的一种机器人导航系统的结构示意图。\n具体实施方式\n[0054] 本发明公开了一种机器人导航方法及系统,应用于移动机器人,本发明的核心发明点在于用户可以随意设定机器人到达的目的位置点的移动路径,在所述移动路径上提取若干控制点,所述控制点按照先后顺序连接成导航路径,控制机器人沿着导航路径依次经过每个控制点,最终移动到目的位置。\n[0055] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0056] 本发明实施例公开了一种机器人导航方法,用于能够自主移动的机器人,包括地面自主移动、空中自主移动或水中自主移动的机器人等。所述方法如图1所示,包括步骤:\n[0057] S101:在设定的机器人移动路径上提取控制点;\n[0058] 用户可以对机器人指定任意移动路径,即:可以以机器人当前所在的位置为起始点,任意指定机器人的目的位置,并指定机器人从起始位置到达目的位置的移动路径,用户可以远程输入设定的移动路径,例如用户在控制端通过监测设备监测机器人当前的位置,并以机器人当前的位置为起始点,使用鼠标或触摸屏画出设定的移动路径,然后通过远程发射装置发给机器人。用户输入时,可以先设定目的位置再设定移动路径,也可以直接设置移动路径,此时默认移动路径的终点为目标位置点。\n[0059] 需要强调的是,本实施例中所述用户设定的移动路径,优选不包括障碍物的路径,如果用户设定的移动路径上包括障碍物,则要涉及到机器人自主绕开障碍物的方法,这不在本发明的核心发明点的范畴内,这里不再赘述。\n[0060] 控制点指的是从用户设定的移动路径上提取的点,这些点属于用户设定的移动路径,换句话说,用户设定的移动路径可以看作是连续的,而提取控制点是将连续的移动路径离散化,看作是由提取出的控制点连接而成的。\n[0061] 需要说明的是,控制点包括机器人当前所在的位置点和用户设定的移动路径的终点,目的在于保证机器人从当前位置移动到目的位置。\n[0062] S102:控制机器人按照所述控制点在所述移动路径上排列的先后顺序,遍历所述控制点。\n[0063] 控制机器人遍历所述控制点,即控制机器人经过每个控制点,遍历过程要遵循控制点在用户设定的移动路径上排列的先后顺序,例如如图2所示,其中虚线部分为用户设定的移动路径,圆圈代表从用户设定的移动路径上提取的控制点,实线部分为控制点以最短的距离连接成的导航路径,选取的控制点越多,则导航路径越接近于设定的移动路径,A为机器人当前所处的位置点,Z为用户设定的移动路径的终点,即目的位置点,A、B、C和Z都是从用户设定的移动路径上提取出的控制点。\n[0064] 控制机器人遍历控制点时,按照控制点在用户设定的移动路径的先后顺序,即按照A--B--...--C--Z的顺序遍历所有的控制点。从一个控制点到达下一个控制点时,本实施例优选控制机器人通过最短的路径实现,因为两点之间线段最短,所以控制机器人以走直线的方式在控制点间进行移动。\n[0065] 本发明实施例所述的机器人导航方法,通过提取控制点并控制机器人遍历控制点,以完成对机器人的导航,所述方法执行简单,不需要额外的硬件设备的支持,而且可以对机器人设定任意移动路径,大大扩展了机器人的工作范围和工作内容。\n[0066] 进一步地,本实施例所述在用户设定的移动路径上提取控制点的方法如图3所示,包括步骤:\n[0067] S301:提取所述用户设定的移动路径的起始点和终点为控制点,将两者之间的路径作为提取区间;\n[0068] 所述提取区间是指提取控制点的区间,简单而言,就是用户设定的移动路径的全部或一部分。\n[0069] S302:判断所述提取区间内的点是否满足预设的第一条件,如果是,则将其提取为控制点;\n[0070] 预设的第一条件具体包括:距离此提取区间的起始点和终点所在直线的距离最大。这里的最大是相对于此提取区间内的点而言的,即可以计算此区间内的每一个点与此区间的起始端点所在的直线的距离,距离值最大的点才能够被提取为控制点。\n[0071] 例如,如图4所示,提取用户设定的移动路径的起点和终点分别为控制点,记为A和Z,将A和Z之间的路径作为提取区间,计算此区间内的每一个点到A和Z构成的直线的距离,选择出距离值最大的点,作为此提取区间选出的控制线点,图4中,C点到A和Z所在的直线的距离值最大,所以,将C点作为控制点。\n[0072] S303:当所述提取区间内的点满足预设的第二条件时,以相邻的控制点分别作为起始点和终点重新划分提取区间,返回执行步骤S302,直到所述提取区间中没有满足预设的第二条件的点。\n[0073] 所述预设的第二条件具体包括:所述提取区间的起始点与终点间的距离大于预设的第一数值且选择出的控制点到此区间的起始点与终点构成的直线的距离大于预设的第二数值。\n[0074] 例如,在图4中,按照步骤S302提取出新的控制点为C,判断A点和Z点间的距离是否大于预设的第一数值,且C点到A点和Z点所构成的直线的距离是否大于预设的第二数值,如果判断结果均为是,则以相邻的控制点A和C作为起始点和终点,划分出的提取区间为A到C之间的路径,以相邻的控制点C和Z为起始点和终点,划分出的提取区间为C和Z之间的路径,可以看出,由于加入了新的控制点,所以将预设的移动路径划分成了两个不同的提取区间。在AC确定的提取区间中,计算每一个点到A、C构成的直线的距离,通过比较确定出距离值最大的点为此区间选择出的控制点,例如提取出点B为新的控制点。以同样的方法提取CZ确定的提取区间中新的控制点,然后再分别判断提取区间AC和提取区间BZ中的点是否满足预设的第二条件,如果是,则将提取出的新的控制点加入,划分新的提取区间,提取新的控制点,以此迭代循环计算,直到所有的提取区间中都不存在满足预设的第二条件的点为止,也就是说,直到每个提取区间中起始点到终点的距离小于预设的第一数值,且本提取区间的控制点到起始点和终点构成的直线的距离小于预设的第二数值时,说明已经没有控制点可以提取,则结束。\n[0075] 需要强调的是,以上是在默认用户设定的移动路径为非直线路径时采用的控制点的提取方法,当用户设定的移动路径为直线或部分为直线时,直线路径上除起始点和终点外,其它点到起始点和终点构成的直线的距离均相等,则也可以将每个点都提取为控制点,在实际应用中,也可以采用更为简单的方法,例如将此路径的起始点和终点提取为控制点,将直线路经的中点也提取为控制点,提取迭代过程的终止条件同样可以为预设的第二条件。\n[0076] 本实施例所述的从用户设定的移动路径上提取控制点的方法,以移动路径的起始点和终点为基础,递归得到所有的控制点,在对原始的移动路径进行简化的同时,保证了控制点能够最大限度地接近原始移动路径。\n[0077] 进一步地,如图5所示,本实施例所述控制机器人按照所述控制点在所述移动路径上排列的先后顺序,遍历所述控制点包括:\n[0078] S501:按照所述控制点在所述移动路径上排列的先后顺序,将与所述机器人的当前位置相邻的控制点作为目标控制点;\n[0079] 例如,图2中所示,假设机器人当前所述的位置为A点,按照控制点在移动路径上排列的先后顺序,距离A点最近的控制点为B点,则将B点作为目标控制点。\n[0080] S502:控制所述机器人移动到所述目标控制点;\n[0081] 此步骤具体包括:\n[0082] 获取所述机器人当前的位置坐标,可以以预设长度的时间为周期进行获取,也可以实时获取;\n[0083] 判断所述当前位置的坐标是否与预先存储的目标控制点的坐标相同,如果是,则确定所述机器人移动到所述目标控制点,如果不是,则控制机器人继续向目标控制点移动。\n[0084] 例如,在控制机器人从A点向B点移动的过程中,获取机器人当前的位置坐标,判断坐标值是否与B点的坐标值相同,如果相同,则确定机器人已经到达了B点,如果不相同,则控制机器人继续向B点移动。\n[0085] 本实施例中,优选即时定位与地图构建(simultaneous localization and mapping,SLAM)的方法来获取机器人当前的位置坐标。即:控制机器人将当前采集到的色彩信息、场景的深度信息以及其它信息与预先构建好的地图信息进行匹配,从而定位自身预先构建的地图中的位置,同时,还可以用机器人采集到的信息更新和扩展预先构建的地图。\n[0086] S503:将与所述目标控制点相邻的后一个控制点作为新的目标控制点,并返回执行S502,直到确定机器人遍历所有的控制点为止。\n[0087] 本实施例中,确定机器人遍历所有的控制点的具体方法为:\n[0088] 判断机器人到达的目标控制点是否为所述用户设定的移动路径的终点,可以通过比较机器人到达的目标控制点的坐标与用户设定的移动路径的终点的坐标,如果两者相同,则确定机器人已经到达用户设定的移动路径的终点,则确定机器人已遍历所有的控制点。\n[0089] 需要强调的是,本实施例中优选控制机器人沿控制点间的线段进行移动,为的是选择机器人移动的最短距离,但是本发明机器人移动的路径并不限于直线。\n[0090] 本实施例所述的控制机器人遍历控制点的方法,以控制点为坐标点,引导机器人在用户设定的移动路径上移动,简单易行,易于硬件实现。\n[0091] 与上述方法相对应的,本发明还公开了一种机器人导航系统,用于引导机器人沿着用户设定的移动路径向目标位置点自主移动,如图6所示,包括:\n[0092] 控制点提取模块601,用于在用户设定的移动路径上提取控制点,所述控制点包括所述机器人当前的位置点和所述用户设定的移动路径终点;\n[0093] 进一步地,所述控制点提取模块601包括:\n[0094] 第一初始化单元,用于提取所述用户设定的移动路径的起始点和终点为控制点,将两者之间的路径作为提取区间;\n[0095] 控制点提取单元,用于判断所述提取区间内的点是否满足预设的条件,如果是,则提取满足预设条件的点为控制点;\n[0096] 第一迭代单元,用于以相邻的控制点分别作为起始端点重新划分提取区间,并触发所述控制点提取单元工作,直到所述提取区间没有满足所述预设条件的点。\n[0097] 导航控制模块602,用于控制所述机器人按照所述控制点在所述移动路径上排列的先后顺序,遍历所述控制点。\n[0098] 其中,具体包括:\n[0099] 第二初始化单元,用于按照所述控制点在所述移动路径上排列的先后顺序,将与所述机器人当前位置点相邻的控制点作为目标控制点;\n[0100] 移动控制单元,用于控制所述机器人移动到所述目标控制点;\n[0101] 移动控制单元又可以具体包括:\n[0102] 坐标获取单元,用于获取所述机器人当前位置的坐标;\n[0103] 确定单元,用于判断所述当前位置的坐标是否与预先存储的目标控制点的坐标相同,如果是,则确定所述机器人移动到所述目标控制点。\n[0104] 第二迭代单元,用于将与所述目标控制点相邻的后一个控制点作为新的目标控制点,并触发所述移动控制单元工作,直到确定所述机器人遍历所有的控制点。\n[0105] 其中,第二迭代单元又可以包括:\n[0106] 判断单元,用于判断机器人到达的目标控制点是否为所述用户设定的移动路径的终点;\n[0107] 遍历确定单元,用于如果机器人到达的目标控制点为所述用户设定的移动路径的终点,则确定所述机器人已遍历所有的控制点。\n[0108] 以上所述的控制点提取模块和导航控制模块可以设置于机器人自身,也可以设置于机器人的远程控制端,本实施例不做限定。\n[0109] 本实施例所述的机器人导航系统,以从用户设定的移动路径上提取的控制点为引导机器人移动的目标点,可以引导机器人在任意路径上移动,扩展了机器人的使用范围。\n[0110] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。\n[0111] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。\n对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
法律信息
- 2016-03-30
- 2013-10-16
实质审查的生效
IPC(主分类): G05D 1/02
专利申请号: 201210046562.0
申请日: 2012.02.24
- 2013-09-11
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-06-08
|
2010-12-07
| | |
2
| |
2011-09-14
|
2011-04-21
| | |
3
| |
2011-12-07
|
2011-05-24
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |