掌桥专利:专业的专利平台
掌桥专利
首页

一种机器人局部路径的优化方法及机器人

文献发布时间:2023-06-19 10:22:47


一种机器人局部路径的优化方法及机器人

技术领域

本申请属于计算机技术领域,尤其涉及一种机器人局部路径的优化方法及机器人。

背景技术

随着社会的发展,机器人被应用于各个领域。因此,对机器人的路径优化显得格外重要。

然而,传统的机器人路径优化方法功能不完善,不能准确规划有效路径供机器人行驶,速度控制以及躲避障碍均不灵活,不利于机器人在室外高速运行。

发明内容

有鉴于此,本申请实施例提供了一种机器人局部路径的优化方法及机器人,以解决传统的机器人路径优化方法功能不完善,不能准确规划有效路径供机器人行驶,速度控制以及躲避障碍均不灵活,不利于机器人在室外高速运行的问题。

本申请实施例的第一方面提供了一种机器人局部路径的优化方法,包括:

获取待优化的局部路径;

基于所述局部路径中每个位姿点的特征,确定所述局部路径对应的优化方案;

根据所述优化方案优化所述局部路径,得到优化后的局部路径。

进一步地,为了得到更有效的优化后的局部路径,进而使机器人根据优化后的局部路径行走时更稳定、角度控制更灵活,根据所述优化方案优化所述局部路径,得到优化后的局部路径可以包括:对所述局部路径中的每个所述位姿点进行方向标定,得到状态轨迹曲线;

基于预设速度值以及预设时间间隔,调整所述状态轨迹曲线中的位姿点,得到初始运动曲线;

获取所述初始运动曲线中每个位姿点对应的角度值;

当检测到所述初始运动曲线中任意相邻的两个位姿点之间的角速度偏差值超出预设偏差范围时,在所述相邻的两个位姿点之间添加新的位姿点,生成旋转运动曲线;

基于所述旋转运动曲线生成所述优化后的局部路径。

进一步地,为了使机器人对速度的控制更灵活,可对局部路径进行速度优化,本申请还包括:

获取当前运动曲线,以及获取当前运动曲线中每个位姿点对应的速度值;所述当前运动曲线为机器人当前未行走的路径对应的运动曲线;

若检测到当前运动曲线中任意相邻的两个位姿点各自对应的速度值之间的差值超出预设速度范围时,对所述当前运动曲线中的位姿点进行速度优化,生成速度优化曲线;

基于所述速度优化曲线生成所述优化后的局部路径。

进一步地,为了使机器人对速度的控制更灵活,若检测到当前运动曲线中任意相邻的两个位姿点各自对应的速度值之间的差值超出预设速度范围时,对所述当前运动曲线中的位姿点进行速度优化,生成速度优化曲线包括:调整所述当前运动曲线中每个位姿点的速度,得到平移优化曲线;对所述平移优化曲线中的位姿点进行加速度优化,得到加速度优化曲线;对所述加速度优化曲线中的位姿点进行方向归一化处理,得到所述速度优化曲线。

进一步地,为了保障机器人的安全性,使机器人安全行走,本申请还包括:

当在预设距离范围内检测到障碍物时,对当前运动曲线中的位姿点进行安全优化,得到安全优化曲线;

基于所述安全优化曲线生成所述优化后的局部路径。

所述安全优化曲线包括避障优化曲线,所述当在预设距离范围内检测到障碍物时,对当前运动曲线中的位姿点进行安全优化,得到安全优化曲线包括:

当在第一预设距离范围内检测到实体障碍物时,对当前运动曲线中的位姿点进行避障优化,得到所述避障优化曲线。

所述安全优化曲线还包括弯道防撞优化曲线,所述当在预设距离范围内检测到障碍物时,对当前运动曲线中的位姿点进行安全优化,得到安全优化曲线还包括:

当在第二预设距离范围内检测到弯道时,调整当前运动曲线中位姿点的位置,得到所述弯道防撞优化曲线。

进一步地,为了保障机器人的安全性,使机器人安全行走,本申请还包括:调整所述安全优化曲线中每个位姿点的速度,得到速度保护运动曲线;基于所述速度保护运动曲线生成所述优化后的局部路径。

本发明实施例的第二方面提供了一种机器人,该机器人包括:

获取单元,用于获取待优化的局部路径;

确定单元,用于基于所述局部路径中每个位姿点的特征,确定所述局部路径对应的优化方案;

