一种控制方法、控制装置、机器人及存储介质与流程

文档序号:32657958发布日期:2022-12-23 22:24阅读:25来源:国知局
一种控制方法、控制装置、机器人及存储介质与流程

1.本技术属于机器人技术领域,尤其涉及一种控制方法、控制装置、机器人及计算机可读存储介质。


背景技术:

2.机器人的移动控制当前通常基于全局规划器及局部规划器而实现。在现有的局部规划器中,可配置到达最终导航的目标点时,机器人位姿的容忍误差范围,包括距离误差范围和朝向误差范围。可以理解,机器人的移动效果很大程度地依赖于对这两个误差范围的设置:若这两个误差范围设置过小,则可能导致机器人移动至目标点附近时因试图达到该误差范围而反复移动;若这两个误差范围设置过大,则可能导致机器人无法满足实际应用场景下的高精度指标要求。
3.综上,当前基于全局规划器及局部规划器对机器人的移动控制难以实现控制效率及控制精度的平衡。


技术实现要素:

4.本技术提供了一种控制方法、控制装置、机器人及计算机可读存储介质,可在控制机器人移动时,实现控制效率及控制精度的平衡。
5.第一方面,本技术提供了一种控制方法,控制方法应用于机器人,控制方法包括:
6.在机器人基于全局规划器及局部规划器的控制向目标点移动的过程中,若机器人的粗糙实时位姿满足预设的位姿条件,则控制机器人平移移动,其中,位姿条件根据预设的粗糙目标位姿而设定,粗糙目标位姿为:机器人在目标点示教时粗糙的目标位姿;
7.在机器人平移移动的过程中,若机器人的精准实时位姿满足预设的距离条件,则控制机器人由平移移动变更为旋转移动,其中,距离条件根据计算的精准目标位姿而设定,精准目标位姿为:机器人在目标点示教时精准的目标位姿;
8.在机器人旋转移动的过程中,若机器人的精准实时位姿满足预设的第一朝向条件,则确定机器人完成移动任务,其中,第一朝向条件根据精准目标位姿而设定。
9.第二方面,本技术提供了一种控制装置,控制装置应用于机器人,控制装置包括:
10.第一控制模块,用于在机器人基于全局规划器及局部规划器的控制向目标点移动的过程中,若机器人的粗糙实时位姿满足预设的位姿条件,则控制机器人平移移动,其中,位姿条件根据预设的粗糙目标位姿而设定,粗糙目标位姿为:机器人在目标点示教时粗糙的目标位姿;
11.第二控制模块,用于在机器人平移移动的过程中,若机器人的精准实时位姿满足预设的距离条件,则控制机器人由平移移动变更为旋转移动,其中,距离条件根据计算的精准目标位姿而设定,精准目标位姿为:机器人在目标点示教时精准的目标位姿;
12.确定模块,用于在机器人旋转移动的过程中,若机器人的精准实时位姿满足预设的第一朝向条件,则确定机器人完成移动任务,其中,第一朝向条件根据精准目标位姿而设
定。
13.第三方面,本技术提供了一种机器人,该机器人包括存储器、处理器以及存储在该存储器中并可在该处理器上运行的计算机程序,该处理器执行该计算机程序时实现如该第一方面的方法的步骤。
14.第四方面,本技术提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如该第一方面的方法的步骤。
15.第五方面,本技术提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被一个或多个处理器执行时实现如该第一方面的方法的步骤。
16.本技术与现有技术相比存在的有益效果是:本技术方案考虑到机器人的全局规划器及局部规划器当前所存在的问题,仅依赖其进行初步的移动控制。机器人一旦监测到其自身已经较为接近示教时的粗糙目标位姿,就会进入相对更精准的控制阶段。该相对更精准的控制阶段可初步划分为先后两个不同的子阶段,分别为:平移控制子阶段及旋转控制子阶段。特别注意的是,在平移控制子阶段及旋转控制子阶段时,机器人将以自身的精准实时位姿及精准目标位姿为控制依据进行控制。可以理解,在平移控制子阶段,机器人仅进行平移,其朝向不发生改变,这可使得机器人逐渐接近目标点;当机器人已处于目标点时,机器人转入旋转控制子阶段,仅进行旋转,其位置不发生改变,这可使得机器人在该目标点处达到示教时的精准朝向。通过上述过程,可帮助机器人及早完成其移动任务,实现控制效率及控制精度的平衡。
17.可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
18.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1是本技术实施例提供的控制方法的实现流程示意图;
20.图2是本技术实施例提供的控制装置的结构框图;
21.图3是本技术实施例提供的机器人的结构示意图。
具体实施方式
22.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
23.为了说明本技术所提出的技术方案,下面通过具体实施例来进行说明。
24.请参阅图1,下面对本技术实施例所提出的控制方法作出说明。请参阅图1,该控制方法的实现流程详述如下:
25.步骤101,在机器人基于全局规划器及局部规划器的控制向目标点移动的过程中,
若机器人的粗糙实时位姿满足预设的位姿条件,则控制机器人平移移动。
26.机器人可预先根据用户的需求,通过用户主动放置的方式或其它方式到达给定的某一点处进行示教操作。顾名思义,在进行示教操作时,该机器人的位姿(也即位置及朝向)为目标位姿,也即用户后续进行移动任务时所期望的位姿。基于此,为保障后续的移动任务的顺利执行,机器人在进行示教操作时,在接收到位姿记录指令后,可获取自身的位姿并予以记录。仅作为示例,该位姿记录指令可由用户通过与该机器人相连的客户端向该客户端发出,此处不作限定。考虑到机器人的定位系统在进行实时定位时,存在定位误差的跳动,因而认为本次记录的位姿相对来说较为粗糙,可将该位姿记作粗糙目标位姿。也即,该粗糙目标位姿为:机器人在目标点示教时粗糙的目标位姿。
27.除此之外,机器人在进行示教操作时,在接收到位姿记录指令后,机器人也可通过其自身所搭载的探测设备获取自身所处环境的点云数据。仅作为示例,该探测设备可以是三维激光雷达等,本技术实施例不对该探测设备的具体类型作出限定。为便于后续说明,可将该点云数据记作示教点云数据。该示教点云数据可在后续用于对精准的目标位姿的求解。需要注意的是,由于机器人往往是在静止的状态下进行示教操作,因而在获取到示教点云数据后,机器人可省略点云去畸变的操作。
28.机器人基于示教时所记录的粗糙目标位姿,可预先在其局部规划器中设定一位姿条件;也即,该位姿条件根据该粗糙目标位姿而设定。机器人在接收到针对移动任务的开始指令后,其全局规划器及局部规划器即被触发启动,由此实现对机器人的初步的移动控制,直至满足该位姿条件,具体过程简述如下:
29.全局规划器负责全局路径的规划,同时引导局部规划器的运动趋势;局部规划器在全局路径的引领下,进行实时高频的轨迹规划,并向机器人的底盘下发速度控制指令,其中,该底盘具体可为全向移动底盘,且该底盘采用p控制器。可以理解为,全局规划器输出的全局路径是局部规划器的输入,局部规划器在全局路径的指引下负责控制机器人的启动、停止、动态障碍物停障及绕障等具体操作。在机器人基于全局规划器及局部规划器的控制向目标点移动的过程中,机器人保持通过定位系统对自身的实时定位。正如前文所描述的,定位系统的实时定位存在定位误差的跳动,因而可将机器人在该过程中的实时定位的结果记作粗糙实时位姿。当机器人的粗糙实时位姿满足局部规划器的位姿条件时,机器人可停止全局规划器及局部规划器的工作,进入精准控制阶段。其中,位姿条件包括:基于距离误差所设定的条件,以及基于朝向误差所设定的条件。
30.仅作为示例,位姿条件可以是:粗糙实时位姿所指示的位置与粗糙目标位姿所指示的位置之间的距离误差在15厘米之内,以及,粗糙实时位姿所指示的朝向与粗糙目标位姿所指示的朝向之间的朝向误差在30
°
之内。当然,也可根据实际情况的需求设定该位姿条件的具体取值,此处不作限定。
31.针对精准控制阶段,本技术实施例可将其划分为两个子阶段,分别为平移控制子阶段及旋转控制子阶段。具体地,平移控制子阶段在前,旋转控制子阶段在后。则在机器人的粗糙实时位姿满足位姿条件之后,机器人即可立即进入平移控制子阶段。
32.在平移控制子阶段内,机器人不变更其朝向。也即,在平移控制子阶段内,从控制的角度出发,机器人的平移移动具体为;直线平移移动。当然,考虑到摩擦力等因素,机器人在现实应用场景中的实际表现也有可能不是绝对的直线平移移动,而是近似于直线平移移
动,此处不再赘述。
33.步骤102,在机器人平移移动的过程中,若机器人的精准实时位姿满足预设的距离条件,则控制机器人由平移移动变更为旋转移动。
34.由前文描述可知,机器人是在其粗糙实时位姿接近粗糙目标位姿时,进入精准控制阶段;也即,在精准控制阶段内,机器人已经较为接近示教时的粗糙目标位姿。基于此,机器人为保障能够精准且高效的完成移动任务,其可在进入精准控制阶段后,更改或优化其实时定位的方式,以获得更加精准的实时位姿。为便于区分,可将机器人在该过程中的实时定位的结果记作精准实时位姿。
35.在获得的精准实时位姿的基础上,结合示教点云数据及当前采集到的点云数据,机器人可计算得到精准目标位姿。可以理解,该精准目标位姿指的是:机器人在目标点示教时精准的目标位姿。也即,虽然精准目标位姿及前文所提出的粗糙目标位姿均为机器人在目标点示教时的目标位姿,但二者的精确度存在区别,具体为:精准目标位姿相对而言精确度更高。
36.机器人在平移控制子阶段内,一开始还未获得精准目标位姿,机器人仅能按照粗糙目标位姿的指示,向粗糙目标位姿靠拢;一旦机器人获得了精准目标位姿,即可立即抛弃粗糙目标位姿,转而按照精准目标位姿的指示,向精准目标位姿靠拢。在向精准目标位姿靠拢的过程中,若机器人的精准实时位姿满足预设的距离条件,则认为机器人已到达目标点的位置,可控制机器人进入旋转控制子阶段,也即控制机器人由平移移动变更为旋转移动。需要注意的是,由于此时已计算得到了精准目标位姿,因而此处的距离条件具体可根据精准目标位姿而设定。
37.仅作为示例,该距离条件可以是:精准实时位姿所指示的位置与精准目标位姿所指示的位置之间的距离误差在1厘米之内。
38.可以理解,本步骤的位置条件与步骤101的位姿条件相比,是更进一步的对距离误差的约束,其目的是为了让机器人能够高精度还原示教时的位置。
39.步骤103,在机器人旋转移动的过程中,若机器人的精准实时位姿满足预设的第一朝向条件,则确定机器人完成移动任务。
40.机器人在旋转控制子阶段内,仅更改朝向,不更改位置。由于精准目标位姿已知,因而机器人只需根据该精准目标位姿更改自身的朝向,使得自身的朝向能够向该精准目标位姿所指示的朝向靠拢。当机器人的精准实时位姿满足预设的第一朝向条件时,机器人可停止对自身的控制,也即停止旋转。至此,机器人已完成其移动任务。需要注意的是,由于机器人在执行本步骤时,已计算得到了精准目标位姿,因而此处的第一朝向条件具体也可根据精准目标位姿而设定。
41.仅作为示例,该第一朝向条件可以是:精准实时位姿所指示的朝向与精准目标位姿所指示的朝向之间的朝向误差在0.5
°
之内。
42.可以理解,本步骤的第一朝向条件与步骤101的位姿条件相比,是更进一步的对朝向误差的约束,其目的是为了让机器人能够高精度的还原示教时的朝向。
43.在一些实施例中,精准控制阶段也可被划分为三个子阶段,分别为:第一个旋转控制子阶段,平移控制子阶段及第二个旋转控制子阶段。具体地,第一个旋转控制子阶段最先,第二个旋转控制子阶段最后。也即,机器人可以是在进入平移控制子阶段之前,先进行
小幅度的旋转控制,使其朝向相对初步的控制阶段结束时的朝向而言,能更靠拢粗糙目标位姿所指示的朝向;然后,进入平移控制子阶段,使其位置能够向精准目标位姿所指示的位置靠拢,最终实现位置的近似重合;最后,再次进入旋转控制子阶段,使其朝向能够向精准目标位姿所指示的朝向靠拢,最终实现朝向的近似重合。
44.基于以上描述,在机器人的粗糙实时位姿满足位姿条件的情况下,在控制机器人平移移动之前,本技术实施例所提出的控制方法还可包括:控制机器人旋转移动。也即,先进入精准控制阶段的第一个旋转控制子阶段。
45.进入精准控制阶段后,机器人所得的定位结果就已经是精准实时位姿。并且,前文已描述了,精准目标位姿是要在精准实时位姿的基础上,结合示教点云数据及当前所采集的点云数据后所计算得到的。由于第一个旋转控制子阶段仅是小幅度的旋转控制,其控制时长较短,因而在该第一个旋转控制子阶段内,机器人很可能还未能计算出精准目标位姿。基于此,步骤101中的控制机器人平移移动的操作,具体可通过以下过程触发:在机器人旋转移动的过程中,若机器人的精准实时位姿满足预设的第二朝向条件,则控制机器人转入平移控制子阶段,也即控制机器人由旋转移动变更为平移移动。需要注意的是,考虑到在第一个旋转控制子阶段内,机器人很可能还未计算得到精准目标位姿,因而该第二朝向条件具体可根据粗糙目标位姿而设定。
46.仅作为示例,该第二朝向条件可以是:精准实时位姿所指示的朝向与粗糙目标位姿所指示的朝向之间的朝向误差在5
°
之内。
47.在一些实施例中,精准实时位姿具体可根据机器人的底盘数据计算得到,其过程可具体为:
48.在进入精准控制阶段时,记录机器人此时的第一位姿变换矩阵t_map_to_baselink_init。其中,该第一位姿变换矩阵t_map_to_baselink_init具体为:在精准控制阶段的初始状态下,位姿从底盘中心关节坐标系到地图坐标系的位姿变换矩阵;也即机器人在地图坐标系下的初始全局位姿变换矩阵。
49.在进入精准控制阶段时,记录机器人的里程计此时的第二位姿变换矩阵t_odom_to_baselink_init。其中,该第二位姿变换矩阵t_odom_to_baselink_init具体为:在精准控制阶段的初始状态下,位姿从底盘中心关节坐标系到底盘里程计坐标系的位姿变换矩阵;也即底盘的里程计初始位姿变换矩阵。
50.在精准控制阶段的过程中,机器人可实时获取第三位姿变换矩阵t_odom_to_baselink_current。其中,该第三位姿变换矩阵t_odom_to_baselink_current具体为:在精准控制阶段的运行过程中,位姿从底盘中心关节坐标系到底盘里程计坐标系的实时的位姿变换矩阵;也即底盘的里程计实时位姿变换矩阵。
51.基于以上第一位姿变换矩阵、第二位姿变换矩阵及第三位姿变换矩阵,可计算得到机器人的第四位姿变换矩阵t_map_to_baselink_current,该第四位姿变换矩阵t_map_to_baselink_current具体为:在精准控制阶段的运行过程中,位姿从底盘中心关节坐标系到地图坐标系的实时的位姿变换矩阵;也即机器人在地图坐标系下的实时全局位姿变换矩阵。具体地,计算过程如下所示:
52.t_map_to_baselink_current=
53.t_map_to_baselink_init*t_odom_to_baselink_init.inverse()*t_odom_to_
baselink_current
54.其中,inverse()函数代表矩阵的逆。
55.可以理解,第四位姿变换矩阵t_map_to_baselink_current可用于提供机器人的精准实时位姿。
56.在一些实施例中,机器人不管是在初步的控制阶段后直接进入平移控制子阶段,还是机器人由第一个旋转控制子阶段转入平移控制子阶段,控制机器人平移移动(或者控制机器人由旋转移动变更为平移移动)的过程具体可包括:
57.a1、根据预设的粗糙目标位姿,控制机器人向目标点平移移动。
58.正如前文所描述的,在该平移控制子阶段,机器人一开始还并未计算得到精准目标位姿,因而其仅能根据预设的粗糙目标位姿控制机器人向目标点平移移动。
59.a2、在根据粗糙目标位姿,控制机器人向目标点平移移动的过程中,根据机器人的精准实时位姿及预设的示教点云数据,计算精准目标位姿。
60.在根据粗糙目标位姿,控制机器人向目标点平移移动的过程中,机器人通过精准实时位姿及点云数据的结合,可计算得到精准目标位姿,其过程详述如下:
61.首先,机器人采集获得当前点云数据,其中,该采集时机可以是:进入平移控制子阶段时(也即第一个旋转控制子阶段结束时,或者初步的控制阶段结束时)。
62.然后,机器人对当前点云数据与示教点云数据进行点云配准,得到第五位姿变换矩阵t_lidar_to_lidargoal,也即点云匹配的位姿变换矩阵。仅作为示例,机器人可采用一致性点漂移算法(cpd,coherent point drift),且该点云配准的操作可在一新建的独立线程中运行。
63.最后,根据机器人的精准实时位姿及点云配准的结果计算精准目标位姿。其中,点云配准的结果是第五位姿变换矩阵t_lidar_to_lidargoal。以及,时机器人还可获取此时机器人的精准实时位姿,也即机器人在地图坐标系下的全局位姿变换矩阵t_map_to_baselink,该全局位姿变换矩阵t_map_to_baselink的计算过程在前文已有介绍,此处不再赘述。除此之外,由于机器人的雷达及机器人的底盘之间的位置关系是已知的,因而第六位姿变换矩阵t_baselink_to_lidar对机器人而言也是已知的。基于此,第七位姿矩阵t_map_to_goal,也即通过点云配准所得的目标点的全局变换矩阵可由下式计算而得:
64.t_map_to_goal=
65.t_map_to_baselink*t_baselink_to_lidar*t_lidar_to_lidargoal*t_baselink_to_lidar.inverse()
66.其中,inverse()函数代表矩阵的逆。
67.可以理解,第七位姿矩阵t_map_to_goal可用于提供机器人示教时的精准目标位姿。
68.需要注意的是,上文所示出的各个位姿变换矩阵t_a_to_b,均表示的是a坐标系下b坐标系的位姿,也即b坐标系变换到a坐标系的位姿变换矩阵。
69.a3、在计算得到精准目标位姿后,根据精准目标位姿,控制机器人向目标点平移移动。
70.机器人在得到精准目标位姿后,就不再根据粗糙目标位姿控制自身平移移动,而是根据精准目标位姿控制自身平移移动。可以理解,在得到精准目标位姿时,机器人应处于
平移控制子阶段中,且该平移控制子阶段应还未结束。具体地,机器人可预先设定一状态标志位。在点云匹配未出结果时,状态标志位为预设的第一值,机器人根据该状态标志位,使用粗糙目标位姿进行平移控制;在点云匹配已出结果时,机器人将状态标志位由预设的第一值变更为预设的第二值,机器人根据该状态标志位,使用精准目标位姿进行平移控制。通过该状态标志位,机器人可提前向粗糙的目标点的位置移动,使得控制时间能够不被浪费。
71.在一些实施例中,不管是精准目标位姿还是粗糙目标位姿,机器人均可通过向底盘发送速度控制指令来控制自身向目标点进行平移移动。为便于说明,将机器人平移移动时所期望的位姿记作目标位姿,则平移移动的过程具体包括:
72.b1、根据机器人的精准实时位姿及目标位姿,计算目标点与机器人的实时距离误差。
73.具体地,实时距离误差的计算公式如下所示:
[0074][0075]
其中,dis_error为实时距离误差;goal_pose.x是目标位姿所指示的横坐标;goal_pose.y是目标位姿所指示的纵坐标;robot_pose.x是机器人的精准实时位姿所指示的横坐标;robot_pose.y是机器人的精准实时位姿所指示的横坐标。
[0076]
b2、根据机器人的精准实时位姿及目标位姿,计算指定朝向与机器人的朝向的第一实时角度误差。
[0077]
指定朝向指的是:从机器人的精准实时位姿所指示的位置指向目标位姿所指示的位置的方向。具体地,指定朝向的计算公式如下所示:
[0078]
theta_target=arctan(goal_pose.y-robot_pose.y,goal_pose.x-robot_pose.x)
[0079]
其中,theta_target为指定朝向对应的角度。
[0080]
具体地,第一实时角度误差的计算公式如下所示:
[0081]
theta_error=normalize_angle(theta_target-robot_pose.theta)
[0082]
其中,theta_error为第一实时角度误差;normalize_angle()是角度的归一化函数;robot_pose.theta是机器人的精准实时位姿所指示的朝向对应的角度。
[0083]
b3、根据实时距离误差及第一实时角度误差,生成第一控制指令。
[0084]
第一控制指令包括:第一线速度控制参数,第二线速度控制参数及第一角速度控制参数。具体地,所生成的第一控制指令可如下所示:
[0085][0086]
其中,p_linear是平移控制的p控制器参数;cmd.linear.x为第一线速度控制参数,指的是平移控制子阶段,机器人在x轴方向上的线速度控制参数;cmd.linear.y为第二线速度控制参数,指的是平移控制子阶段,机器人在y轴方向上的线速度控制参数;cmd.angular.z为第一角速度控制参数,也即机器人在平移控制子阶段的角速度控制参数。
[0087]
b4、根据第一控制指令,控制机器人向目标点平移移动。
[0088]
机器人可将该第一控制指令下发给机器人的底盘的p控制器。p控制器接收到该第
一控制指令后,可对该第一控制指令进行解析,获知该第一控制指令所携带的各项控制参数,并根据该各项控制参数对机器人进行平移控制,使得机器人能够向目标点平移移动。
[0089]
需要注意的是,以上各坐标、各坐标轴及各角度的概念,均是以地图坐标系为基础而进行的描述。
[0090]
可以理解,在根据粗糙目标位姿,控制机器人向目标点平移移动的过程中,目标位姿具体指的是:粗糙目标位姿。在根据精准目标位姿,控制机器人向目标点平移移动的过程中,目标位姿具体指的是:精准目标位姿。
[0091]
在一些实施例中,不管是精准目标位姿还是粗糙目标位姿,机器人均可通过速度控制指令来控制自身在原地进行旋转移动。为便于说明,将机器人旋转移动时所期望的位姿记作目标位姿,则旋转移动的过程具体包括:
[0092]
c1、根据机器人的精准实时位姿及目标位姿,计算目标朝向与机器人的朝向的第二实时角度误差。
[0093]
目标朝向指的是:目标位姿所指示的朝向。
[0094]
具体地,第二实时角度误差的计算公式如下所示:
[0095]
goal_theta_error=normalize_angle(goal_pose.theta-robot_pose.theta)
[0096]
其中,goal_theta_error为第二实时角度误差;goal_pose.theta是目标朝向对应的角度,其它参数在前文已有释义,此处不再赘述。
[0097]
c2、根据第二实时角度误差,生成第二控制指令。
[0098]
第二控制指令包括:第三线速度控制参数,第四线速度控制参数及第二角速度控制参数。具体地,所生成的第二控制指令可如下所示:
[0099][0100]
其中,p_angular是平移控制的p控制器参数;cmd.linear.x为第三线速度控制参数,指的是旋转控制子阶段,机器人在x轴方向上的线速度控制参数;cmd.linear.y为第四线速度控制参数,指的是旋转控制子阶段,机器人在y轴方向上的线速度控制参数;cmd.angular.z为第二角速度控制参数,也即机器人在旋转控制子阶段的角速度控制参数。
[0101]
c3、根据第二控制指令,控制机器人旋转移动。
[0102]
机器人可将该第二控制指令下发给机器人的底盘的p控制器。p控制器接收到该第二控制指令后,可对该第二控制指令进行解析,获知该第二控制指令所携带的各项控制参数,并根据该各项控制参数对机器人进行旋转控制,使得机器人能够在原地旋转。
[0103]
需要注意的是,以上各坐标、各坐标轴及各角度的概念,均是以地图坐标系为基础而进行的描述。
[0104]
可以理解,在精准控制阶段仅划分有两个子阶段的情况下,机器人有且仅有一个旋转控制子阶段;在该一个旋转控制子阶段内,目标位姿具体指的是:精准目标位姿。在精准控制阶段划分有三个子阶段的情况下,机器人有两个旋转控制子阶段:若机器人处于第一个旋转控制子阶段,则目标位姿具体指的是:粗糙目标位姿;若机器人处于第二个旋转控制子阶段,则目标位姿具体指的是:精准目标位姿。
[0105]
由上可见,本技术实施例中,考虑到机器人的全局规划器及局部规划器当前所存在的问题,仅依赖其进行初步的移动控制。机器人一旦监测到其自身已经较为接近示教时的粗糙目标位姿,就会进入相对更精准的控制阶段。该相对更精准的控制阶段可初步划分为先后两个不同的子阶段,分别为:平移控制子阶段及旋转控制子阶段。特别注意的是,在平移控制子阶段及旋转控制子阶段时,机器人将以自身的精准实时位姿及精准目标位姿为控制依据进行控制。可以理解,在平移控制子阶段,机器人仅进行平移,其朝向不发生改变,这可使得机器人逐渐接近目标点;当机器人已处于目标点时,机器人转入旋转控制子阶段,仅进行旋转,其位置不发生改变,这可使得机器人在该目标点处达到示教时的精准朝向。通过上述过程,可帮助机器人及早完成其移动任务,实现控制效率及控制精度的平衡。
[0106]
对应于上文所提供的控制方法,本技术实施例还提供了一种控制装置。如图2所示,该控制装置2包括:
[0107]
第一控制模块201,用于在机器人基于全局规划器及局部规划器的控制向目标点移动的过程中,若机器人的粗糙实时位姿满足预设的位姿条件,则控制机器人平移移动,其中,位姿条件根据预设的粗糙目标位姿而设定,粗糙目标位姿为:机器人在目标点示教时粗糙的目标位姿;
[0108]
第二控制模块202,用于在机器人平移移动的过程中,若机器人的精准实时位姿满足预设的距离条件,则控制机器人由平移移动变更为旋转移动,其中,距离条件根据计算的精准目标位姿而设定,精准目标位姿为:机器人在目标点示教时精准的目标位姿;
[0109]
确定模块203,用于在机器人旋转移动的过程中,若机器人的精准实时位姿满足预设的第一朝向条件,则确定机器人完成移动任务,其中,第一朝向条件根据精准目标位姿而设定。
[0110]
在一些实施例中,控制装置2还包括:
[0111]
第三控制模块,用于在机器人的粗糙实时位姿满足位姿条件的情况下,在控制机器人平移移动之前,控制机器人旋转移动;
[0112]
第一控制模块201,具体用于在第三控制模块控制机器人旋转移动的过程中,若机器人的精准实时位姿满足预设的第二朝向条件,则控制机器人由旋转移动变更为平移移动,其中,第二朝向条件根据粗糙目标位姿而设定。
[0113]
在一些实施例中,第一控制模块201,包括:
[0114]
第一控制子模块,用于根据预设的粗糙目标位姿,控制机器人向目标点平移移动;
[0115]
第一计算子模块,用于在根据粗糙目标位姿,控制机器人向目标点平移移动的过程中,根据机器人的精准实时位姿及预设的示教点云数据,计算精准目标位姿;
[0116]
第二控制子模块,用于在计算得到精准目标位姿后,根据精准目标位姿,控制机器人向目标点平移移动。
[0117]
在一些实施例中,第一计算子模块,包括:
[0118]
点云采集单元,用于采集获得当前点云数据;
[0119]
点云配准单元,用于对当前点云数据及示教点云数据进行点云配准;
[0120]
第一计算单元,用于根据点云配准的结果及机器人的精准实时位姿,计算精准目标位姿。
[0121]
在一些实施例中,第二控制子模块,包括:
[0122]
第二计算单元,用于根据机器人的精准实时位姿及精准目标位姿,计算目标点与机器人的实时距离误差;
[0123]
第三计算单元,用于根据机器人的精准实时位姿及精准目标位姿,计算指定朝向与机器人的朝向的第一实时角度误差,指定朝向为:从机器人的精准实时位姿所指示的位置指向精准目标位姿所指示的位置的方向;
[0124]
生成单元,用于根据实时距离误差及第一实时角度误差,生成第一控制指令;
[0125]
控制单元,用于根据第一控制指令,控制机器人向目标点平移移动。
[0126]
在一些实施例中,第二控制模块202,包括:
[0127]
第二计算子模块,用于根据机器人的精准实时位姿及精准目标位姿,计算目标朝向与机器人的朝向的第二实时角度误差,目标朝向为:精准目标位姿所指示的朝向;
[0128]
生成子模块,用于根据第二实时角度误差,生成第二控制指令;
[0129]
第三控制子模块,用于根据第二控制指令,控制机器人由平移移动变更为旋转移动。
[0130]
在一些实施例中,机器人的精准实实时位姿根据机器人的底盘数据计算得到。
[0131]
由上可见,本技术实施例中,考虑到机器人的全局规划器及局部规划器当前所存在的问题,仅依赖其进行初步的移动控制。机器人一旦监测到其自身已经较为接近示教时的粗糙目标位姿,就会进入相对更精准的控制阶段。该相对更精准的控制阶段可初步划分为先后两个不同的子阶段,分别为:平移控制子阶段及旋转控制子阶段。特别注意的是,在平移控制子阶段及旋转控制子阶段时,机器人将以自身的精准实时位姿及精准目标位姿为控制依据进行控制。可以理解,在平移控制子阶段,机器人仅进行平移,其朝向不发生改变,这可使得机器人逐渐接近目标点;当机器人已处于目标点时,机器人转入旋转控制子阶段,仅进行旋转,其位置不发生改变,这可使得机器人在该目标点处达到示教时的精准朝向。通过上述过程,可帮助机器人及早完成其移动任务,实现控制效率及控制精度的平衡。
[0132]
对应于上文所提供的控制方法,本技术实施例还提供了一种机器人。请参阅图3,本技术实施例中的机器人3包括:存储器301,一个或多个处理器302(图3中仅示出一个)及存储在存储器301上并可在处理器上运行的计算机程序。其中:存储器301用于存储软件程序以及单元,处理器302通过运行存储在存储器301的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取上述预设事件对应的资源。具体地,处理器302通过运行存储在存储器301的上述计算机程序时实现以下步骤:
[0133]
在机器人基于全局规划器及局部规划器的控制向目标点移动的过程中,若机器人的粗糙实时位姿满足预设的位姿条件,则控制机器人平移移动,其中,位姿条件根据预设的粗糙目标位姿而设定,粗糙目标位姿为:机器人在目标点示教时粗糙的目标位姿;
[0134]
在机器人平移移动的过程中,若机器人的精准实时位姿满足预设的距离条件,则控制机器人由平移移动变更为旋转移动,其中,距离条件根据计算的精准目标位姿而设定,精准目标位姿为:机器人在目标点示教时精准的目标位姿;
[0135]
在机器人旋转移动的过程中,若机器人的精准实时位姿满足预设的第一朝向条件,则确定机器人完成移动任务,其中,第一朝向条件根据精准目标位姿而设定。
[0136]
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,在机器人的粗糙实时位姿满足位姿条件的情况下,在控制机
器人平移移动之前,控制方法还包括:
[0137]
控制机器人旋转移动;
[0138]
相应地,控制机器人平移移动,包括:
[0139]
在机器人旋转移动的过程中,若机器人的精准实时位姿满足预设的第二朝向条件,则控制机器人由旋转移动变更为平移移动,其中,第二朝向条件根据粗糙目标位姿而设定。
[0140]
在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,控制机器人平移移动,包括:
[0141]
根据预设的粗糙目标位姿,控制机器人向目标点平移移动;
[0142]
在根据粗糙目标位姿,控制机器人向目标点平移移动的过程中,根据机器人的精准实时位姿及预设的示教点云数据,计算精准目标位姿;
[0143]
在计算得到精准目标位姿后,根据精准目标位姿,控制机器人向目标点平移移动。
[0144]
在上述第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,根据机器人的精准实时位姿及预设的示教点云数据,计算精准目标位姿,包括:
[0145]
采集获得当前点云数据;
[0146]
对当前点云数据及示教点云数据进行点云配准;
[0147]
根据点云配准的结果及机器人的精准实时位姿,计算精准目标位姿。
[0148]
在上述三种可能的实施方式作为基础而提供的第五种可能的实施方式中,根据精准目标位姿,控制机器人向目标点平移移动,包括:
[0149]
根据机器人的精准实时位姿及精准目标位姿,计算目标点与机器人的实时距离误差;
[0150]
根据机器人的精准实时位姿及精准目标位姿,计算指定朝向与机器人的朝向的第一实时角度误差,指定朝向为:从机器人的精准实时位姿所指示的位置指向精准目标位姿所指示的位置的方向;
[0151]
根据实时距离误差及第一实时角度误差,生成第一控制指令;
[0152]
根据第一控制指令,控制机器人向目标点平移移动。
[0153]
在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础而提供的第六种可能的实施方式中,控制机器人由平移移动变更为旋转移动,包括:
[0154]
根据机器人的精准实时位姿及精准目标位姿,计算目标朝向与机器人的朝向的第二实时角度误差,目标朝向为:精准目标位姿所指示的朝向;
[0155]
根据第二实时角度误差,生成第二控制指令;
[0156]
根据第二控制指令,控制机器人由平移移动变更为旋转移动。
[0157]
在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础而提供的第七种可能的实施方式中,机器人的精准实实时位姿根据机器人的底盘数据计算得到。
[0158]
应当理解,在本技术实施例中,所称处理器302可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑
器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0159]
存储器301可以包括只读存储器和随机存取存储器,并向处理器302提供指令和数据。存储器301的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器301还可以存储设备类别的信息。
[0160]
由上可见,在本技术实施例中,考虑到机器人的全局规划器及局部规划器当前所存在的问题,仅依赖其进行初步的移动控制。机器人一旦监测到其自身已经较为接近示教时的粗糙目标位姿,就会进入相对更精准的控制阶段。该相对更精准的控制阶段可初步划分为先后两个不同的子阶段,分别为:平移控制子阶段及旋转控制子阶段。特别注意的是,在平移控制子阶段及旋转控制子阶段时,机器人将以自身的精准实时位姿及精准目标位姿为控制依据进行控制。可以理解,在平移控制子阶段,机器人仅进行平移,其朝向不发生改变,这可使得机器人逐渐接近目标点;当机器人已处于目标点时,机器人转入旋转控制子阶段,仅进行旋转,其位置不发生改变,这可使得机器人在该目标点处达到示教时的精准朝向。通过上述过程,可帮助机器人及早完成其移动任务,实现控制效率及控制精度的平衡。
[0161]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0162]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0163]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0164]
在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0165]
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0166]
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
[0167]
以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1