CN113282078A - 移动机器人直接导航移动到指目标点的方法、系统及应用 - Google Patents

移动机器人直接导航移动到指目标点的方法、系统及应用 Download PDF

Info

Publication number
CN113282078A
CN113282078A CN202110388051.6A CN202110388051A CN113282078A CN 113282078 A CN113282078 A CN 113282078A CN 202110388051 A CN202110388051 A CN 202110388051A CN 113282078 A CN113282078 A CN 113282078A
Authority
CN
China
Prior art keywords
robot
obj
angle
target point
coordinate system
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
Application number
CN202110388051.6A
Other languages
English (en)
Other versions
CN113282078B (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.)
Southwest University
Original Assignee
Southwest 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 Southwest University filed Critical Southwest University
Priority to CN202110388051.6A priority Critical patent/CN113282078B/zh
Publication of CN113282078A publication Critical patent/CN113282078A/zh
Application granted granted Critical
Publication of CN113282078B publication Critical patent/CN113282078B/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/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • 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
    • G05D1/0219Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory ensuring the processing of the whole working surface

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

Abstract

本发明属于移动机器人导航技术领域,公开了一种移动机器人直接导航移动到指目标点的方法、系统及应用,构建ROS坐标系;确定机器人方向角;获得机器人在世界坐标系的当前坐标位置,并作为机器人出发点的坐标;计算并继续调整机器人的角度,使得机器人的航向直接指向目标点;设置机器人需要前进的距离
Figure DDA0003015798230000011
并完成移动;通过不同的反三角函数进行计算,得到
Figure DDA0003015798230000012
以及
Figure DDA0003015798230000013
机器人通过单次计算,并一次性完成方向角调整,径直到达指定目标点。本发明使得ROS机器人在向目标点移动的过程中,一次性完成方向角调整和移动距离的计算,节省大量硬件资源以及计算开销,并使得机器人能够更快速的到达指定目标点。

Description