优化单元,用于根据所述优化方案优化所述局部路径,得到优化后的局部路径。

进一步地,所述优化单元具体用于:

对所述局部路径中的每个所述位姿点进行方向标定,得到状态轨迹曲线;

基于预设速度值以及预设时间间隔,调整所述状态轨迹曲线中的位姿点,得到初始运动曲线;

获取所述初始运动曲线中每个位姿点对应的角度值;

当检测到所述初始运动曲线中任意相邻的两个位姿点之间的角速度偏差值超出预设偏差范围时,在所述相邻的两个位姿点之间添加新的位姿点,生成旋转运动曲线;

基于所述旋转运动曲线生成所述优化后的局部路径。

进一步地,所述机器人还包括:

速度值获取单元,用于获取当前运动曲线,以及获取当前运动曲线中每个位姿点对应的速度值;所述当前运动曲线为机器人当前未行走的路径对应的运动曲线;

检测单元,用于若检测到当前运动曲线中任意相邻的两个位姿点各自对应的速度值之间的差值超出预设速度范围时,对所述当前运动曲线中的位姿点进行速度优化,生成速度优化曲线;

第一生成单元,用于基于所述速度优化曲线生成所述优化后的局部路径。

进一步地,所述检测单元具体用于:

调整所述当前运动曲线中每个位姿点的速度,得到平移优化曲线;

对所述平移优化曲线中的位姿点进行加速度优化,得到加速度优化曲线;

对所述加速度优化曲线中的位姿点进行方向归一化处理,得到所述速度优化曲线。

进一步地,所述机器人还包括:

安全优化单元,用于当在预设距离范围内检测到障碍物时,对当前运动曲线中的位姿点进行安全优化,得到安全优化曲线;

第二生成单元,用于基于所述安全优化曲线生成所述优化后的局部路径。

所述安全优化曲线包括避障优化曲线。

进一步地,所述安全优化单元具体用于:

当在第一预设距离范围内检测到实体障碍物时,对当前运动曲线中的位姿点进行避障优化,得到所述避障优化曲线。

所述安全优化曲线还包括弯道防撞优化曲线。

进一步地,所述安全优化单元具体用于:

当在第二预设距离范围内检测到弯道时,调整当前运动曲线中位姿点的位置,得到所述弯道防撞优化曲线。

进一步地,所述机器人还包括:

调整单元,用于调整所述安全优化曲线中每个位姿点的速度,得到速度保护运动曲线;

所述第二生成单元具体用于:基于所述速度保护运动曲线生成所述优化后的局部路径。

本发明实施例的第三方面提供了另一种机器人,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储支持终端执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行以下步骤:

获取待优化的局部路径;

基于所述局部路径中每个位姿点的特征,确定所述局部路径对应的优化方案;

根据所述优化方案优化所述局部路径,得到优化后的局部路径。

本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取待优化的局部路径;

基于所述局部路径中每个位姿点的特征,确定所述局部路径对应的优化方案;

根据所述优化方案优化所述局部路径,得到优化后的局部路径。

本申请实施例提供的一种机器人局部路径的优化方法及机器人具有以下有益效果:

本申请实施例,通过获取待优化的局部路径;基于所述局部路径中每个位姿点的特征,确定所述局部路径对应的优化方案;根据所述优化方案优化所述局部路径,得到优化后的局部路径。上述方式,机器人基于待优化的局部路径中每个位姿点的特征配置该局部路径对应的优化方案,并根据该优化方案优化该局部路径,得到优化后的局部路径。由于是针对每个位姿点的特征配置的不同方案,使得机器人根据优化后的局部路径行驶时,提高了速度控制以及躲避障碍的灵活性,有利于机器人在室外高速运行。例如,针对待优化的局部路径中的位姿点进行初始优化、时间优化、角度优化、速度优化、避障优化、速度保护优化等,进一步提高了机器人行驶过程中对速度控制、转弯控制、躲避障碍等方面的灵活性,保障了机器人在室外高速运行时的安全。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提供的一种机器人局部路径的优化方法的实现流程图;

图2是本申请提供的状态轨迹曲线示意图;

图3是本申请提供的初始运动曲线示意图;

图4是本申请提供的旋转运动曲线示意图;

图5是本申请提供的平移优化曲线示意图;

图6是本申请提供的速度优化曲线示意图;

图7是本申请提供的避障优化曲线示意图;

