发明内容
本发明实施例的目的在于提供一种机器人行进的控制方法、装置、电子设备、介质和机器人,使机器人可以安全且高效的绕过障碍物。
为解决上述技术问题,本发明的实施例提供了一种机器人行进的控制方法,包括:在预存全局路径中确定用于指示机器人局部行进目标的目标参考点;根据机器人的多组采样线速度和采样角速度对应生成多个仿真轨迹;多个仿真轨迹的轨迹长度大于或等于机器人与目标参考点的距离;根据各个仿真轨迹与障碍物的位置关系以及与预存全局路径的位置关系,在生成的多个仿真轨迹中确定目标仿真轨迹;根据目标仿真轨迹对应的采样线速度和采样角速度调整机器人的行进线速度和角速度。
本发明的实施例还提供了一种机器人行进的控制装置,包括:目标参考点确定模块,获取模块,生成模块,目标仿真轨迹确定模块,调整模块;目标参考点确定模块用于在预存全局路径中确定用于指示机器人局部行进目标的目标参考点;获取模块用于获取机器人的多组采样线速度和采样角速度;生成模块用于根据多组采样线速度和采样角速度对应生成多个仿真轨迹,多个仿真轨迹的轨迹长度大于或等于机器人与目标参考点的距离;目标仿真轨迹确定模块用于根据各个仿真轨迹与障碍物的位置关系以及与预存全局路径的位置关系,在生成的多个仿真轨迹中确定目标仿真轨迹;调整模块用于根据目标仿真轨迹对应的采样线速度和采样角速度调整机器人的行进线速度和角速度。
本发明的实施方式还提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行机器人行进的控制方法。
本发明的实施方式还提供了一种存储介质,存储有计算机程序,计算机程序被处理器执行时上述的机器人行进的控制方法。
本发明的实施方式还提供了一种机器人,至少包括上述电子设备。
本发明实施例相对于现有技术而言,在预存全局路径中选取机器人当前位置的前方一段距离下的位置坐标,作为当前规划的局部路径的目标参考点。根据获取的机器人的多组采样线速度和采样角速度对应生成多个仿真轨迹,所生成的多个仿真轨迹大于或等于机器人与目标参考点的距离,对轨迹长度进行设定可以使无法绕过障碍物的仿真轨迹均会与障碍物的位置有一定重合,从而在根据各个仿真轨迹与障碍物的位置关系以及与预存全局路径的位置关系确定目标仿真轨迹时,不会将这种无法绕过障碍物的仿真轨迹作为最终确定的目标仿真轨迹,保证最终确定的目标仿真轨迹可以顺利绕过障碍物而无需在行进过程中对机器人的位姿进行调整。在确定目标仿真轨迹之后,将机器人的行进线速度和角速度调整为目标仿真轨迹对应的采样线速度和采样角速度,使机器人可以按照确定的目标仿真轨迹绕过障碍物,保障机器人的行进安全。
另外,机器人的多组采样线速度和采样角速度通过以下方式获取:根据机器人在仿真时间内的仿真线速度的取值范围和仿真角速度的取值范围,确定仿真轨迹的曲率半径的取值范围;根据曲率半径的取值范围,获取多个不同数值的曲率半径作为采样曲率半径;根据多个采样曲率半径分别计算得到对应的多组采样线速度和采样角速度。不同数值的曲率半径分别确定一组采样线速度和采样角速度,每组采样线速度和采样角速度对应生成一个仿真轨迹,这样生成的多个仿真轨迹各不重合,避免生成重合的无效轨迹,提高生成仿真轨迹的有效率。
另外,根据多个采样曲率半径分别计算得到对应的多组采样线速度和采样角速度,包括:利用速降函数,通过预先设置的线速度的最大值和最小值、预先设置的曲率半径的最大值,采样线速度的最大值以及各个采样曲率半径,计算各个采样曲率半径对应的采样线速度;根据采样曲率半径和对应的采样线速度计算得到采样曲率半径对应的采样角速度。通过速降函数计算出的采样线速度,可以根据曲率半径的数值的大小有规律的生成采样线速度的大小,使机器人在直线轨迹线速度较大,而在转弯时根据弯曲的程度降低线速度的大小,从而保证了机器人可以高效且安全的行进。
另外,根据曲率半径的取值范围,获取多个不同数值的曲率半径作为采样曲率半径,包括:以预设的采样步进值对曲率半径的取值范围内的数值进行采样;将采样的数值的曲率半径作为采样曲率半径。这样可以使生成的仿真轨迹为有序轨迹,便于后续对仿真轨迹的生成算法进行调试。
另外,根据各个仿真轨迹与障碍物的位置关系以及与预存全局路径的位置关系,在生成的多个仿真轨迹中确定目标仿真轨迹,包括:根据障碍物的位置信息和预存全局路径生成评分函数;通过生成的评分函数分别对生成的多个仿真轨迹进行评分;将评分最高的仿真轨迹作为目标仿真轨迹。通过评分函数使在多个仿真轨迹中选出目标仿真轨迹的过程更为简便。
另外,机器人的底盘包括阿克曼车体底盘或两轮差速车体底盘。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。
以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本发明的第一实施例涉及一种机器人行进的控制方法,包括:在预存全局路径中确定用于指示机器人局部行进目标的目标参考点;根据机器人的多组采样线速度和采样角速度对应生成多个仿真轨迹;多个仿真轨迹的轨迹长度大于或等于机器人与目标参考点的距离;根据各个仿真轨迹与障碍物的位置关系以及与预存全局路径的位置关系,在生成的多个仿真轨迹中确定目标仿真轨迹;根据目标仿真轨迹对应的采样线速度和采样角速度调整机器人的行进线速度和角速度。下面对本实施例的机器人行进的控制方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
具体流程如图3所示,第一实施例涉及一种机器人行进的控制方法,包括:
步骤301,在预存全局路径中确定用于指示机器人局部行进目标的目标参考点。
具体地说,机器人在场地中进行自主导航之前,需要对自主导航的场地进行全局规划。测试人员预先控制机器人在场地中行进并记录场地内的障碍物的位置信息,或者测试人员直接将场地的点云地图导入机器人的存储器中。在获取场地内的所有障碍物的位置信息之后,机器人对该场地下的全局行进路线进行规划,生成全局路径。在机器人自主导航时需要预存的全局路径的基础上规划局部行进路径。机器人根据自身位置信息,在全局路径的点云地图中确定自身位置,并在全局路径中的自身位置前方路径上确定一个位置,所确定的位置即为目标参考点,用于指示机器人局部行进目标。例如,可以选择全局路径上距离机器人当前位置一米远的位置作为目标参考点,选取目标参考点的方式在此不做限制。
步骤302,根据机器人的多组采样线速度和采样角速度对应生成多个仿真轨迹。
具体地说,在确定机器人的线速度和角速度的情况下,即可确定该机器人的行进轨迹。所以在生成仿真轨迹时,可以获取多组采样线速度和采样角速度,根据多组采样线速度和采样角速度对应生成多个仿真轨迹,生成的多个仿真轨迹如图2所示,所生成的多个仿真轨迹的轨迹长度大于或等于机器人与目标参考点的距离,在实际应用中可以将生成的多个仿真轨迹的轨迹长度设置为相同的固定数值,以简化生成仿真轨迹操作的复杂性。设定生成仿真轨迹的轨迹长度可以保证所生成的仿真轨迹在无法绕过障碍物时,一定会与障碍物的位置有重合的部分,从而保证最后确定的目标仿真轨迹可以绕过障碍物。由于在局部路径规划时,若存在障碍物影响机器人的行进,且该障碍物的位置处于机器人和目标参考点之间,机器人相距障碍物的距离较机器人到目标参考点的距离较近,所以生成大于或等于机器人与目标参考点的距离的轨迹长度的仿真轨迹,可以保证与障碍物位置不会重合的仿真轨迹可以安全绕过障碍物。
另外,获取的多组采样线速度和采样角速度可以通过随机的方式在取值范围内进行选取,也可以根据采样曲率半径计算得到采样线速度和采样角速度。通过采样曲率半径计算得到采样线速度和采样角速度的方式,由于曲率半径可以表示轨迹的弧度,在曲率半径数值不同时对应的轨迹的弧度也就不同,所以可以使生成的多个仿真轨迹中不存在重合的仿真轨迹,保证生成的仿真轨迹的有效性。
步骤303,根据各个仿真轨迹与障碍物的位置关系以及与预存全局路径的位置关系,在生成的多个仿真轨迹中确定目标仿真轨迹。
在生成多个仿真轨迹之后,可以将与障碍物的位置有重合部分的仿真轨迹排除,依据这种与障碍物的位置有重合部分的仿真轨迹行进,机器人会经过障碍物所在的位置,所以会与障碍物发生擦碰。另外,可以将多个仿真轨迹中与预存的全局路径中机器人与目标参考点之间的路径匹配度最高的仿真轨迹作为目标仿真轨迹,从而在最小程度的改变机器人的行进速度的前提下保证机器人安全绕过障碍物。
另外,还可以根据多个仿真轨迹的终点与目标参考点的距离对目标仿真轨迹进行选择,还可以根据机器人的线速度和角速度的方向及大小等多种选择条件对目标仿真轨迹进行选择,在实际应用中根据用户需求设置目标仿真轨迹的选择条件,例如,为保证机器人行进的高效性,可以选择距离目标参考点距离最近的目标仿真轨迹;为保证机器人行进过程的安全性,则选择与障碍物的位置的距离在一定数值的仿真轨迹作为目标仿真轨迹,等等。为综合上述多种目标仿真轨迹的选择条件,可以根据上述说明中的多种选择条件生成评分函数,通过评分函数对每个仿真轨迹进行评分,并将评分最高的仿真轨迹作为目标仿真轨迹,从而使目标仿真轨迹的确定更为高效。
步骤304,根据目标仿真轨迹对应的采样线速度和采样角速度调整机器人的行进线速度和角速度。具体地说,在确定目标仿真轨迹之后,获取目标仿真轨迹对应的采样线速度和采样角速度,判断采样线速度和采样角速度与机器人当前的行进线速度和行进角速度是否相同,若相同,则无需对机器人的行进线速度和行进角速度进行调整;若不相同,则对机器人当前的行进线速度和行进角速度进行调整,调整后的行进线速度和角速度的数值为采样线速度和采样角速度的数值,通过控制机器人的行进时的线速度和角速度的数值,可以实现机器人的行进轨迹的调整,控制机器人以目标仿真轨迹行进,完成一次机器人局部路径的规划。
另外,在完成一次机器人局部路径的规划之后,并根据规划的局部路径的行进过程中,还可以再次对机器人的局部路径进行规划,从而不断完善机器人的行进路线,使机器人可以高效且安全的行进在场地中。机器人局部路径规划的周期可以根据生成的仿真轨迹的算法确定,也可以预先设置,还可以根据机器人行进的情况对设置的周期进行调整,比如,连续多次局部路径规划后无需对机器人的行进速度进行调整,则可以适当增大周期的数值,反之,多次对行进速度的调整数值较大,则可以适当减小周期的数值,从而使机器人可以通过不断完善的最优路径行进。
另外,上述机器人行进的控制方法适用于多种底盘的机器人,如可以适用于原地自旋或底盘为三自由度等底盘灵活的机器人,也可以适用于阿克曼车体底盘或两轮差速车体底盘等底盘较为不灵活的机器人,上述机器人通过确定的目标仿真轨迹均可以在正常行进的前提下安全的绕过障碍物,无需在行进过程中通过倒退等方式躲避障碍物。
本发明实施例相对于现有技术而言,在预存全局路径中选取机器人当前位置的前方一段距离下的位置坐标,作为当前规划的局部路径的目标参考点。根据获取的机器人的多组采样线速度和采样角速度对应生成多个仿真轨迹,所生成的多个仿真轨迹长度大于或等于机器人与目标参考点的距离,对轨迹长度进行设定可以使无法绕过障碍物的仿真轨迹均会与障碍物的位置有一定重合,从而在根据各个仿真轨迹与障碍物的位置关系以及与预存全局路径的位置关系确定目标仿真轨迹时,不会将这种无法绕过障碍物的仿真轨迹作为最终确定的目标仿真轨迹,保证最终确定的目标仿真轨迹可以顺利绕过障碍物而无需在行进过程中对机器人的位姿进行调整。在确定目标仿真轨迹之后,将机器人的行进线速度和角速度调整为目标仿真轨迹对应的采样线速度和采样角速度,使机器人可以按照确定的目标仿真轨迹绕过障碍物,保障机器人的行进安全。
本发明的第二实施例涉及一种机器人行进的控制方法。在本发明第二实施例中利用曲率半径确定多组采样线速度和采样角速度,从而使根据采样线速度和采样角速度生成的多个仿真轨迹不存在重复的轨迹,保证生成仿真轨迹的有效性。具体流程如图4所示,包括:
步骤401,在预存全局路径中确定用于指示机器人局部行进目标的目标参考点。
步骤402,根据机器人在仿真时间内的采样线速度的取值范围和采样角速度的取值范围,确定仿真轨迹的曲率半径的取值范围。
具体地说,根据机器人当前的行进线速度和行进角速度确定机器人在仿真时间内的采样线速度和采样角速度的取值范围。仿真时间为机器人从当前位置行进至目标参考点所需的时间,例如,机器人距目标参考点3米,机器人当前线速度1米每秒,则仿真时间可以设置为3秒。也可以根据实际需求设置稍大的仿真时间的数值,在此对仿真时间的数值不做限制。在确定仿真时间之后,即可计算在仿真时间内机器人可以达到的最大线速度,最小线速度,最大角速度和最小角速度。例如,可以通过下述公式进行计算采样线速度的最大值和最小值:
其中,v
max为采样线速度的最大值;v
min为采样线速度的最小值;v
0为当前行进线速度;Vaccmax为机器人最大线加速度;t为仿真时间;
为预设线速度的最大值;
为预设线速度的最大值。
同理,通过下述公式可以计算采样角速度的最大值和最小值:
w
max为采样角速度的最大值;w
min为采样角速度的最小值;w
0为当前行进角速度;Aacc
max为机器人最大角加速度;t为仿真时间;
为预设角速度的最大值;/>
为预设角速度的最大值。
在计算得到仿真时间内的采样线速度的取值范围和采样角速度的取值范围之后,根据采样线速度的最小值和采样角速度的最大值即可计算得到曲率半径的最大值,同理通过采样线速度的最大值和采样角速度的最小值即可计算得到曲率半径的最大值,如下述公式所示,
其中,kappa
max为曲率半径的最大值;kappa
min为曲率半径的最小值;
为预设的曲率半径的最大值。
步骤403,根据曲率半径的取值范围,获取多个不同数值的曲率半径作为采样曲率半径。具体地说,可以通过随机采样在上述确定的曲率半径的取值范围内随机获取不同的数值的曲率半径作为采样曲率半径;也可以通过一定的规则有序的确定不同数值的曲率半径作为采样曲率半径。例如,可以通过设定步进值dkappa,利用公式kappan=min(kappamin+dkappa*n,kappamax)进行采样,采样的曲率半径的数值以kappan表示,从计算的最小曲率半径的数值kappamin开始取样,直至计算的最大的曲率半径的数值kappamax,所采集的曲率半径数值的数量为n,这样采集到的曲率半径的数据具有一定的规律,依据曲率半径生成的仿真轨迹为有序轨迹,便于后续对仿真轨迹的生成算法进行调试。
步骤404,根据多个采样曲率半径分别计算得到对应的多组采样线速度和采样角速度。
利用速降函数,通过预先设置的线速度的最大值和最小值、预先设置的曲率半径的最大值,采样线速度的最大值以及各个所述采样曲率半径,计算各个采样曲率半径对应的采样线速度。降速函数f(x)的计算公式如下:
其中f(kappan)为曲率半径为kappan对应的仿真轨迹的采样线速度,在计算出曲率半径为kappan对应的仿真轨迹的采样线速度之后,将计算的采样线速度与曲率半径的数值相乘得到采样角速度,如利用下述公式计算采样角速度wn=vn*kappan,wn为计算的采样角速度,vn为上述计算出的采样线速度f(kappan),kappan为第n个采样曲率半径。
步骤405,根据机器人的多组采样线速度和采样角速度对应生成多个仿真轨迹。
步骤406,通过生成的评分函数分别对生成的多个仿真轨迹进行评分;将评分最高的仿真轨迹作为目标仿真轨迹。
步骤407,根据目标仿真轨迹对应的采样线速度和采样角速度调整机器人的行进线速度和角速度。
步骤405至407分别与第一实施例中步骤302至304一一对应,在此不再赘述。
在本实施例中,利用采样曲率半径生成多个仿真轨迹,生成的多个仿真轨迹各不重合,避免生成重合的无效轨迹,提高生成仿真轨迹的有效率。在生成仿真轨迹时利用降速函数确定采样线速度和角速度,这样可以根据曲率半径的数值的大小有规律的生成采样线速度的大小,使机器人在直线轨迹线速度较大,而在转弯时根据弯曲的程度降低线速度的大小,从而保证了机器人可以高效且安全的行进。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施例涉及一种机器人行进的控制装置,如图5所示,包括:目标参考点确定模块51,获取模块52,生成模块53,目标仿真轨迹确定模块54,调整模块55;目标参考点确定模块51用于在预存全局路径中确定用于指示机器人局部行进目标的目标参考点;获取模块52用于获取机器人的多组采样线速度和采样角速度;生成模块53用于根据多组采样线速度和采样角速度对应生成多个仿真轨迹,多个仿真轨迹的轨迹长度均相同且大于或等于机器人与目标参考点的距离;目标仿真轨迹确定模块54用于根据各个仿真轨迹与障碍物的位置关系以及与预存全局路径的位置关系,在生成的多个仿真轨迹中确定目标仿真轨迹;调整模块55用于根据目标仿真轨迹对应的采样线速度和采样角速度调整机器人的行进线速度和角速度。
不难发现,本实施例为与第一实施例相对应的***实施例,本实施例可与第一实施例互相配合实施。第一实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例中。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本发明第四实施例涉及一种机器人行进的控制装置。如图6所示,在本发明第四实施例中获取模块52包括:曲率半径确定模块521,采样曲率半径获取模块522,计算模块523。
曲率半径确定模块521用于根据机器人在仿真时间内的仿真线速度的取值范围和仿真角速度的取值范围,确定仿真轨迹的曲率半径的取值范围;采样曲率半径获取模块522用于根据所述曲率半径的取值范围,获取多个不同数值的曲率半径作为采样曲率半径;计算模块523用于根据多个采样曲率半径分别计算得到对应的多组采样线速度和采样角速度。
另外,计算模块523用于利用速降函数,通过预先设置的线速度的最大值和最小值、预先设置的曲率半径的最大值,以及采样线速度的最大值,计算各个采样曲率半径对应的采样线速度;根据采样曲率半径和计算的对应的采样线速度计算得到采样曲率半径对应的采样角速度。
另外,采样曲率半径获取模块522用于以预设的采样步进值对曲率半径的取值范围内的数值进行采样;将采样的数值的曲率半径作为采样曲率半径。
另外,目标仿真轨迹确定模块54用于根据障碍物的位置信息和预存全局路径生成评分函数;通过生成的评分函数分别对生成的多个仿真轨迹进行评分;将评分最高的仿真轨迹作为目标仿真轨迹。
由于第二实施例与本实施例相互对应,因此本实施例可与第二实施例互相配合实施。第二实施例中提到的相关技术细节在本实施例中依然有效,在第二实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第二实施例中。
本发明第五实施例涉及一种电子设备,如图7所示,包括至少一个处理器701;以及,与至少一个处理器701通信连接的存储器702;其中,存储器702存储有可被至少一个处理器701执行的指令,指令被至少一个处理器701执行,以使至少一个处理器701能够执行上述机器人行进的控制方法。
其中,存储器702和处理器701采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器701和存储器702的各种电路连接在一起。总线还可以将诸如***设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器701。
处理器701负责管理总线和通常的处理,还可以提供各种功能,包括定时,***接口,电压调节、电源管理以及其他控制功能。而存储器702可以被用于存储处理器701在执行操作时所使用的数据。
本发明第六实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
本发明第七实施例涉及一种机器人,至少包括上述电子设备。机器人可以通过电子设备执行上述机器人行进的控制方法。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。