移动机器人直接导航移动到指目标点的方法、系统及应用
技术领域
本发明属于移动机器人导航技术领域,尤其涉及一种移动机器人直接导航移动到指目标点的方法、系统及应用。
背景技术
目前,移动机器人在移动过程中,移动机器人需要频繁在地图上的两点之间(即出发点和目标点)进行移动。在基于ROS的移动机器人中,目前普遍采用的方式是通过TF坐标变换,将目标点在世界坐标系中的坐标,变换成机器人基坐标系中的坐标,然后设置角速度与线速度,让机器人朝着该目标移动。然而机器人的基坐标系的原点通常与机器人底盘几何中心重合,因此该坐标系是随着机器人位置的移动而随时变化的。这就需要频繁的使用TF变换来更新世界坐标系中的给定目标点在机器人基坐标系中的新坐标,然后根据新坐标重新计算并不断调整机器人的角速度和线速度。因此会耗费大量嵌入式平台上非常有限的硬件资源,并且机器人在不断调整航向的过程中也会减慢机器人的移动速度。因此,亟需一种新的移动机器人直接导航移动到指目标点的方法。
通过上述分析,现有技术存在的问题及缺陷为:现有方法通过TF坐标变换,将目标点在世界地图中的坐标,变换成机器人基坐标系中的坐标,这需要频繁的使用TF变换来更新世界坐标系中的给定目标点在机器人基坐标系中的新坐标,然后根据新坐标重新计算并不断调整机器人的角速度和线速度,因此会耗费大量嵌入式平台上非常有限的硬件资源,并且机器人在不断调整的过程中也会减慢机器人的移动速度。
解决以上问题及缺陷的难度为:解决以上问题的主要难点在于根据机器人当前在地图中的位置坐标和方向角度,通过机器人当前位置与目标点位置的相互关系,一次性计算出机器人需要转动的角度和所需移动的距离,使得机器人的航向角直接朝向给定目标点,并直接移动到目标点。
解决以上问题及缺陷的意义为:本方案根据机器人当前的位置和方向角度,一次性计算出机器人需要转动的角度,使得机器人转动后的方向径直朝向目标点,然后根据距离直接移动到指定目标点。在本方案中,对单个目标点的所有的计算和方向角调整均一次性完成,节省了大量硬件资源以及计算开销,并且由于不需要反复调整机器人的航向角,只需要调整一次,使得机器人在向目标点移动的速度更快,过程更加流畅。
发明内容
针对现有技术存在的问题,本发明提供了一种移动机器人直接导航移动到指目标点的方法、系统及应用。
本发明是这样实现的,一种移动机器人直接导航移动到指目标点的方法,所述移动机器人直接导航移动到指目标点的方法包括以下步骤:
步骤一,ROS坐标系的构建;
步骤二,机器人方向角的确定;
步骤三,通过使用ROS的TF监听,获得机器人在地图坐标系的当前坐标位置,并作为机器人出发点的坐标;
步骤四,让机器人航向回到0度角,即与X轴正向重合;
步骤五,计算并继续调整机器人的角度,使得机器人的航向指向目标点;
步骤六,设置机器人需要前进的距离
Figure BDA0003015798210000021
并完成移动;
步骤七,通过Pstart和Pobj的连线,与经过这两点且与坐标轴平行的直线所围成的三角形,通过不同形式的反三角函数进行计算,得到
Figure BDA0003015798210000022
Figure BDA0003015798210000023
以及
Figure BDA0003015798210000024
步骤八,在机器人没有转向精度与移动距离误差,并在Pstart和Pobj之间没有障碍物的情况下,机器人通过进行单次计算并移动,即可准确到达指定目标点。
步骤九,如果在Pstart和Pobj之间有障碍物的情况下,可以将目标点分拆为多个目标点,拆分之后使得各个相邻目标点之间无障碍物机器人可以直接到达,对各个拆分后的目标点仍然分别适用本发明方法进行单次计算并移动,最终完成所有目标点移动的过程。
各个步骤的作用就是为了计算并调整机器人的当前朝向角度,使其直接朝向目标点,并一次性移动到目标位置。步骤三和步骤四的顺序相对于最开始我做了调整。步骤四是为了简化后面的计算过程,即先让机器人转回到0度角,再计算并转动机器人以朝向目标点。实际上也并非必须有步骤四,也可以通过计算,使得机器人一次性直接朝向目标,而不需要先让机器人转回到0度角。但我不确定如果这样描述,而没有给出(不含步骤四的)具体计算方法,是否对专利的授权产生不利影响。
进一步,步骤一中,所述ROS坐标系的构建,包括:
使用任何能正确反映真实的全局位置的坐标系作为世界坐标系,在ROS机器人最开始启动的时候,地图坐标系与里程计里程计坐标系重合;机器人开始启动时候朝向的方向为X轴正方向,左边90度方向为Y轴正方向,正上方为Z轴正方向,使用世界坐标系中的坐标作为目标点以及机器人的出发位置。
进一步,步骤二中,所述机器人方向角的确定,包括:
通过使用ROS的TF监听地图坐标系,获得机器人当前的航向弧度值,并将所述机器人当前的航向弧度值转换成角度AngleYAW。获取的航向角AngleYAW,在和X轴正方向重合的情况下为0度,从0度角向左旋转AngleYAW变为正值,向右旋转AngleYAW为负值。正值范围为0至180度,负值范围为0至-180度。
进一步,步骤三中,所述通过使用ROS的TF监听,获得机器人在地图坐标系的当前坐标位置,并作为机器人出发点的坐标,包括:
设机器人出发点为Pstart其坐标为(xstart,ystart),机器人需要移动的目标点为Pobj其坐标为(xobj,yobj)。让
Figure BDA0003015798210000041
代表Pstart和Pobj两点Y轴坐标相差的绝对值,
Figure BDA0003015798210000042
代表Pstart和Pobj两点X轴坐标相差的绝对值,即:
Figure BDA0003015798210000043
Figure BDA0003015798210000044
Pstart和Pobj两点之间的距离定义为
Figure BDA0003015798210000045
可以得到:
Figure BDA0003015798210000046
进一步,计算并继续调整机器人的角度,使得机器人的航向指向目标点,包括:按照地图坐标系的Y轴正负方向以及X轴的正负方向将其定义为上下左右四个方向,通过以下方法计算并继续调整机器人的角度,使得机器人的航向指向目标点;根据出发点Pstart和目标点Pobj在地图坐标系上的相互位置关系,分为以下四种情况:
(1)当目标点Pobj的坐标位置在出发点Pstart的右上方或正右方,定义
Figure BDA00030157982100000410
为Pstart和Pobj连线,与经过Pstart且与X轴平行的直线之间所夹锐角;通过反三角函数计算该角度:
Figure BDA0003015798210000047
机器人需要向左转动角度
Figure BDA0003015798210000048
其中,若Pobj在Pstart的正右方,即yobj=ystart,xobj>xstart,通过等式(1)计算可以得
Figure BDA0003015798210000049
(2)当目标点Pobj在出发点Pstart的右下方或正下方;按照等式(1)计算Pstart和Pobj连线,与经过Pstart且与X轴平行的直线之间所夹锐角
Figure BDA0003015798210000051
机器人需要向右转动角度
Figure BDA0003015798210000052
其中,若Pobj在Pstart的正下方,即xobj=xstart,yobj<ystart,通过等式(1)可以计算得到
Figure BDA0003015798210000053
(3)当目标点Pobj的坐标位置在出发点Pstart的左下方或正下方;定义
Figure BDA0003015798210000054
为Pstart和Pobj连线,与经过且与Y轴平行的直线之间所夹锐角;通过反三角函数计算该角度:
Figure BDA0003015798210000055
机器人需要向右转动角度
Figure BDA0003015798210000056
其中,若Pobj在Pstart的正下方,即xobj=xstart,yobj<ystart,通过等式(2)可以计算得到
Figure BDA0003015798210000057
(4)当目标点Pobj的坐标位置在出发点Pstart的左上方或正左方;定义
Figure BDA0003015798210000058
为Pstart和Pobj连线,与经过Pstart且与Y轴平行的直线所夹锐角;通过反三角函数计算该角度:
Figure BDA0003015798210000059
机器人需要向左转动角度
Figure BDA00030157982100000510
其中,若Pobj在Pstart的正左方,即yobj=ystart,xobj<xstart,通过等式(3)可以计算得到
Figure BDA00030157982100000511
进一步,所述移动机器人直接导航移动到指目标点的方法,还包括:
如果Pstart和Pobj之间有障碍物的情况下,可以将目标点分拆为多个目标点,比如,将一个目标点Pobj分拆为多个目标点
Figure BDA0003015798210000061
然后按照目标点序列逐个到达,拆分之后使得各个相邻目标点之间无障碍物机器人可以直接到达,对各个拆分后的目标点仍然分别适用本发明方法进行单次计算并移动,最终完成所有目标点移动的过程。
如果由于机器人转向精度和行进距离的不准确,引起机器人移动之后的位置距离目标点实际位置超过阈值,则可以再次通过ROS的TF监听获取机器人移动之后的所在位置点
Figure BDA0003015798210000062
的坐标
Figure BDA0003015798210000063
设置阈值ΘX和ΘY,当
Figure BDA0003015798210000064
或是
Figure BDA0003015798210000065
即机器人的位置没有落入以目标点(xobj,yobj)为中心,宽2ΘX高2ΘY的矩形区域,则可以重复上述各步骤,以移动机器人到离目标点更近的位置。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
ROS坐标系的构建;
机器人方向角的确定;
通过使用ROS的TF监听,获得机器人在地图坐标系的当前坐标位置,并作为机器人出发点的坐标;
让机器人航向回到0度角,即与X轴正向重合;
计算并继续调整机器人的角度,使得机器人的航向指向目标点;
设置机器人需要前进的距离
Figure BDA0003015798210000066
并完成移动;
通过Pstart和Pobj的连线,与经过这两点且与坐标轴平行的直线所围成的三角形,通过不同形式的反三角函数进行计算,得到
Figure BDA0003015798210000067
以及
Figure BDA0003015798210000068
在机器人没有转向精度与移动距离误差,并在Pstart和Pobj之间没有障碍物的情况下,机器人通过进行单次计算并移动,准确到达指定目标点。
如果Pstart和Pobj之间有障碍物的情况下,可以将目标点分拆为多个目标点,拆分之后使得各个相邻目标点之间无障碍物机器人可以直接到达,对各个拆分后的目标点仍然分别适用本发明方法进行单次计算并移动,最终完成所有目标点移动的过程。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的移动机器人直接导航移动到指目标点的方法。
本发明的另一目的在于提供一种应用所述的移动机器人直接导航移动到指目标点的方法的基于ROS的移动机器人直接导航移动到指目标点的系统,所述基于ROS的移动机器人直接导航移动到指目标点的系统包括:
坐标系构建模块,用于进行ROS坐标系的构建;
方向角确定模块,用于进行机器人方向角的确定;
坐标位置获取模块,用于通过使用ROS的TF监听,获得机器人在地图坐标系的当前坐标位置,并作为机器人出发点的坐标;
正向重合模块,用于将机器人航向回到0度角,即与X轴正向重合;
角度调整模块,用于计算并继续调整机器人的角度,使得机器人的航向指向目标点;
前进距离设置模块,用于设置机器人需要前进的距离
Figure BDA0003015798210000071
并完成移动;
计算模块,用于通过Pstart和Pobj的连线,与经过这两点且与坐标轴平行的直线所围成的三角形,通过不同形式的反三角函数进行计算,得到
Figure BDA0003015798210000072
Figure BDA0003015798210000073
以及
Figure BDA0003015798210000074
指定目标点到达模块,用于在机器人没有转向精度与移动距离误差,并在Pstart和Pobj之间没有障碍物的情况下,机器人通过进行单次计算并移动,即可准确到达指定目标点。
本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施所述的移动机器人直接导航移动到指目标点的方法。
本发明的另一目的在于提供一种计算机可读存储介质,储存有指令,当所述指令在计算机上运行时,使得计算机执行所述的移动机器人直接导航移动到指目标点的方法。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的移动机器人直接导航移动到指目标点的方法,能够使得ROS机器人在向目标点移动的过程中,方向调整和移动距离的计算可以一次性完成。计算能够直接在世界坐标系中进行,可以不需要将目标点的位置通过TF变换到机器人的基坐标系。本发明不需要频繁的读取、更新目标点在机器人基坐标系中的位置,也不需要反复计算并不断调整机器人的航向,节省了大量硬件资源以及计算开销,并能够使得机器人能更快的到达指定目标点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的移动机器人直接导航移动到指目标点的方法流程图。
图2是本发明实施例提供的基于ROS的移动机器人直接导航移动到指目标点的系统结构框图;
图中:1、坐标系构建模块;2、方向角确定模块;3、坐标位置获取模块;4、正向重合模块;5、角度调整模块;6、前进距离设置模块;7、计算模块;8、指定目标点到达模块。
图3是本发明实施例提供的当AngleYAW>0的情况示意图。
图4是本发明实施例提供的当AngleYAW<0的情况示意图。
图5是本发明实施例提供的目标点Pobj的坐标位置在出发点Pstart的右上方或正右方,对应第0点的示意图。
图6是本发明实施例提供的目标点Pobj在出发点Pstart的右下方或正下方,对应第点的示意图。
图7是本发明实施例提供的目标点Pobj的坐标位置在出发点Pstart的左下方或正下方,对应第0点的示意图。
图8是本发明实施例提供的目标点Pobj的坐标位置在出发点Pstart的左上方或正左方,对应第0点的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明做出进一步的详细说明。本方案根据机器人当前在全局地图中的坐标位置和方向角度,通过机器人的当前位置与目标位置的相互关系,一次性计算出需要转动的角度和需要移动的距离,使得机器人的方向角径直朝向目标点,并直接移动到指定目标点。
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明,也不仅仅局限于采用ROS的机器人。本方案实施方法可以适用于任何能够获取当前位置和方向角度的机器人或者移动设备,通过类似的计算来获得其所需转动的角度,然后进行一次性的方向角调整,使其径直朝向目标点,并移动相应距离到达指定目标点。本发明具体实施方法可以应用在任何能体现位置关系的坐标系当中,通过各种不同形式的反三角函数计算所需要的转向角度,完成机器人直接导航移动至目标点的过程,并不局限于本方案中所提到的地图坐标系或者世界坐标系。
本技术方案也可以适用于多个目标点,比如目标点序列
Figure BDA0003015798210000101
即规划机器人先到达
Figure BDA0003015798210000102
然后再达到
Figure BDA0003015798210000103
以此类推,其中N可以是任何需要的自然数,即N个不同的目标点。对于其中每一个目标点的到达,可以重复采用本方案方法来实施。
本技术方案也可以适用于将一个目标点分拆为多个目标点的情况,比如将一个目标点Pobj分拆为多个目标点
Figure BDA0003015798210000104
然后按照目标点序列逐个到达,并最终到达Pobj完成整个移动的过程。将一个目标点拆分为多个目标以后,对于其中的任何一个目标点,仍然适用于本方案提出的方法进行计算和移动。此处所提出的拆分方法,其中的一个具体应用场景,可以适用于出发点和目标点中间有障碍物不能直接到达的情况,拆分之后使得各个相邻目标点之间无障碍物机器人可以直接到达,因而适用于本方案所提出的方法。
本发明通过ROS机器人为例,首先构建一个坐标系,并通过读取机器人在坐标系中的位置和方向角,计算并调整机器人的当前角度,使机器人的航向角直接朝向给定目标点,并移动相应距离到达目标点。
针对现有技术存在的问题,本发明提供了一种移动机器人直接导航移动到指目标点的方法、系统及应用,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的移动机器人直接导航移动到指目标点的方法包括以下步骤:
S101,ROS坐标系的构建;
S102,机器人方向角的确定;
S103,通过使用ROS的TF监听,获得机器人在地图坐标系的当前坐标位置,并作为机器人出发点的坐标;
S104,计算并调整机器人的角度,使得机器人的航向指向目标点;
S105,设置机器人需要前进的距离,并完成移动;
S106,通过Pstart和Pobj的连线,与经过这两点且与坐标轴平行的直线所围成的三角形,通过不同形式的反三角函数进行计算,得到机器人的转动角度;
S107,在机器人没有转向精度与移动距离误差,并在Pstart和Pobj之间没有障碍物的情况下,机器人通过进行单次计算并移动,即可准确到达指定目标点。
本发明提供的移动机器人直接导航移动到指目标点的方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的移动机器人直接导航移动到指目标点的方法仅仅是一个具体实施例而已。
如图2所示,本发明实施例提供的基于ROS的移动机器人直接导航移动到指目标点的系统包括:
坐标系构建模1,用于进行ROS坐标系的构建;
方向角确定模块2,用于进行机器人方向角的确定;
坐标位置获取模块3,用于通过使用ROS的TF监听,获得机器人在地图坐标系的当前坐标位置,并作为机器人出发点的坐标;
正向重合模块4,用于将机器人航向回到0度角,即与X轴正向重合;
角度调整模块5,用于计算并继续调整机器人的角度,使得机器人的航向指向目标点;
前进距离设置模块6,用于设置机器人需要前进的距离
Figure BDA0003015798210000111
并完成移动;
计算模块7,用于通过Pstart和Pobj的连线,与经过这两点且与坐标轴平行的直线所围成的三角形,通过不同形式的反三角函数进行计算,得到
Figure BDA0003015798210000112
Figure BDA0003015798210000113
以及
Figure BDA0003015798210000114
指定目标点到达模块8,用于在机器人没有转向精度与移动距离误差,并在Pstart和Pobj之间没有障碍物的情况下,机器人通过进行单次计算并移动,即可准确到达指定目标点。
下面结合实施例对本发明的技术方案作进一步的描述。
1、移动机器人在移动过程中,需要频繁在地图上的两点之间(即出发点和目标点)进行移动。本发明提供了一种将基于ROS的移动机器人直接移动到指定目标点的方法,该方法使得ROS机器人在向目标点移动的过程中,方向调整和移动距离的计算可以一次性完成。计算可以直接在世界坐标系中进行,不需要将目标点在世界坐标系中的位置通过TF变换到机器人的基坐标系,也不需要频繁的读取、更新目标点在基坐标系中的位置,也不需要反复计算并不断调整机器人的航向,节省了大量硬件资源以及计算开销,并且使得机器人能够更迅速的到达指定目标点。
2、ROS的坐标系
本发明可以使用任何一个能正确反映真实的全局位置的坐标系作为本发明的世界坐标系,比如地图(map)坐标系。在ROS机器人最开始启动的时候,地图坐标系与里程计里程计坐标系重合。机器人开始启动时候朝向的方向为X轴正方向,其左边90度方向为Y轴正方向,正上方为Z轴正方向。本发明使用世界坐标系中的坐标作为本发明的目标点以及机器人的出发位置。后面本发明为了方便描述,使用了地图坐标系作为本发明的世界坐标系。在实际使用当中,可以使用任何一个能正确反映真实全局地图的坐标系替换地图坐标系来作为世界坐标系。
3、机器人的方向角
通过使用ROS的TF监听地图坐标系,以获得机器人当前的航向弧度值,并将其转换成角度AngleYAW。获取的航向角AngleYAW,在和X轴正方向重合的情况下为0度,从0度角向左旋转AngleYAW变为正值,向右旋转AngleYAW为负值。正值范围为0至180度,负值范围为0至-180度。
4、通过使用ROS的TF监听,获得机器人在地图坐标系的当前坐标位置,并作为机器人出发点的坐标。设机器人出发点为Pstart其坐标为(xstart,ystart),机器人需要移动的目标点为Pobj其坐标为(xobj,yobj)。让
Figure BDA0003015798210000131
代表Pstart和Pobj两点Y轴坐标相差的绝对值,
Figure BDA0003015798210000132
代表Pstart和Pobj两点X轴坐标相差的绝对值,即:
Figure BDA0003015798210000133
Figure BDA0003015798210000134
Pstart和Pobj两点之间的距离定义为
Figure BDA0003015798210000135
可以得到:
Figure BDA0003015798210000136
5、让机器人航向回到0度角(X轴正向重合)
通过从TF监听获取的航向角度AngleYAW的正负号,可以判定机器人当前的航向是在0度角的左方还是右方。
如果AngleYAW>0,机器人应向右旋转角度AngleYAW,如图3所示。
如果AngleYAW<0,机器人应向左旋转角度AngleYAW,如图4所示。
6、第5步已经让机器人的航向回到0度角,即和X轴正方向重合。按照地图坐标系的Y轴正负方向以及X轴的正负方向将其定义为上下左右四个方向。通过以下方法计算并继续调整机器人的角度,使得机器人的航向指向目标点。根据出发点Pstart和目标点Pobj在地图坐标系上的相互位置关系,分为以下四种情况。
7、当目标点Pobj的坐标位置在出发点Pstart的右上方或正右方,如图5所示。定义
Figure BDA0003015798210000137
为Pstart和Pobj连线,与经过Pstart且与X轴平行的直线之间所夹锐角。通过反三角函数计算该角度:
Figure BDA0003015798210000138
机器人需要向左转动角度
Figure BDA0003015798210000141
其中,若Pobj在Pstart的正右方,即yobj=ystart,xobj>xstart,通过等式(1)计算可以得
Figure BDA0003015798210000142
8、当目标点Pobj在出发点Pstart的右下方或正下方,如图6所示。按照等式(1)计算Pstart和Pobj连线,与经过Pstart且与X轴平行的直线之间所夹锐角
Figure BDA0003015798210000143
机器人需要向右转动角度
Figure BDA0003015798210000144
其中,若Pobj在Pstart的正下方,即xobj=xstart,yobj<ystart,通过等式(1)可以计算得到
Figure BDA0003015798210000145
9、当目标点Pobj的坐标位置在出发点Pstart的左下方或正下方,如图7所示。定义
Figure BDA0003015798210000146
为Pstart和Pobj连线,与经过且与Y轴平行的直线之间所夹锐角。通过反三角函数计算该角度:
Figure BDA0003015798210000147
机器人需要向右转动角度
Figure BDA0003015798210000148
其中,若Pobj在Pstart的正下方,即xobj=xstart,yobj<ystart,通过等式(2)可以计算得到
Figure BDA0003015798210000149
10、当目标点Pobj的坐标位置在出发点Pstart的左上方或正左方,如图8所示。定义
Figure BDA00030157982100001410
为Pstart和Pobj连线,与经过Pstart且与Y轴平行的直线所夹锐角。通过反三角函数计算该角度:
Figure BDA00030157982100001411
机器人需要向左转动角度
Figure BDA00030157982100001412
其中,若Pobj在Pstart的正左方,即yobj=ystart,xobj<xstart,通过等式(3)可以计算得到
Figure BDA0003015798210000151
11、设置机器人需要前进的距离
Figure BDA0003015798210000152
并完成移动。
12、前面所述方法中的
Figure BDA0003015798210000153
以及
Figure BDA0003015798210000154
均可以通过Pstart和Pobj的连线,与经过这两点且与坐标轴平行的直线所围成的三角形,通过不同形式的反三角函数进行计算。
13、在机器人没有转向精度与移动距离误差,并在Pstart和Pobj之间没有障碍物的情况下,机器人通过上述步骤进行单次计算并移动就能够准确到达指定目标点。
14、如果由于机器人转向精度和行进距离的不准确,引起机器人移动之后的位置距离目标点实际位置超过阈值,则可以再次通过ROS的TF监听获取机器人移动之后的所在位置点
Figure BDA0003015798210000155
的坐标
Figure BDA0003015798210000156
设置阈值ΘX和ΘY,当
Figure BDA0003015798210000157
或是
Figure BDA0003015798210000158
即机器人的位置没有落入以目标点(xobj,yobj)为中心,宽2ΘX高2ΘY的矩形区域,则可以重复上述各步骤,以移动机器人到离目标点更近的位置。
15、如果Pstart和Pobj之间有障碍物的情况下,可以将目标点分拆为多个目标点,比如,将一个目标点Pobj分拆为多个目标点
Figure BDA0003015798210000159
然后按照目标点序列逐个到达,拆分之后使得各个相邻目标点之间无障碍物机器人可以直接到达,对各个拆分后的目标点仍然分别适用本发明方法进行单次计算并移动,最终完成对所有目标点移动的过程。
本技术方案通过实验证明,在移动机器人平台上能够一次性的完成计算、转向、移动并到达指定目标点。本技术方案相对于现有的方法,在机器人移动的过程中,不需要频繁的使用坐标变换来更新给定目标点在机器人基坐标系中的新坐标,也就不需要根据新坐标反复重新计算,也不再需要不断调整机器人的航向和移动距离。因此机器人在向目标点移动的速度更快,过程更流畅,占用计算资源更少。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。