图8是本申请提供的弯道防撞优化曲线示意图;

图9是本申请提供的速度保护运动曲线示意图;

图10是本申请一实施例提供的一种机器人的示意图;

图11是本申请另一实施例提供的一种机器人的示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

请参见图1,图1是本发明实施例提供的一种机器人局部路径的优化方法的示意流程图。本实施例中机器人局部路径的优化方法的执行主体为机器人,机器人包括但不限于服务型机器人、室内机器人、扫地机器人、室外机器人等。如图1所示的机器人局部路径的优化方法包括:

S101:获取待优化的局部路径。

机器人获取待优化的局部路径。具体地,机器人获取全局规划路径,基于预设方法从全局规划路径中截取一段路径作为待优化的局部路径。例如,按照预设顺序从全局规划路径中截取预设长度的路径作为待优化的局部路径。也可以由其他终端将待优化的局部路径发送给机器,机器人接收其他设备发送的待优化的局部路径。

S102:基于所述局部路径中每个位姿点的特征,确定所述局部路径对应的优化方案。

机器人基于待优化的局部路径中每个位姿点的特征,确定待优化的局部路径对应的优化方案。具体地,待优化的局部路径中包含多个位姿点,可以理解为待优化的局部路径是由多个位姿点组成的。机器人分析待优化的局部路径中每个位姿点的特征,如分析每个位姿点的位置特征、速度特征、角度特征、时间特征等。例如,机器人分析待优化的局部路径中每个位姿点的位置特征可以是,分析每个位姿点在该条局部路径中的位置,每个位姿点的运动方向,每个位姿点至障碍物的距离等;机器人分析待优化的局部路径中每个位姿点的速度特征可以是,分析每个位姿点对应的速度值,每两个相邻的位姿点各自对应的速度值之前的差值等;机器人分析待优化的局部路径中每个位姿点的角度特征可以是,分析每个位姿点对应的角速度值,每两个相邻的位姿点之间的角速度偏差值等;机器人分析待优化的局部路径中每个位姿点的时间特征可以是,分析每两个相邻的位姿点之间的时间差值等。根据分析得到的每个位姿点的特征确定待优化的局部路径对应的优化方案,优化方案中可以包括对该局部路径的初始优化、时间优化、角度优化、速度优化、避障优化、限速保护优化、弯道防撞优化等。例如,可根据每个位姿点的时间特征,为该局部路径配置时间优化;根据每个位姿点的位置特征,为该局部路径配置避障优化、弯道防撞优化等;根据每个位姿点的速度特征,为该局部路径配置速度优化、限速保护优化等;根据每个位姿点的角度特征,为该局部路径配置角度优化等。

值得说明的是,可以为不同的局部路径配置出不同的优化方案;一个优化方案中可以包含上述的所有优化方式,也可以是其中一种或多种的任意组合,根据不同的局部路径可配置出不同的优化方案,对此不做限定。

S103:根据所述优化方案优化所述局部路径,得到优化后的局部路径。

机器人根据待优化的局部路径对应的优化方案优化该局部路径,得到优化后的局部路径。例如,待优化的局部路径对应的优化方案中包括初始优化、时间优化、角度优化;对该局部路径进行优化,得到优化后的局部路径可以是,对局部路径中的每个位姿点进行方向标定,得到状态轨迹曲线;基于预设速度值以及预设时间间隔,调整状态轨迹曲线中的位姿点,得到初始运动曲线;获取初始运动曲线中每个位姿点对应的角速度值;当检测到初始运动曲线中任意相邻的两个位姿点之间的角速度偏差值超出预设偏差范围时,在相邻的两个位姿点之间添加新的位姿点,生成旋转运动曲线;基于该旋转运动曲线生成优化后的局部路径。

进一步地,为了得到更有效的优化后的局部路径,进而使机器人根据优化后的局部路径行走时更稳定、角度控制更灵活,S103可以包括S1031-S1035,具体如下:

S1031:对所述局部路径中的每个所述位姿点进行方向标定,得到状态轨迹曲线。

