本申请涉及机器人技术领域,特别是涉及一种控制机器人移动的方法、装置、机器人控制设备和计算机可读存储介质。
背景技术
随着计算机技术、传感器技术和人工智能等技术的快速发展,机器人技术也得以快速发展,而其中的移动机器人类型应用最为广泛,在航天、工业等众多的领域起到举足轻重的作用。
然而目前的机器人还是存在很多不足之处。传统的机器人运动,大多数采取直线运动的方式,对于曲线路径,多采用直线运动结合原地转向的方式,无法达到匀速平稳运动的目的。目前的机器人在移动的过程中为了避开障碍物到达目的地,首先走一段直线到达一个点,然后停住转向,接着再移动至下一个点,需要花费较多时间。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种能够节省移动时间的控制机器人移动的方法、装置、机器人控制设备和计算机可读存储介质。
一种控制机器人移动的方法,所述方法包括:
机器人获取折线路径,所述折线路径为多个路径点顺序连接所形成的路径;
根据所述机器人的当前位置与所述折线路径生成对应的移动路径;所述移动路径是所述机器人的当前位置与多个所述路径点顺序连接所形成的路径;
获取所述移动路径上与所述机器人的当前位置连接的第一路径点、及与所述第一路径点连接的第二路径点;所述机器人的当前位置与所述第一路径点相连形成第一线段,所述第一路径点与所述第二路径点相连形成第二线段,确定分别与所述第一线段和第二线段对应相切的弧线段;
控制所述机器人顺序沿着所述第一线段和所述弧线段移动到所述第二线段;
判断所述第二路径点是否为所述移动路径的最后一个路径点,若为否,则执行获取所述移动路径上与所述机器人的当前位置连接的第一路径点、及与所述第一路径点连接的第二路径点的步骤;若为是,则控制所述机器人移动至最后一个路径点。
在其中一个实施例中,根据所述机器人的当前位置与所述折线路径生成对应的移动路径,包括:
根据所述机器人的当前位置获取折线路径中距离机器人最近的路径点,连接所述机器人当前位置与所述最近的路径点,并结合所述折线路径中多个路径点生成对应的移动路径。
在其中一个实施例中,所述机器人的当前位置与所述第一路径点相连形成第一线段,所述第一路径点与所述第二路径点相连形成第二线段,确定分别与所述第一线段和第二线段对应相切的弧线段,包括:
根据与所述第一线段和第二线段相切的圆得到弧线段;
获取弧线段与所述第一线段相切的第一切点,与所述第二线段相切的第二切点,第一切点到第一路径点的长度变量和第一路径点到第二切点的长度变量,所述第一路径点为所述路径起点相连的下一个路径点;
确定沿着第一切点到第二切点之间的折线路径移动所需的第一时长,以及沿着所述第一切点到第二切点之间的弧线段移动所需的第二时长;
根据所述第二时长小于第一时长确定所述长度变量的取值范围;
选取所述长度变量的取值范围中的最小值作为长度变量的值,根据所述最小值确定所述第一切点和第二切点的目标位置,根据所述第一切点和第二切点的目标位置得到对应的弧线段,所述第一切点的目标位置为所述弧线段的起点,所述第二切点的目标位置为所述弧线段的终点。
在其中一个实施例中,所述机器人的当前位置与所述第一路径点相连形成第一线段,所述第一路径点与所述第二路径点相连形成第二线段,确定分别与所述第一线段和第二线段对应相切的弧线段,包括:
获取第一线段与第二线段的弧度角,获取机器人直线运动的最大速度,机器人两轮之间的距离;
根据所述长度变量、最大速度和弧度角确定从第一切点到第二切点的移动路径所需的第一时长;
根据所述长度变量、最大速度、弧度角和两轮之间的距离确定从第一切点到第二切点的弧线段所需的第二时长。
在其中一个实施例中,所述控制所述机器人顺序沿着所述第一线段和所述弧线段移动到所述第二线段,包括:
控制所述机器人顺序沿着所述第一线段移动到所述第一切点,进入所述弧线段,并沿着所述弧线段移动到第二切点,进入所述第二线段。
在其中一个实施例中,上述方法还包括:
获取机器人移动的实际位置与预测位置的偏移量;
当检测到所述实际位置与预测位置的偏移量的绝对值大于或等于偏差阈值时,将所述实际位置作为新的当前位置,根据所述新的当前位置获取对应的移动路径。
在其中一个实施例中,上述方法还包括:
扫描所选场景生成场景地图,所述场景地图为稀疏地图或稠密地图;
确定所述机器人在所述场景地图上的当前位置。
一种控制机器人移动的装置,包括:
折线路径获取模块,用于机器人获取折线路径,所述折线路径为多个路径点顺序连接所形成的路径;
移动路径生成模块,用于根据所述机器人的当前位置与所述折线路径生成对应的移动路径;所述移动路径是所述机器人的当前位置与多个所述路径点顺序连接所形成的路径;
弧线段确定模块,获取所述移动路径上与所述机器人的当前位置连接的第一路径点、及与所述第一路径点连接的第二路径点;所述机器人的当前位置与所述第一路径点相连形成第一线段,所述第一路径点与所述第二路径点相连形成第二线段,确定分别与所述第一线段和第二线段对应相切的弧线段;
控制模块,用于控制所述机器人顺序沿着所述第一线段和所述弧线段移动到所述第二线段;
判断模块,用于判断所述第二路径点是否为所述移动路径的最后一个路径点,若为否,则执行获取所述移动路径上与所述机器人的当前位置连接的第一路径点、及与所述第一路径点连接的第二路径点的步骤;若为是,则控制所述机器人移动至最后一个路径点。
一种机器人控制设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述的控制机器人移动的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的控制机器人移动的方法的步骤。
本申请实施例中的控制机器人移动的方法、装置、机器人控制设备和计算机可读存储介质,通过将初始规划的移动路径中相连的第一线段和第二线段转化为对应的弧线段,控制机器人沿着第一线段和弧线段移动到第二线段,控制机器人不停顿移动,可以节省移动时间。
附图说明
图1为一个实施例中控制机器人移动的方法流程图;
图2为一个实施例中折线路径示意图;
图3为一个实施例中拓扑地图示意图;
图4为一个实施例中路径点示意图;
图5为一个实施例中弧线段示意图;
图6为一个实施例中获取切点方法流程图;
图7为一个实施例中切点示意图;
图8为一个实施例中实际位置与预测位置示意图;
图9为一个实施例中控制机器人移动装置的结构框图;
图10为一个实施例中机器人控制设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种控制机器人移动的方法,包括以下步骤:
步骤102,机器人获取折线路径,折线路径为多个路径点顺序连接所形成的路径。
折线路径是指多个路径点顺序连接所形成的路径,机器人沿着折线路径依次移动,如图2所示。具体地,先让机器人进行建图与定位工作,所谓的建图与定位可以理解为让机器人遍历整个场景,整个场景可以是家,图书馆等具体地场景地图,根据建图与定位可以得到一个拓扑地图,如图3所示,包括了坐标点的集合s={s1、s2、s3、s4……sn},坐标点就是路径点。由于场景中可能会有障碍物或其它机器人不能移动通过的地方,因此,本申请实施例对应生成的拓扑地图中的坐标点是机器人可以移动到的路径点。用户可以根据各自需求在生成的场景地图中标记机器人需要拜访的路径,由于用户标记的路径可能在场景中存有障碍物等,机器人根据用户标记的路径结合场景地图生成相应的机器人移动的路径,该机器人移动的路径中包含了多个路径点,将所有的路径点按顺序连接起来就形成了一条折线路径。需要说明的是,用户标记的路径包含有机器人需要依次拜访的路径点,是有移动顺序的,机器人根据这条折线路径依次移动到各个路径点。
步骤104,根据机器人的当前位置与折线路径生成对应的移动路径;移动路径是机器人的当前位置与多个路径点顺序连接所形成的路径。
当前位置是指机器人当前在场景中的实际位置。可在场景所对应的电子地图中标记该实际位置所对应的坐标位置。移动路径是机器人的当前位置与多个路径点顺序连接所形成的路径。具体地,根据生成的场景地图,机器人会选择距离当前位置p最近的路径点作为下一步要到达的点。连接当前位置与最近的路径点,并结合折线路径中的多个路径点生成机器人的移动路径。如上所述,机器人根据当前位置p的坐标每个路径点的坐标,便可计算出距离当前位置p最近的坐标对应的路径点,根据折线路劲中的路径点移动顺序,机器人根据当前位置和最近的路径点,沿着折线路径的移动顺序方向上剩余的路径点结合形成移动路径。当然,在实际应用时,坐标可为二维平面坐标,也可为三维坐标。
步骤106,获取移动路径上与机器人的当前位置连接的第一路径点、及与第一路径点连接的第二路径点;机器人的当前位置与第一路径点相连形成第一线段,第一路径点与第二路径点相连形成第二线段,确定分别与第一线段和第二线段对应相接的弧线段。
第一路径点是指距离机器人当前位置p最近的一个点,如图4所示,第一路径点是sk,第二路径点是移动路径上与第一路径点sk连接的第二个点sk+1,第一线段是指机器人的当前位置p与第一路径点sk相连形成的线段,具体地,p为机器人的当前位置,p将遍历坐标点的集合,找到距离自己最近的点sk,sk为折线路径中的一个点,记为第一路径点,连接当前位置p和折线路径中的第一路径点sk,第一线段就是psk。同理,折线路径中的下一个点sk+1,记为第二路径点,连接第一路径点sk与第二路径点sk+1,形成第二线段sksk+1。其中,第二路径点sk+1为折线路径上机器人从第一路径点sk顺序移动的下一个路径点。弧线段是指两条线段与圆相切所形成的路径。具体地,在移动路径中,第一线段psk和第二线段sksk+1分别与圆相切,如图5所示,圆是由线段
即可确定圆与线段
步骤108,控制机器人顺序沿着第一线段和弧线段移动到第二线段。
控制机器人顺序沿着第一线段psk移动到达第一切点
步骤110,判断第二路径点是否为移动路径的最后一个路径点,若为否,则执行步骤106;若为是,则执行步骤112。
步骤112,控制机器人移动至最后一个路径点。
在机器人移动的过程中判断第二路径点sk+1是否为移动路径上的最后一个路径点,如果第二路径点sk+1不是最后一个路径点,则以机器人当前位置为路径起点,获取移动路径上对应的新的第一路径点和新的第二路径点,连接新的第一路径点和新的第二路径点,形成新的第一以及第二线段,确定与新的第一线段、新的第二线段相切的新的弧线段。机器人将根据当前位置计算出新的两步内弧线走法。控制机器人沿着新的第一线段移动到新的第一切点,再沿着新的弧线段移动到新的第二切点,接着从第二切点移动到达新的第二线段,循环执行以上步骤,最终到达移动路径上的最后一个路径点。如图5所示,具体地,将第二切点
上述控制机器人移动的方法中,通过将初始规划的移动路径中相连的第一线段和第二线段转化为对应的弧线段,控制机器人沿着第一线段和弧线段移动到第二线段,平滑不停顿移动,可以节省移动时间。
在一个实施例中控制机器人移动的方法还包括:根据机器人的当前位置获取折线路径中距离机器人最近的路径点,连接机器人当前位置与最近的路径点,并结合折线路径中多个路径点生成对应的移动路径。
机器人进行建图与定位工作,生成一系列的路径点,顺序连接多个路径点生成一条折线路径,机器人根据自己的当前位置,在折线路径中选择距离自己当前位置最近的路径点,连接当前位置与最近的路径点,并结合折线路径中的多个路径点生成移动路径。
如图6所示,在一个实施例中控制机器人移动的方法还包括:
步骤602,根据与第一线段和第二线段相切的圆得到弧线段。
获取与第一线段和第二线段相切的圆,将该圆与第一线段的第一切点和该圆与第二线段的第二切点之间的圆弧作为初始的弧线段。
步骤604,获取弧线段与第一线段相切的第一切点,与第二线段相切的第二切点,第一切点到第一路径点的长度变量和第一路径点到第二切点的长度变量,第一路径点为路径起点相连的下一个路径点。
第一切点是第一线段和圆相切所得到的切点。具体地,如图7所示,圆是由线段d1sk与skd2确定,线段d1sk与skd2的长度为x,当x的取值为式(1)时,
即可确定圆与线段d1sk与skd2相切的位置,第一线段psk与圆相切,相切得到的切点为d1。第二切点是第二线段和圆相切所得到的切点。具体地,第二线段sksk+1与圆相切,相切得到的切点为d2。长度变量是切点到路径点的长度。具体地,第一切点d1与第一路径点sk的长度变量为x,第一路径点sk到第二切点d2的长度变量同为x。
步骤606,确定沿着第一切点到第二切点之间的折线路径移动所需的第一时长,以及沿着第一切点到第二切点之间的弧线段移动所需的第二时长。
第一时长即沿着移动路径移动所需时长。具体地,当机器人沿着第一切点d1到第二切点d2移动的移动路径所需的时长为第一时长t。第二时长即沿着弧线移动所需时长。具体地,当机器人沿着第一切点d1到第二切点d2走的弧线段所需的时长为第二时长t′。
步骤608,根据第二时长小于第一时长确定长度变量的取值范围。
为确保沿着弧线段移动所需的时长小于沿着移动路径移动所需的时长,需保证t′≤t,即机器人走弧线段所用的时间比走移动路径所需时间更短。
步骤610,选取长度变量的取值范围中的最小值作为长度变量的值,根据最小值确定第一切点和第二切点的目标位置,根据第一切点和第二切点的目标位置得到对应的弧线段,第一切点的目标位置为弧线段的起点,第二切点的目标位置为弧线段的终点。
由于障碍物的存在,所以取x的最小值作为长度变量的值。得到长度变量x的最小值,便可在折线路径的基础上确定第一切点d1与第二切点d2的目标位置,根据第一切点d1与第二切点d2的目标位置可以确定对应的圆,将圆在第一切点的目标位置和第二切点的目标位置之间的圆弧作为最终的弧线段。
在一个实施例中控制机器人移动的方法还包括:获取第一线段与第二线段的弧度角,获取机器人直线运动的最大速度,机器人两轮之间的距离。
第一线段psk与第二线段sksk+1的弧度角为θ,机器人直线运动的最大速度为v,机器人两轮之间的距离为l。
根据长度变量、最大速度和弧度角确定从第一切点到第二切点的移动路径所需的第一时长。
第一时长为沿着移动路径移动所需时长t。根据长度变量为x、最大速度为v和弧度角θ,第一时长
根据长度变量、最大速度、弧度角和两轮之间的距离确定从第一切点到第二切点的弧线段所需的第二时长。
第二时长为沿着弧线移动所需时长t′。根据长度变量为x、最大速度为v和弧度角θ,第二时长t′,计算公式如式(1)
当
在一个实施例中控制机器人移动的方法还包括:控制机器人顺序沿着第一线段移动到第一切点,进入弧线段,并沿着弧线段移动到第二切点,进入第二线段。
控制机器人沿着第一线段psk移动到第一切点
在一个实施例中控制机器人移动的方法还包括:获取机器人移动的实际位置与预测位置的偏移量。
实际位置是指机器人实际移动所到达的位置。预测位置为机器人在移动的过程中提前预测要移动到的位置。偏移量是实际位置与预测位置的偏移向量。假设sx,y=h(sx,sy),代表在点sx时,预计到达sy的预测位置,机器人在移动的过程中进行定位工作,可以得到自己的实际位置sx′与预测位置sx偏移量,获取机器人移动的实际位置与预测位置的偏移量。
当检测到实际位置与预测位置的偏移量的绝对值大于或等于偏差阈值时,将实际位置作为新的当前位置,根据新的当前位置获取对应的移动路径。
在移动中机器人还在进行定位工作,所以可以得到自己的实际位置s'x与预计位置sx的偏移量向量,假设系统允许的最大偏移量是ζ,那么当检测到|s'xsx|大于等于ζ时,按照预定轨迹移动到达路径末端时的偏移量就有可能大于ζ,那么机器人将启用修正算法。如图8所示,机器人预计到达
在一个实施例中控制机器人移动的方法还包括:扫描所选场景生成场景地图,场景地图为稀疏地图或稠密地图;确定机器人在场景地图上的当前位置。
在进行建图与定位工作时,机器人会遍历整个场景,生成整个场景的稀疏或者稠密的地图。例如s1、s2、s3、s4……sn,机器人预计将以起点s1到s2、s2到s3……的方式移动下去。根据生成的场景地图,在场景所对应的电子地图中标记该实际位置所对应的坐标位置,确定机器人当前在场景中的当前位置。
在一个实施例中,提供了一种控制机器人移动的方法,实现该方法的具体步骤如下:
首先,机器人进行建图与定位工作,所谓的建图与定位可以理解为让机器人遍历整个场景,整个场景可以是家,图书馆等具体地场景地图,根据建图与定位可以得到一个拓扑地图,包括了坐标点的集合s={s1、s2、s3、s4……sn},由于场景中可能会有障碍物或其它机器人不能移动通过的地方,因此,本申请对应生成的拓扑地图中的坐标点是机器人可以移动到的路径点。用户可以根据各自需求在生成的场景地图中标记机器人需要拜访的路径,由于用户标记的路径可能在场景中存有障碍物等,机器人根据用户标识的路径结合场景地图生成相应的机器人移动的路径,该机器人移动的路径中包含了多个路径点,将多个路径点按顺序连接起来就形成了一条折线路径。需要说明的是,用户标记的路径包含有机器人需要依次拜访的路径点,是有移动顺序的,机器人根据这条折线路径依次移动到各个路径点。
接着,根据生成的折线路径,机器人会选择距离当前位置p最近的路径点作为下一步要到达的点。连接当前位置与最近的路径点,并结合折线路径中的多个路径点生成机器人的移动路径。机器人根据当前位置p的坐标、每个路径点的坐标,便可计算出距离当前位置p最近的坐标对应的路径点,根据折线路径中的路径点移动顺序,机器人根据当前位置和最近的路径点,沿着折线路径的移动顺序方向上剩余的路径点结合形成机器人移动路径。当然,在实际应用时,坐标可为二维平面坐标,也可为三维坐标。
接着,机器人找到距离自己最近的点sk,sk为折线路径中的一个点,记为第一路径点,连接当前位置p和折线路径中的第一个点sk,形成第一线段psk,然后机器人移动至折线路径中的下一个点sk+1,记为第二路径点,连接第一路径点sk与第二路径点sk+1,形成第二线段sksk+1。其中,第二路径点sk+1为折线路径上机器人从第一路径点sk顺序移动的下一个路径点。连接第一路径点sk与第二路径点sk+1形成第二线段sksk+1。第一切点
同时,机器人获取弧线段与第一线段相切的第一切点,与第二线段相切的第二切点,第一切点到第一路径点的长度变量和第一路径点到第二切点的长度变量,第一路径点为路径起点相连的下一个路径点。第一线段psk与圆相切,相切得到的切点为d1。第二线段sksk+1与圆相切,相切得到的切点为d2。第一切点d1与第一路径点的长度变量为x,第一路径点到第二切点的长度变量同为x。
接着,机器人确定沿着第一切点到第二切点之间的移动路径移动所需的第一时长,以及沿着第一切点到第二切点之间的弧线段移动所需的第二时长。当机器人沿着第一切点d1到第二切点d2移动的移动路径所需的时长为第一时长t。当机器人沿着第一切点d1到第二切点d2走的弧线段所需的时长为第二时长t′。为确保沿着弧线段移动所需的时长小于沿着移动路径移动所需的时长,需保证t′≤t,即走弧线段所用的时间比走移动路径所需时间更短。
接着,机器人将确定长度变量的值,由于障碍物的存在,所以取x的最小值作为长度变量的值。得到长度变量x的最小值,便可在移动路径的基础上确定第一切点d1与第二切点d2的目标位置,连接第一切点与第二切点便可得到对应的弧线段。
接着,机器人确定第一线段psk与第二线段sksk+1的弧度角为θ,机器人直线运动的最大速度为v,机器人两轮之间的距离为l。机器人根据长度变量x、最大速度v和弧度角θ确定从第一切点到第二切点的移动路径所需的第一时长t。机器人根据长度变量x、最大速度v和弧度角θ以及两轮之间的距离l确定从第一切点到第二切点的弧线段所需的第二时长t′。为确保机器人走弧线段所用的时间比走移动路径所需时间更短,取长度变量x的最小值。
接着,在机器人移动的过程中判断第二路径点sk+1是否为移动路径上的最后一个路径点,如果是,则移动到第二路径点sk+1,停止移动。如果第二路径点sk+1不是最后一个路径点,则以机器人当前位置为路径起点,获取移动路径上对应的新的第一路径点和新的第二路径点,连接新的第一路径点和新的第二路径点,形成新的第一以及第二线段,确定与新的第一线段、新的第二线段相切的新的弧线段。机器人将根据当前位置计算出新的两步内弧线走法。控制机器人沿着新的第一线段移动到新的第一切点,再沿着新的弧线段移动到新的第二切点,接着从第二切点移动到达新的第二线段,以此循环,最终到达移动路径上的最后一个路径点。如图5所示,具体地,第二切点为
接着,机器人在移动的过程中会发生偏移,获取机器人移动的实际位置与预测位置的偏移量。假设sx,y=h(sx,sy),代表在点sx时,预计到达sy的预测位置,机器人在移动的过程中进行定位工作,可以得到自己的实际位置sx′与预测位置sx偏移量,获取机器人移动的实际位置与预测位置的偏移量。
同时,机器人在移动的过程中检测到实际位置与预测位置的偏移量的绝对值大于或等于偏差阈值时,将实际位置作为新的当前位置,根据新的当前位置获取对应的移动路径。机器人在移动的过程中还在进行定位工作,所以可以得到自己的实际位置s'x与预计位置sx的偏移量向量,假设系统允许的最大偏移量是ζ,那么当检测到|s'xsx|大于等于ζ时,机器人按照预定轨迹移动到达路径末端时的偏移量就有可能大于ζ,那么机器人将启用修正算法。机器人预计到达
应该理解的是,虽然图1、6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1、6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种控制机器人移动的装置,包括:折线路径获取模块902、移动路径生成模块904、弧线段确定模块906、控制模块908和判断模块910,其中:
折线路径获取模块902,用于机器人获取折线路径,折线路径为多个路径点顺序连接所形成的路径。
移动路径生成模块904,用于根据机器人的当前位置与折线路径生成对应的移动路径;移动路径是机器人的当前位置与多个路径点顺序连接所形成的路径。
弧线段确定模块906,用于获取移动路径上与机器人的当前位置连接的第一路径点、及与第一路径点连接的第二路径点;机器人的当前位置与第一路径点相连形成第一线段,第一路径点与第二路径点相连形成第二线段,确定分别与第一线段和第二线段对应相接的弧线段。
控制模块908,用于控制机器人顺序沿着第一线段和弧线段移动到第二线段。
判断模块910,用于判断第二路径点是否为移动路径的最后一个路径点,若为否,则执行获取移动路径上与机器人的当前位置连接的第一路径点、及与第一路径点连接的第二路径点的步骤;若为是,则控制机器人移动至最后一个路径点。
在一个实施例中,控制机器人移动的装置还包括检测模块912。检测模块912用于实时检测机器人的运动及工作情况,根据需要反馈给控制模块908,与设定信息进行比较后,对执行机构进行调整,以保证机器人的动作符合预定的要求。
在一个实施例中,折线路径获取模块902还可以根据机器人的当前位置与折线路径生成对应的移动路径。
在一个实施例中,移动路径生成模块904还可以根据机器人的当前位置获取折线路径中距离机器人最近的路径点,连接机器人当前位置与最近的路径点,并结合折线路径中多个路径点生成对应的移动路径。
在一个实施例中,弧线段确定模块906可以获取弧线段与第一线段相切的第一切点,与第二线段相切的第二切点,第一切点到第一路径点的长度变量和第一路径点到第二切点的长度变量,第一路径点为路径起点相连的下一个路径点。
在一个实施例中,控制模块908可以控制机器人的移动方向和移动位置等。机器人在移动的过程中检测到实际位置与预测位置发生偏移时,将触发控制模块908并实时调整自己的移动方向和移动位置。
在一个实施例中,判断模块910还可以判断机器人移动位置是否正确。机器人在移动的过程中难免发生偏移,当移动路径发生偏移时,将触发判断模块910并及时调整自己的移动路径。
关于控制机器人移动的装置的具体限定可以参见上文中对于控制机器人移动的方法的限定,在此不再赘述。上述控制机器人移动的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种机器人控制设备,该机器人控制设备可以是服务器也可以是终端或者安装在机器人身上的控制设备,其内部结构图可以如图10所示。该机器人控制设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该机器人控制设备的处理器用于提供计算和控制能力。该机器人控制设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该机器人控制设备的数据库用于存储机器人路径数据。该机器人控制设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种控制机器人移动的方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种机器人控制设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
机器人获取折线路径,折线路径为多个路径点顺序连接所形成的路径。
根据机器人的当前位置与折线路径生成对应的移动路径;移动路径是机器人的当前位置与多个路径点顺序连接所形成的路径。
获取移动路径上与机器人的当前位置连接的第一路径点、及与第一路径点连接的第二路径点;机器人的当前位置与第一路径点相连形成第一线段,第一路径点与第二路径点相连形成第二线段,确定分别与第一线段和第二线段对应相切的弧线段。
控制机器人顺序沿着第一线段和弧线段移动到第二线段。
判断第二路径点是否为移动路径的最后一个路径点,若为否,则执行获取移动路径上与机器人的当前位置连接的第一路径点、及与第一路径点连接的第二路径点的步骤;若为是,则控制机器人移动至最后一个路径点。
在一个实施例中,处理器执行机器人控制程序时实现以下步骤:
根据机器人的当前位置获取折线路径中距离机器人最近的路径点,连接机器人当前位置与最近的路径点,并结合折线路径中多个路径点生成对应的移动路径。
在一个实施例中,处理器执行机器人控制程序时实现以下步骤:
根据与第一线段和第二线段相切的圆得到弧线段;
获取弧线段与第一线段相切的第一切点,与第二线段相切的第二切点,第一切点到第一路径点的长度变量和第一路径点到第二切点的长度变量,第一路径点为路径起点相连的下一个路径点;
确定沿着第一切点到第二切点之间的折线路径移动所需的第一时长,以及沿着第一切点到第二切点之间的弧线段移动所需的第二时长;
根据第二时长小于第一时长确定长度变量的取值范围;
选取长度变量的取值范围中的最小值作为长度变量的值,根据最小值确定第一切点和第二切点的目标位置,根据第一切点和第二切点的目标位置得到对应的弧线段,第一切点的目标位置为弧线段的起点,第二切点的目标位置为弧线段的终点。
在一个实施例中,处理器执行机器人控制程序时实现以下步骤:
获取第一线段与第二线段的弧度角,获取机器人直线运动的最大速度,机器人两轮之间的距离;
根据长度变量、最大速度和弧度角确定从第一切点到第二切点的移动路径所需的第一时长;
根据长度变量、最大速度、弧度角和两轮之间的距离确定从第一切点到第二切点的弧线段所需的第二时长。
在一个实施例中,处理器执行机器人控制程序时实现以下步骤:
控制机器人顺序沿着第一线段移动到第一切点,进入弧线段,并沿着弧线段移动到第二切点,进入第二线段。
在一个实施例中,处理器执行机器人控制程序时实现以下步骤:
获取机器人移动的实际位置与预测位置的偏移量;
当检测到实际位置与预测位置的偏移量的绝对值大于或等于偏差阈值时,将实际位置作为新的当前位置,根据新的当前位置获取对应的移动路径。
在一个实施例中,处理器执行机器人控制程序时实现以下步骤:
扫描所选场景生成场景地图,场景地图为稀疏地图或稠密地图;
确定机器人在场景地图上的当前位置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。