Claims (9)

1.一种移动机器人直接导航移动到指目标点的方法,其特征在于,所述移动机器人直接导航移动到指目标点的方法包括:
ROS坐标系的构建;
机器人方向角的确定;
通过使用ROS的TF监听,获得机器人在地图坐标系(即世界坐标系)的当前坐标位置,并作为机器人出发点的坐标;
计算并调整机器人的角度,使得机器人的航向指向目标点;
设置机器人需要前进的距离
Figure FDA0003015798200000011
并完成移动;
通过Pstart和Pobj的连线,与经过这两点且与坐标轴平行的直线所围成的三角形,通过不同形式的反三角函数进行计算,得到
Figure FDA0003015798200000012
以及
Figure FDA0003015798200000013
在机器人没有转向精度与移动距离误差,并在Pstart和Pobj之间没有障碍物的情况下,机器人通过进行单次计算并移动,准确到达指定目标点。
2.如权利要求1所述的移动机器人直接导航移动到指目标点的方法,其特征在于,所述ROS坐标系的构建,包括:使用任何能正确反映真实的全局位置的坐标系作为世界坐标系,在ROS机器人最开始启动的时候,地图坐标系与里程计里程计坐标系重合;机器人刚开始启动时候的方向作为X轴正方向,左边90度方向为Y轴正方向,正上方为Z轴正方向,使用世界坐标系中的坐标作为目标点以及机器人的出发位置。
3.如权利要求1所述的移动机器人直接导航移动到指目标点的方法,其特征在于,所述机器人方向角的确定,包括:通过使用ROS的TF监听地图坐标系,获得机器人当前的航向弧度值,并将所述机器人当前的航向弧度值转换成角度AngleYAW;获取的航向角AngleYAW,在和X轴正方向重合的情况下为0度,从0度角向左旋转AngleYAW变为正值,向右旋转AngleYAW为负值;正值范围为0至180度,负值范围为0至-180度。
4.如权利要求1所述的移动机器人直接导航移动到指目标点的方法,其特征在于,所述通过使用ROS的TF监听,获得机器人在地图坐标系的当前坐标位置,并作为机器人出发点的坐标,包括:设机器人出发点为Pstart其坐标为(xstart,ystart),机器人需要移动的目标点为Pobj其坐标为(xobj,yobj);让
Figure FDA0003015798200000021
代表Pstart和Pobj两点Y轴坐标相差的绝对值,
Figure FDA0003015798200000022
代表Pstart和Pobj两点X轴坐标相差的绝对值,即:
Figure FDA0003015798200000023
Figure FDA0003015798200000024
Pstart和Pobj两点之间的距离定义为
Figure FDA0003015798200000025
可以得到:
Figure FDA0003015798200000026
5.如权利要求1所述的移动机器人直接导航移动到指目标点的方法,其特征在于,首先让机器人航向回到0度角,即与X轴正向重合,包括:通过从TF监听获取的航向角度AngleYAW的正负号,可以判定机器人当前的航向是在0度角的左方还是右方;
如果AngleYAW>0,机器人应向右旋转角度AngleYAW
如果AngleYAW<0,机器人应向左旋转角度AngleYAW
计算并继续调整机器人的角度,使得机器人的航向指向目标点,包括:在机器人的航向回到0度角,即和X轴正方向重合后,按照地图坐标系的Y轴正负方向以及X轴的正负方向将其定义为上下左右四个方向,通过以下方法计算并继续调整机器人的角度,使得机器人的航向指向目标点;根据出发点Pstart和目标点Pobj在地图坐标系上的相互位置关系,分为以下四种情况:
(1)当目标点Pobj的坐标位置在出发点Pstart的右上方或正右方,定义
Figure FDA0003015798200000031
为Pstart和Pobj连线,与经过Pstart且与X轴平行的直线之间所夹锐角;通过反三角函数计算该角度:
Figure FDA0003015798200000032
机器人需要向左转动角度
Figure FDA0003015798200000033
其中,若Pobj在Pstart的正右方,即yobj=ystart,xobj>xstart,通过等式(1)计算可以得
Figure FDA0003015798200000034
(2)当目标点Pobj在出发点Pstart的右下方或正下方;按照等式(1)计算Pstart和Pobj连线,与经过Pstart且与X轴平行的直线之间所夹锐角
Figure FDA0003015798200000035
机器人需要向右转动角度
Figure FDA0003015798200000036
其中,若Pobj在Pstart的正下方,即xobj=xstart,yobj<ystart,通过等式(1)可以计算得到
Figure FDA0003015798200000037
(3)当目标点Pobj的坐标位置在出发点Pstart的左下方或正下方;定义
Figure FDA0003015798200000038
为Pstart和Pobj连线,与经过且与Y轴平行的直线之间所夹锐角;通过反三角函数计算该角度:
Figure FDA0003015798200000039
机器人需要向右转动角度
Figure FDA00030157982000000310
其中,若Pobj在Pstart的正下方,即xobj=xstart,yobj<ystart,通过等式(2)可以计算得到
Figure FDA00030157982000000311
(4)当目标点Pobj的坐标位置在出发点Pstart的左上方或正左方;定义
Figure FDA0003015798200000041
为Pstart和Pobj连线,与经过Pstart且与Y轴平行的直线所夹锐角;通过反三角函数计算该角度:
Figure FDA0003015798200000042
机器人需要向左转动角度
Figure FDA0003015798200000043
其中,若Pobj在Pstart的正左方,即yobj=ystart,xobj<xstart,通过等式(3)可以计算得到
Figure FDA0003015798200000044
6.如权利要求1所述的移动机器人直接导航移动到指目标点的方法,其特征在于,所述移动机器人直接导航移动到指目标点的方法还包括:如果由于机器人转向精度和行进距离的不准确,引起机器人移动之后的位置距离目标点实际位置超过阈值,则可以再次通过ROS的TF监听获取机器人移动之后的所在位置点
Figure FDA0003015798200000045
的坐标
Figure FDA0003015798200000046
设置阈值ΘX和ΘY,当
Figure FDA0003015798200000047
或是
Figure FDA0003015798200000048
即机器人的位置没有落入以目标点(xobj,yobj)为中心,宽2ΘX高2ΘY的矩形区域,则可以重复上述各步骤,以移动机器人到离目标点更近的位置。
7.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
ROS坐标系的构建;
机器人方向角的确定;
通过使用ROS的TF监听,获得机器人在地图坐标系(即世界坐标系)的当前坐标位置,并作为机器人出发点的坐标;
计算并调整机器人的角度,使得机器人的航向指向目标点;
设置机器人需要前进的距离
Figure FDA0003015798200000051
并完成移动;
通过Pstart和Pobj的连线,与经过这两点且与坐标轴平行的直线所围成的三角形,通过不同形式的反三角函数进行计算,得到
Figure FDA0003015798200000052
以及
Figure FDA0003015798200000053
在机器人没有转向精度与移动距离误差,并在Pstart和Pobj之间没有障碍物的情况下,机器人通过进行单次计算并移动,准确到达指定目标点;
如果Pstart和Pobj之间有障碍物的情况下,可以将目标点分拆为多个目标点,拆分之后使得各个相邻目标点之间无障碍物机器人可以直接到达,对各个拆分后的目标点仍然分别适用本发明方法进行单次计算并移动,最终完成所有目标点移动的过程。
8.一种信息数据处理终端,其特征在于,所述信息数据处理终端用于实现权利要求1~6任意一项所述的移动机器人直接导航移动到指目标点的方法。
9.一种实施权利要求1~6任意一项所述的移动机器人直接导航移动到指目标点的方法的基于ROS的移动机器人直接导航移动到指目标点的系统,其特征在于,所述基于ROS的移动机器人直接导航移动到指目标点的系统包括:
坐标系构建模块,用于进行ROS坐标系的构建;
方向角确定模块,用于进行机器人方向角的确定;
坐标位置获取模块,用于通过使用ROS的TF监听,获得机器人在地图坐标系(即世界坐标系)的当前坐标位置,并作为机器人出发点的坐标;
角度调整模块,用于计算并调整机器人的当前角度,使得机器人的航向指向目标点;
前进距离设置模块,用于设置机器人需要前进的距离
Figure FDA0003015798200000054
并完成移动;
计算模块,用于通过Pstart和Pobj的连线,与经过这两点且与坐标轴平行的直线所围成的三角形,通过不同形式的反三角函数进行计算,得到
Figure FDA0003015798200000061
Figure FDA0003015798200000062
以及
Figure FDA0003015798200000063
指定目标点到达模块,用于在机器人没有转向精度与移动距离误差,并在Pstart和Pobj之间没有障碍物的情况下,机器人通过进行单次计算并移动,即可准确到达指定目标点;
如果Pstart和Pobj之间有障碍物的情况下,可以将目标点分拆为多个目标点,拆分之后使得各个相邻目标点之间无障碍物机器人可以直接到达,对各个拆分后的目标点仍然分别适用本发明方法进行单次计算并移动,最终完成对所有目标点移动的过程。
CN202110388051.6A 2021-04-12 2021-04-12 移动机器人直接导航移动到指目标点的方法、系统及应用 Active CN113282078B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110388051.6A CN113282078B (zh) 2021-04-12 2021-04-12 移动机器人直接导航移动到指目标点的方法、系统及应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110388051.6A CN113282078B (zh) 2021-04-12 2021-04-12 移动机器人直接导航移动到指目标点的方法、系统及应用