机器人对待优化的局部路径中的每个位姿点进行方向标定,得到待优化的局部路径对应的状态轨迹曲线。具体地,机器人获取局部路径中每个位姿点的位置,并获取局部路径中每个位姿点的朝向,可以理解为获取每个位姿点的运动方向;基于每个位姿点对应的位置以及朝向绘制运动曲线,得到状态轨迹曲线。如图2所示的状态轨迹曲线示意图,最左侧的圆点对应的位置和箭头朝向表示在这段局部路径中机器人对应的起点以及起始运动方向;最右侧的圆点对应的位置和箭头朝向表示在这段局部路径中机器人对应的终点以及终点方向;两个圆点中间的每个箭头对应一个位姿点,用于表示这段局部路径中机器人要经过的每个位置以及运动方向。

S1032:基于预设速度值以及预设时间间隔,调整所述状态轨迹曲线中的位姿点,得到初始运动曲线。

机器人基于预设速度值以及预设时间间隔,调整状态轨迹曲线中的位姿点,得到初始运动曲线;其中,速度值以及时间间隔可根据实际情况自行设置。例如,根据预设速度值Vmax和预设时间间隔dt计算两个相邻的位姿点之间的距离dist,即dist=Vmax×dt,根据该距离值对状态轨迹曲线中的位姿点进行增加或删除,调整的时候保证状态轨迹曲线中的起始点以及终点不变。如图3所示的初始运动曲线,保证起始点以及终点不变,根据计算得到的距离值对状态轨迹曲线中的位姿点进行增删调节,得到该初始运动曲线。在状态轨迹曲线中,每个位姿点具有位置坐标以及朝向,经过S1032处理后,对每个位姿点加入了时间因子,使得到的初始运动曲线带有速度,便于后续对局部路径进行进一步优化。

S1033:获取所述初始运动曲线中每个位姿点对应的角度值。

机器人获取初始运动曲线中每个位姿点对应的角度值。机器人获取初始运动曲线中每个位姿点对应的位置坐标,并根据每个位置坐标计算每个位姿点相对于预设水平方向的角度值。

S1034:当检测到所述初始运动曲线中任意相邻的两个位姿点之间的角速度偏差值超出预设偏差范围时,在所述相邻的两个位姿点之间添加新的位姿点,生成旋转运动曲线。

机器人检测初始运动曲线中任意相邻的两个位姿点之间的角速度偏差值是否超出预设偏差范围。具体地,机器人根据每个位姿点对应的角速度值计算初始运动曲线中任意相邻的两个位姿点之间的角速度偏差值,比较计算得到的角速度偏差值是否超出预设偏差范围。当检测到初始运动曲线中任意相邻的两个位姿点之间的角速度偏差值超出预设偏差范围时,在这相邻的两个位姿点之间添加新的位姿点,生成旋转运动曲线。具体地,机器人可通过如下程序实现:

angle_diff=Theta1-Theta2

omega=angle_diff/dt

如图4所示的旋转运动曲线,最左侧的圆点和该圆点右侧的第一个位姿点之间的角速度偏差值超出预设偏差范围,则为这两个位姿点之间添加多个新的位姿点。经过S1034的处理,使角度偏差较大的位置旋转速度明显变缓,进而使整个运动过程在旋转时变的更加平滑。

S1035:基于所述旋转运动曲线生成所述优化后的局部路径。

机器人根据该旋转运动曲线生成优化后的局部路径。具体地,机器人可根据该旋转运动曲线绘制与其相同的运动轨迹作为优化后的局部路径;也可将该旋转运动曲线转换为路径,并标记为优化后的局部路径。

进一步地,为了使机器人对速度的控制更灵活,可对局部路径进行速度优化,在S1032-S1034的任一步骤后还可包括S1036-S1038,具体如下:

S1036:获取当前运动曲线,以及获取当前运动曲线中每个位姿点对应的速度值;所述当前运动曲线为机器人当前未行走的路径对应的运动曲线。

机器人获取当前运动曲线,并获取当前运动曲线中每个位姿点对应的速度值;其中,当前运动曲线为机器人当前未行走的路径对应的运动曲线。具体地,若在S1032、S1033任一步骤后执行S1036-S1038,此时获取到的当前运动曲线即为初始运动曲线,机器人获取初始运动曲线中每个位姿点对应的速度值,该速度值为机器人为每个位姿点预设的速度值。若在S1034后执行S1036-S1038,此时获取到的当前运动曲线即为旋转运动曲线,机器人获取旋转运动曲线中每个位姿点对应的速度值。

S1037:若检测到当前运动曲线中任意相邻的两个位姿点各自对应的速度值之间的差值超出预设速度范围时,对所述当前运动曲线中的位姿点进行速度优化,生成速度优化曲线。

机器人检测当前运动曲线中任意相邻的两个位姿点各自对应的速度值之间的差值是否超出预设速度范围。具体地,机器人根据每个位姿点对应的速度值计算当前运动曲线中任意相邻的两个位姿点各自对应的速度值之间的差值,比较计算得到的差值是否超出预设速度范围。若检测到当前运动曲线中任意相邻的两个位姿点各自对应的速度值之间的差值超出预设速度范围时,对当前运动曲线中的位姿点进行速度优化,生成速度优化曲线。如调整当前运动曲线中每个位姿点的速度,得到平移优化曲线;对平移优化曲线中的位姿点进行加速度优化,得到加速度优化曲线;对加速度优化曲线中的位姿点进行方向归一化处理,得到该速度优化曲线。

进一步地,为了使机器人对速度的控制更灵活,S1037可以包括S10371-S10373,具体如下:

S10371:调整所述当前运动曲线中每个位姿点的速度,得到平移优化曲线。

机器人若检测到当前运动曲线中任意相邻的两个位姿点各自对应的速度值之间的差值超出预设速度范围时,调整当前运动曲线中每个位姿点的速度,得到平移优化曲线。例如,可通过以下程序:

vel=dist/dt

vector=cos(angle_diff)*dist

vel=vel*vector

对当前运动曲线中每个位姿点的速度进行限速调节控制,将每个位姿点对应的速度都控制在合理的速度范围内,经过调整后得到平移优化曲线。如图5所示的平移优化曲线,假设机器人从最左边的圆点位置运动至最右边的圆点位置,根据该平移优化曲线中每个位姿点对应的位置、速度以及运动方向进行运动,可使机器人边旋转边向前运动,动作连贯;且由于速度控制合理,保证了运动过程中机器人的安全性以及运动效率。

S10372:对所述平移优化曲线中的位姿点进行加速度优化,得到加速度优化曲线。

机器人对平移优化曲线中的位姿点进行加速度优化,得到加速度优化曲线。具体地,根据每相邻的两个位姿点各自对应的速度可计算出各个位姿点对应的加速度值,根据计算得到加速度值调整平移优化曲线中每个位姿点的加速度,并为平移优化曲线中加入新的位姿点,进一步提升速度的平滑性。例如,可通过以下程序实现对平移优化曲线中的位姿点的加速度优化,程序为:

acc_vel=(vel_1-vel_2)*2/(dt_1+dt_2)

acc_rot=(omega_1-omega_2)*2/(dt_1+dt_2)

如图6所示的加速度优化曲线,该图中位姿点的数量较图5所示的平移优化曲线中的位姿点明显增多,由于加入了加速度的限制,使速度变化的更加平缓。还可添加每个位姿点当前的实际速度以及该局部路径终点的速度,对平移优化曲线进行反馈闭环调节,进一步提升速度控制的可靠性以及稳定性。

S10373:对所述加速度优化曲线中的位姿点进行方向归一化处理,得到所述速度优化曲线。

机器人对加速度优化曲线中位姿点进行方向归一化处理,得到速度优化曲线。具体地,如图6所示的曲线对比图,第一行展示的曲线中每个位姿点的朝向不一致,各个位姿点之间相对离散。可通过以下程序对加速度优化曲线中的位姿点进行方向归一化处理,程序为:

Beta=atan2(delta_y,delta_x)

angle_diff=Theta1–Theta2

angle_diff_1=Theta1–Beta

angle_diff_2=Theta2–Beta

SinSinAngleDiff=sin(angle_diff)*sin(angle_diff)

SinSinAngle_1=sin(angle_diff_1)*sin(angle_diff_1)

SinSinAngle_2=sin(angle_diff_2)*sin(angle_diff_2)

Error=dist*(SinSinAngle_1+SinSinAngle_2+SinSinAngleDiff*3)

通过对加速度优化曲线中的位姿点进行方向归一化处理后,得到图6第二行展示的速度优化曲线,每个位姿点之间的关联性变强,提升了流畅平滑性,更利于机器人运动。例如图6第二行展示的速度优化曲线中的左侧有尖角的地方,可看出机器人根据该轨迹运动时,先右转后退再右转前进,体现出局部路径优化后的灵活性,使机器人可以更加高效、快速地调转方向并行走。如图6第三行展示的速度优化曲线中进一步体现了对躲避障碍的优化,即对加速度优化曲线中的位姿点进行方向归一化处理后,即使在有障碍物的地方,运动轨迹也非常平滑,整个位姿点比较集中,使机器人可以灵活、安全通过。