Publications (2)

Publication Number Publication Date
CN113282078A true CN113282078A (zh) 2021-08-20
CN113282078B CN113282078B (zh) 2022-11-11

Family

ID=77276597

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110388051.6A Active CN113282078B (zh) 2021-04-12 2021-04-12 移动机器人直接导航移动到指目标点的方法、系统及应用

Country Status (1)

Country Link
CN (1) CN113282078B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114001732A (zh) * 2021-10-28 2022-02-01 山东大学 一种移动机器人仿形内壁行走导航方法及系统
CN114305222A (zh) * 2021-12-23 2022-04-12 湖南格兰博智能科技有限责任公司 一种扫地机器人的偏航角检测方法及扫地机器人

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070060954A (ko) * 2005-12-09 2007-06-13 한국전자통신연구원 인공표식과 지역좌표계를 이용한 이동로봇의 환경지도 작성방법 및 이동 방법
CN101666649A (zh) * 2009-09-17 2010-03-10 华南农业大学 一种非360°探测机器人的定目标导航方法
US20100174422A1 (en) * 2009-01-08 2010-07-08 Jacobsen Stephen C Point And Go Navigation System And Method
CN107085429A (zh) * 2017-05-23 2017-08-22 西南大学 基于忆阻交叉阵列与q学习的机器人路径规划系统
CN108780320A (zh) * 2018-06-15 2018-11-09 深圳前海达闼云端智能科技有限公司 机器人运动控制方法、装置、存储介质及机器人
CN109163724A (zh) * 2018-09-07 2019-01-08 五邑大学 基于Turtlebot2机器人构建地图的多目标点自主导航方法
CN109189079A (zh) * 2018-11-05 2019-01-11 南京理工大学 基于gps定位的移动机器人导航控制方法
US20190291274A1 (en) * 2018-03-26 2019-09-26 Nidec Corporation Robot control apparatus, robot control method, and program
US20190308323A1 (en) * 2016-07-04 2019-10-10 Tinymobilerobots Aps Method for interactively providing waypoints to a mobile robot for use in the marking of a geometric figure on a ground surface
US20200009733A1 (en) * 2018-07-06 2020-01-09 Panasonic Intellectual Property Management Co., Ltd. Mobile robot and control method

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070060954A (ko) * 2005-12-09 2007-06-13 한국전자통신연구원 인공표식과 지역좌표계를 이용한 이동로봇의 환경지도 작성방법 및 이동 방법
US20100174422A1 (en) * 2009-01-08 2010-07-08 Jacobsen Stephen C Point And Go Navigation System And Method
CN101666649A (zh) * 2009-09-17 2010-03-10 华南农业大学 一种非360°探测机器人的定目标导航方法
US20190308323A1 (en) * 2016-07-04 2019-10-10 Tinymobilerobots Aps Method for interactively providing waypoints to a mobile robot for use in the marking of a geometric figure on a ground surface
CN107085429A (zh) * 2017-05-23 2017-08-22 西南大学 基于忆阻交叉阵列与q学习的机器人路径规划系统
US20190291274A1 (en) * 2018-03-26 2019-09-26 Nidec Corporation Robot control apparatus, robot control method, and program
CN108780320A (zh) * 2018-06-15 2018-11-09 深圳前海达闼云端智能科技有限公司 机器人运动控制方法、装置、存储介质及机器人
US20200009733A1 (en) * 2018-07-06 2020-01-09 Panasonic Intellectual Property Management Co., Ltd. Mobile robot and control method
CN109163724A (zh) * 2018-09-07 2019-01-08 五邑大学 基于Turtlebot2机器人构建地图的多目标点自主导航方法
CN109189079A (zh) * 2018-11-05 2019-01-11 南京理工大学 基于gps定位的移动机器人导航控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
吴登峰等: "一种未知环境下室内移动机器人路径规划新算法", 《机电工程》 *
宋莉等: "基于两点法的移动机器人局部路径规划算法", 《山东理工大学学报(自然科学版)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114001732A (zh) * 2021-10-28 2022-02-01 山东大学 一种移动机器人仿形内壁行走导航方法及系统
CN114305222A (zh) * 2021-12-23 2022-04-12 湖南格兰博智能科技有限责任公司 一种扫地机器人的偏航角检测方法及扫地机器人
CN114305222B (zh) * 2021-12-23 2022-12-06 湖南格兰博智能科技有限责任公司 一种扫地机器人的偏航角检测方法及扫地机器人