S1038:基于所述速度优化曲线生成所述优化后的局部路径。

机器人根据该速度优化曲线生成优化后的局部路径。具体地,机器人可根据该速度优化曲线绘制与其相同的运动轨迹作为优化后的局部路径;也可将该速度优化曲线转换为路径,并标记为优化后的局部路径。

进一步地,为了保障机器人的安全性,使机器人安全行走,在S1032-S1034的任一步骤后还可包括S1039-S10310,具体如下:

S1039:当在预设距离范围内检测到障碍物时,对当前运动曲线中的位姿点进行安全优化,得到安全优化曲线。

机器人当在预设距离范围内检测到障碍物时,对当前运动曲线中的位姿点进行安全优化,得到安全优化曲线。若在S1032、S1033任一步骤后执行S1039-S10310,此时获取到的当前运动曲线即为初始运动曲线,机器人对初始运动曲线中的位姿点进行安全优化,得到安全优化曲线。若在S1034后执行S1039-S10310,此时获取到的当前运动曲线即为旋转运动曲线,机器人对旋转运动曲线中的位姿点进行安全优化,得到安全优化曲线。进一步地,也可在S1037后执行S1039-S10310,此时获取到的当前运动曲线即为速度优化曲线,机器人对速度优化曲线中的位姿点进行安全优化,得到安全优化曲线。具体地,当在第一预设距离范围内检测到实体障碍物时,对当前运动曲线中的位姿点进行避障优化,得到避障优化曲线。当在第二预设距离范围内检测到弯道时,调整当前运动曲线中位姿点的位置,得到弯道防撞优化曲线。

进一步地,为了提高机器人行走的安全性,S1039可以包括:当在第一预设距离范围内检测到实体障碍物时,对当前运动曲线中的位姿点进行避障优化,得到所述避障优化曲线。

安全优化曲线可以包括避障优化曲线;第一预设距离范围可预先根据实际地形、环境等进行设置,对此不做限定;实体障碍物指在第一预设距离范围内会妨碍到机器人行走的障碍物,如路障、树木、行人、物品等。机器人在第一预设距离范围内检测是否存在实体障碍物,当在第一预设距离范围内检测到实体障碍物时,机器人对当前运动曲线中的位姿点进行避障优化,得到避障优化曲线。具体地,机器人可对当前运动曲线中的位姿点进行两层避障以及两段避障。其中,两层避障包含第一层避障以及第二层避障;机器人对障碍物进行不同的膨胀处理,例如,一个障碍物是半径为0.5m的圆形物体,将其半径膨胀为1.0m,则第一层避障是对该障碍物附近的位姿点的位置进行调整,使该障碍物附近的位姿点距离该障碍物圆心的距离大于或等于1.0m,进而使机器人根据调整后的轨迹行走时可躲避进行半径膨胀后的该障碍物;若机器人可行走的通道宽度小于1.0m且接近0.5m时,可进行第二层避障,即该障碍物附近的位姿点的位置进行调整,使该障碍物附近的位姿点距离该障碍物圆心的距离大于或等于0.5m,进而使机器人根据调整后的轨迹行走时可躲避进行该障碍物。如图7所示的避障优化曲线,左侧为第一层避障,右侧为第二层避障。可通过以下程序对当前运动曲线中的位姿点进行避障优化,程序为:

obstacle_dist:pose(x,y)–obstacle(x,y)

Error_1=obstacle_dist–min_obstacle_dist

Error_2=obstacle_dist–inflation_dist

二段避障可以包括优化避让以及轮廓推测;其中,优化避让是指若检测到障碍物彻底挡住行走的通道,则生成当前路径不可通行的提示信息,并将机器人当前的行驶速度减为0;轮廓推测是指检测障碍物附近的位姿点对应的位置是否处于该障碍物实际的轮廓中,当障碍物附近的位姿点对应的位置处于该障碍物实际的轮廓中时,将机器人当前的行驶速度减为0。经过避障优化可以使机器人提前做出避让准备,有效地避开障碍物,保障了机器人的安全。

进一步地,为了提高机器人行走的安全性,安全优化曲线还可包括弯道防撞优化曲线,S1039还可以包括:当在第二预设距离范围内检测到弯道时,调整当前运动曲线中位姿点的位置,得到所述弯道防撞优化曲线。

安全优化曲线还可以包括弯道防撞优化曲线;第二预设距离范围可预先根据实际地形、环境等进行设置,对此不做限定;弯道指机器人在行驶过程中遇到的拐弯角度较大的道路,如图8所示的弯道防撞优化曲线,图中被标注的两个拐角即为弯道。机器人在第二预设距离范围内检测是否存在弯道,当在第二预设距离范围内检测到弯道时,机器人获取弯道附近的位姿点,并调整这些位姿点的位置,得到弯道防撞优化曲线。可通过以下程序调整当前运动曲线中位姿点的位置,程序为:

delta_x=global_pose->x()-local_pose->x()

delta_y=global_pose->y()-local_pose->y()

dist_square=delta_x*delta_x+delta_y*delta_y

Error=fabs(dist_square)/(1+fabs(dist_square))

如图8所示的弯道防撞优化曲线,经过调整当前运动曲线中位姿点的位置,使原本靠近弯道标注的曲线优化为远离弯道标注的曲线,进而使得机器人即使在速度较大时行走也不会碰撞到该弯道,提高了机器人行走的安全性。

S10310:基于所述安全优化曲线生成所述优化后的局部路径。

机器人根据该安全优化曲线生成优化后的局部路径。机器人可根据该安全优化曲线绘制与其相同的运动轨迹作为优化后的局部路径;也可将该安全优化曲线转换为路径,并标记为优化后的局部路径。具体地,当安全优化曲线包括避障优化曲线时,机器人根据该避障优化曲线生成优化后的局部路径;当安全优化曲线包括弯道防撞优化曲线时,机器人根据弯道防撞优化曲线生成优化后的局部路径。

进一步地,为了保障机器人的安全性,使机器人安全行走,在S1039之后还可包括S10311-S10312,具体如下:

S10311:调整所述安全优化曲线中每个位姿点的速度,得到速度保护运动曲线。

机器人调整安全优化曲线中每个位姿点的速度,得到速度保护运动曲线。具体地,机器人检测行驶道路中是否存在障碍物,根据检测结果获取无障碍物道路对应的位姿点,并将这些位姿点的速度调整至第一预设速度范围内;当检测到实体障碍物时,获取实体障碍物附近的位姿点,并将这些位姿点的速度调整至第二预设速度范围内;当检测到弯道时,获取弯道附近的位姿点,并将这些位姿点的速度调整至第三预设速度范围内。可通过以下程序调整所述安全优化曲线中每个位姿点的速度,程序为:

curve_angle_diff=Theta3–Theta1

limit_turn_vel=fabs(curve_angle_diff)

limit_costmap_vel=vel_costmap_cost

limit_costmap_rot=rot_costmap_cost

limit_vel_vector=limit_turn_vel

limit_rot_vector=limit_costmap_rot

Error_1=dist/dt*(1-limit_vel_vector)

Error_2=omega/dt*(1-limit_rot_vector)

如图9所示的速度保护运动曲线,根据不同的行驶环境对机器人的速度进行了不同的调整,提高了机器人行走的灵活性以及安全性。

S10312:基于所述速度保护运动曲线生成所述优化后的局部路径。

机器人根据该速度保护运动曲线生成优化后的局部路径。机器人可根据该速度保护运动曲线绘制与其相同的运动轨迹作为优化后的局部路径;也可将该速度保护运动曲线转换为路径,并标记为优化后的局部路径。

本申请实施例,通过获取待优化的局部路径;基于所述局部路径中每个位姿点的特征,确定所述局部路径对应的优化方案;根据所述优化方案优化所述局部路径,得到优化后的局部路径。上述方式,机器人基于待优化的局部路径中每个位姿点的特征配置该局部路径对应的优化方案,并根据该优化方案优化该局部路径,得到优化后的局部路径。由于是针对每个位姿点的特征配置的不同方案,使得机器人根据优化后的局部路径行驶时,提高了速度控制以及躲避障碍的灵活性,有利于机器人在室外高速运行。例如,针对待优化的局部路径中的位姿点进行初始优化、时间优化、角度优化、速度优化、避障优化、速度保护优化等,进一步提高了机器人行驶过程中对速度控制、转弯控制、躲避障碍等方面的灵活性,保障了机器人在室外高速运行时的安全。