Also Published As

Publication number Publication date
CN113282078B (zh) 2022-11-11

Similar Documents

Publication Publication Date Title
CN108444482B (zh) 一种无人机自主寻路避障方法及系统
CN110561423B (zh) 位姿变换的方法、机器人及存储介质
CN110579738B (zh) 运动目标方向角获取方法及终端设备
CN109974727B (zh) 一种机器人充电方法、装置及机器人
CN113282078B (zh) 移动机器人直接导航移动到指目标点的方法、系统及应用
CN111209978B (zh) 三维视觉重定位方法、装置及计算设备、存储介质
CN110780285A (zh) 激光雷达与组合惯导的位姿标定方法、系统及介质
CN111813101B (zh) 机器人路径规划方法、装置、终端设备及存储介质
JP2020042024A (ja) レーザレーダの内部パラメータ精度検証方法とその装置、機器及び媒体
CN110471409B (zh) 机器人巡检方法、装置、计算机可读存储介质及机器人
CN112148033B (zh) 无人机航线的确定方法、装置、设备及存储介质
CN110926405B (zh) 一种基于单目视觉灭点检测的arv姿态测量方法
CN113295159B (zh) 端云融合的定位方法、装置和计算机可读存储介质
CN110909456A (zh) 一种建模方法、装置、终端设备及介质
CN113218380B (zh) 一种电子罗盘的校正方法、装置、电子设备及存储介质
CN112729349B (zh) 里程计在线标定的方法、装置、电子设备及存储介质
CN115290066A (zh) 一种误差校正方法、装置及移动设备
CN115388878A (zh) 一种地图构建方法、装置及终端设备
CN113689501A (zh) 一种基于收敛点的双机协同目标机定位跟踪控制方法
CN114061573A (zh) 地面无人车辆编队定位装置及方法
CN110595480A (zh) 一种导航方法、装置、设备和存储介质
CN112518744A (zh) 机器人轨迹规划方法、装置、机器人
CN111488419A (zh) 室内机器人地图的创建方法、装置、电子设备和存储介质
CN112966059B (zh) 针对定位数据的数据处理方法、装置、电子设备和介质
US11933615B2 (en) Estimated time of arrival calculating method and system and mobile machine using the same

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