请参见图10,图10是本申请一实施例提供的一种机器人的示意图。该机器人包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1各自对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图10,包括:

获取单元210,用于获取待优化的局部路径;

确定单元220,用于基于所述局部路径中每个位姿点的特征,确定所述局部路径对应的优化方案;

优化单元230,用于根据所述优化方案优化所述局部路径,得到优化后的局部路径。

进一步地,所述优化单元230具体用于:

对所述局部路径中的每个所述位姿点进行方向标定,得到状态轨迹曲线;

基于预设速度值以及预设时间间隔,调整所述状态轨迹曲线中的位姿点,得到初始运动曲线;

获取所述初始运动曲线中每个位姿点对应的角度值;

当检测到所述初始运动曲线中任意相邻的两个位姿点之间的角速度偏差值超出预设偏差范围时,在所述相邻的两个位姿点之间添加新的位姿点,生成旋转运动曲线;

基于所述旋转运动曲线生成所述优化后的局部路径。

进一步地,所述机器人还包括:

速度值获取单元,用于获取当前运动曲线,以及获取当前运动曲线中每个位姿点对应的速度值;所述当前运动曲线为机器人当前未行走的路径对应的运动曲线;

检测单元,用于若检测到当前运动曲线中任意相邻的两个位姿点各自对应的速度值之间的差值超出预设速度范围时,对所述当前运动曲线中的位姿点进行速度优化,生成速度优化曲线;

第一生成单元,用于基于所述速度优化曲线生成所述优化后的局部路径。

进一步地,所述检测单元具体用于:

调整所述当前运动曲线中每个位姿点的速度,得到平移优化曲线;

对所述平移优化曲线中的位姿点进行加速度优化,得到加速度优化曲线;

对所述加速度优化曲线中的位姿点进行方向归一化处理,得到所述速度优化曲线。

进一步地,所述机器人还包括:

安全优化单元,用于当在预设距离范围内检测到障碍物时,对当前运动曲线中的位姿点进行安全优化,得到安全优化曲线;

第二生成单元,用于基于所述安全优化曲线生成所述优化后的局部路径。

所述安全优化曲线包括避障优化曲线。

进一步地,所述安全优化单元具体用于:

当在第一预设距离范围内检测到实体障碍物时,对当前运动曲线中的位姿点进行避障优化,得到所述避障优化曲线。

所述安全优化曲线还包括弯道防撞优化曲线。

进一步地,所述安全优化单元具体用于:

当在第二预设距离范围内检测到弯道时,调整当前运动曲线中位姿点的位置,得到所述弯道防撞优化曲线。

进一步地,所述机器人还包括:

调整单元,用于调整所述安全优化曲线中每个位姿点的速度,得到速度保护运动曲线;

所述第二生成单元具体用于:基于所述速度保护运动曲线生成所述优化后的局部路径。

请参见图11,图11是本申请另一实施例提供的一种机器人的示意图。如图11所示,该实施例的机器人3包括:处理器30、存储器31以及存储在所述存储器31中并可在所述处理器30上运行的计算机可读指令32。所述处理器30执行所述计算机可读指令32时实现上述各个机器人局部路径的优化方法实施例中的步骤,例如图1所示的S101至S103。或者,所述处理器30执行所述计算机可读指令32时实现上述各实施例中各单元的功能,例如图10所示单元210至230功能。

示例性的,所述计算机可读指令32可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器31中,并由所述处理器30执行,以完成本申请。所述一个或多个单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令32在所述终端3中的执行过程。例如,所述计算机可读指令32可以为获取单元、确定单元以及优化单元,各单元具体功能如上所述。

所述机器人可包括,但不仅限于,处理器30、存储器31。本领域技术人员可以理解,图11仅仅是机器人3的示例,并不构成对机器人3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述机器人还可以包括输入输出设备、网络接入设备、总线等。

所称处理器30可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器31可以是所述机器人3的内部存储单元,例如机器人3的硬盘或内存。所述存储器31也可以是所述机器人3的外部存储设备,例如所述机器人3上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器31还可以既包括所述机器人3的内部存储单元也包括外部存储设备。所述存储器31用于存储所述计算机可读指令以及所述机器人所需的其他程序和数据。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神范围,均应包含在本申请的保护范围之内。

相关技术
  • 一种机器人局部路径的优化方法及机器人
  • 一种规划机器人局部路径的方法、装置及机器人
技术分类

06120112519295