机械臂的路径规划方法、装置、计算机设备和存储介质与流程

文档序号:27138029发布日期:2021-10-29 23:50阅读:228来源:国知局
机械臂的路径规划方法、装置、计算机设备和存储介质与流程

1.本技术涉及机械臂控制技术领域,特别是涉及一种机械臂的路径规划方法、装置、计算机设备和存储介质。


背景技术:

2.随着科技的进步与自动化技术的不断发展,机械臂作为自动化作业流程中的主要要素之一,被广泛应用于工业制造、医学治疗、娱乐服务与军事等各行各业。在自动化作业流程中,需要规划机械臂的运动路径,以便于机械臂按照所规划的运动路径移动,以完成相应自动化操作。目前,机械臂的运动路径通常是通过手动示教的方式确定的。但是该种路径规划方式存在运动轨迹不平滑的问题。


技术实现要素:

3.基于此,有必要针对上述技术问题,提供一种能够提高机械臂的运动轨迹的平滑度的机械臂的路径规划方法、装置、计算机设备和存储介质。
4.一种机械臂的路径规划方法,所述方法包括:
5.获取机械臂的目标位置、当前位置与当前姿态;
6.基于所述当前姿态进行姿态预测得到多个候选姿态;
7.基于所述当前位置与所述候选姿态确定多个候选位置;所述候选位置和所述候选姿态对应;
8.根据所述目标位置与所述当前位置从所述候选位置中筛选下一位置;
9.控制所述机械臂按照所述下一位置对应的候选姿态移动至所述下一位置;
10.将所述下一位置更新为当前位置,将所述下一位置对应的候选姿态更新为当前姿态,并返回至所述基于所述当前姿态进行姿态预测得到多个候选姿态的步骤继续执行,直至判定所述机械臂到达所述目标位置。
11.在其中一个实施例中,所述根据所述目标位置与所述当前位置从所述候选位置中筛选下一位置,包括:
12.基于所述目标位置与所述当前位置确定第一评价值;
13.基于所述目标位置与各所述候选位置,分别确定每个候选位置对应的第二评价值;
14.基于所述第一评价值与所述第二评价值,从所述候选位置中筛选下一位置。
15.在其中一个实施例中,所述方法还包括:
16.获取所述机械臂的目标姿态;
17.所述基于所述目标位置与所述当前位置确定第一评价值,包括:
18.基于所述目标位置、所述目标姿态、所述当前位置与所述当前姿态确定第一评价值;
19.所述基于所述目标位置与各所述候选位置,分别确定每个候选位置对应的第二评
价值,包括:
20.基于所述目标位置、所述目标姿态、各所述候选位置与相应候选姿态,分别确定每个候选位置对应的第二评价值。
21.在其中一个实施例中,所述基于所述第一评价值与所述第二评价值,从所述候选位置中筛选下一位置,包括:
22.从所述候选位置中筛选最小的第二评价值所对应的候选位置;
23.若所述最小的第二评价值小于所述第一评价值,则将所筛选出的候选位置确定为下一位置。
24.在其中一个实施例中,所述方法还包括:
25.当各所述第二评价值均大于或等于所述第一评价值时,判定所述机械臂到达所述目标位置;或,
26.当各所述第二评价值中存在处于预设误差范围内、且小于所述第一评价值的第二评价值时,判定所述机械臂到达所述目标位置。
27.在其中一个实施例中,所述方法还包括:
28.获取障碍物位置;
29.所述基于所述当前位置与所述候选姿态确定多个候选位置,包括:
30.基于所述当前位置与所述候选姿态确定多个预测位置;
31.基于所述障碍物位置从所述多个预测位置中筛选候选位置。
32.在其中一个实施例中,所述当前姿态包括:当前线速度、当前俯仰角与当前航向角;所述基于所述当前姿态进行姿态预测得到多个候选姿态,包括:
33.基于所述当前线速度预测得到多个预测线速度;
34.基于所述当前俯仰角预测得到多个预测俯仰角;
35.基于所述当前航向角预测得到多个预测航向角;
36.对所述预测线速度、所述预测俯仰角与所述预测航向角进行排列组合,得到多个候选姿态。
37.一种机械臂的路径规划装置,所述装置包括:
38.获取模块,用于获取机械臂的目标位置、当前位置与当前姿态;
39.预测模块,用于基于所述当前姿态进行姿态预测得到多个候选姿态;
40.确定模块,用于基于所述当前位置与所述候选姿态确定多个候选位置;
41.筛选模块,用于根据所述目标位置与所述当前位置从所述候选位置中筛选下一位置;
42.控制模块,用于控制所述机械臂按照所述下一位置对应的候选姿态移动至所述下一位置;
43.更新模块,用于将所述下一位置更新为当前位置,将所述下一位置对应的候选姿态更新为当前姿态。
44.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
45.获取机械臂的目标位置、当前位置与当前姿态;
46.基于所述当前姿态进行姿态预测得到多个候选姿态;
47.基于所述当前位置与所述候选姿态确定多个候选位置;所述候选位置和所述候选姿态对应;
48.根据所述目标位置与所述当前位置从所述候选位置中筛选下一位置;
49.控制所述机械臂按照所述下一位置对应的候选姿态移动至所述下一位置;
50.将所述下一位置更新为当前位置,将所述下一位置对应的候选姿态更新为当前姿态,并返回至所述基于所述当前姿态进行姿态预测得到多个候选姿态的步骤继续执行,直至判定所述机械臂到达所述目标位置。
51.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
52.获取机械臂的目标位置、当前位置与当前姿态;
53.基于所述当前姿态进行姿态预测得到多个候选姿态;
54.基于所述当前位置与所述候选姿态确定多个候选位置;所述候选位置和所述候选姿态对应;
55.根据所述目标位置与所述当前位置从所述候选位置中筛选下一位置;
56.控制所述机械臂按照所述下一位置对应的候选姿态移动至所述下一位置;
57.将所述下一位置更新为当前位置,将所述下一位置对应的候选姿态更新为当前姿态,并返回至所述基于所述当前姿态进行姿态预测得到多个候选姿态的步骤继续执行,直至判定所述机械臂到达所述目标位置。
58.上述机械臂的路径规划方法、装置、计算机设备和存储介质,在需要规划机械臂的运动路径时,基于机械臂的当前姿态预测得到多个候选姿态,基于该多个候选姿态与机械臂的当前位置,得到每个候选姿态对应的候选位置,然后基于机械臂的目标位置与当前位置,从预测得到的多个候选位置中筛选机械臂所需移动至的下一位置,以实现机械臂的局部路径规划,接着控制机械臂按照下一位置对应的候选姿态移动至该下一位置,并基于该下一位置与相应的候选姿态进行下一次的局部路径规划,以及控制机械臂按照所规划的局部路径移动,直至判定机械臂到达目标位置。这样,基于机械臂的目标位置、当前位置与当前姿态,实现机械臂的局部路径的自动规划,并控制机械臂按照所规划的局部路径移动,能够提高机械臂的运动轨迹的平滑度,且能够减少因运动轨迹不平滑而导致的冲击。
附图说明
59.图1为一个实施例中机械臂的路径规划方法的流程示意图;
60.图2为一个实施例中机械臂的运动模型的结构示意图;
61.图3为一个实施例中机械臂的路径规划仿真效果示意图;
62.图4为一个实施例中机械臂的路径规划方法的原理示意图;
63.图5为一个实施例中机械臂的路径规划装置的结构框图;
64.图6为一个实施例中计算机设备的内部结构图。
具体实施方式
65.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不
用于限定本技术。
66.在一个实施例中,如图1所示,提供了一种机械臂的路径规划方法,本实施例以该方法应用于控制器为例进行举例说明,可以理解的是,该控制器可作为机械臂的组成部分集成于机械臂中,也可独立于机械臂进行部署,并通过与集成于机械臂的控制单元进行通信,以控制机械臂的运动路径。本实施例中,该方法包括以下步骤:
67.步骤102,获取机械臂的目标位置、当前位置与当前姿态。
68.其中,目标位置是指在机械臂的整个路径规划过程中,机械臂末端tcp(tool central point,工具中心点)最终所需移动至的位置,也可理解为终点位置。当前位置是指在机械臂的局部路径规划过程中,机械臂末端tcp当前所处的位置,也可理解为当次局部路径规划过程中的初始位置/起始位置。在整个路径规划过程中包括多次局部路径规划,整个路径规划过程中的初始位置,作为第一次局部路径规划过程中的当前位置,整个路径规划过程中的终点位置,作为最后一次局部路径规划过程中所需移动至的下一位置,前一次局部路径规划过程中所需移动至的下一位置,作为后一次局部路径规划过程中的当前位置。位置具体可以是指三维空间中笛卡尔基坐标系下的位置坐标/位置信息,比如当前位置为[0,0,0]。当前姿态与当前位置相对应,机械臂末端tcp在每个位置都对应有姿态。姿态也可理解为运动姿态,具体可包括线速度v、俯仰角pitch与航向角yaw等运动参数。
[0069]
如图2所示,在一个实施例中提供了一种机械臂的运动模型的结构示意图。参照图2,机械臂的运动模型包括线速度v、俯仰角pitch与航向角yaw等运动参数,机械臂的姿态具体包括机械臂处于该姿态对应的位置时,各运动参数在运动模型中所对应的参数值。
[0070]
具体地,在机械臂的整个路径规划流程触发后,也即是在机械臂的第一次局部路径规划流程触发后,控制器获取机械臂的目标位置、初始位置与初始姿态,并将所获取的初始位置与初始姿态,分别作为当次局部路径规划流程中的当前位置与当前姿态,以便于基于该当前位置与当前姿态,确定在当次局部路径规划流程中机械臂所需移动至的位置,以及机械臂移动至该位置时所对应的姿态。而在后续的各次局部路径规划流程触发后,控制器无需再次获取机械臂的目标位置,控制器将在前一次局部路径规划流程中所确定的机械臂所需移动至的位置与相应姿态,分别作为当次局部路径规划流程中的当前位置与当前姿态。
[0071]
在一个实施例中,控制器接收人工录入的机械臂的目标位置,或者,接收由其他计算机设备传输至的机械臂的目标位置。控制器可将所接收到的目标位置存储在本地,以便于在进行机械臂的路径规划时从本地获取预存储的目标位置,也可在需要进行机械臂的路径规划时动态接收机械臂的目标位置,并触发机械臂的路径规划流程。
[0072]
在一个实施例中,在机械臂的整个路径规划过程中,机械臂的初始位置与初始姿态,可由人工录入或从其他计算机设备获取,也可由控制器动态采集。控制器可采用现有的机械臂姿态采集方式动态采集机械臂的初始姿态,比如,控制器可通过集成于机械臂的电机编码器采集并记录机械臂的关节角度,然后通过数学模型进行解算即可得到初始姿态,在此不再赘述。控制器可基于机械臂末端tcp的位置构建笛卡尔基坐标系,由此,机械臂的初始位置可直接确定为[0,0,0]。
[0073]
步骤104,基于当前姿态进行姿态预测得到多个候选姿态。
[0074]
其中,候选姿态是指机械臂移动至下一位置时可能具有的姿态。具体地,控制器基
于当前姿态中各运动参数的参数值,穷举各运动参数在下一姿态中可能对应的参数值,得到各运动参数对应的运动窗口/动态窗口,并对各运动参数在下一姿态中可能对应的参数值进行排列组合,得到下一姿态的多个候选姿态。
[0075]
步骤106,基于当前位置与候选姿态确定多个候选位置;候选位置和候选姿态对应。
[0076]
其中,候选位置是指机械臂在当次局部路径规划过程中可能移动至的位置。具体地,控制器基于各候选姿态与当前位置,分别确定每个候选姿态对应的候选位置,得到多个候选位置。
[0077]
在一个实施例中,对于每个候选姿态,控制器基于该候选姿态与当前位置,通过如下三角函数换算得到该候选姿态对应的候选位置。
[0078]
x1=x0+v
×
cos(yaw)
[0079]
y1=y0+v
×
sin(yaw)
[0080]
z1=z0+v
×
sin(pitch)
[0081]
其中,x0、y0与z0分别为当前位置中的三个位置参数,x1、y1与z1分别为候选位置中的三个位置参数,v、pitch与yaw分别为候选姿态中的三个运动参数,也即分别是指候选姿态中的预测线速度、预测俯仰角与预测航向角,cos(*)与sin(*)分别表示求余弦值与正弦值。
[0082]
步骤108,根据目标位置与当前位置从候选位置中筛选下一位置。
[0083]
其中,下一位置是指当次局部路径规划过程中机械臂所需移动至的位置。下一位置与当前位置相对应,当前位置是指机械臂当前所处的位置,下一位置是指机械臂从当前位置所需移动至的位置。
[0084]
具体地,控制器根据预先设定的评价函数,分别计算当前位置与目标位置之间的评价值,以及各候选位置与目标位置之间的评价值,并根据所计算得到的各评价值,从多个候选位置中筛选所需移动至的下一位置。
[0085]
在一个实施例中,将当前位置与目标位置之间的评价值作为第一评价值,将各候选位置与目标位置之间的评价值作为第二评价值。控制器从多个候选位置中筛选相应第二评价值最小、且相应第二评价值小于第一评价值的候选位置,作为所需移动至的下一位置。
[0086]
步骤110,控制机械臂按照下一位置对应的候选姿态移动至下一位置。
[0087]
具体地,控制器在筛选出机械臂所需移动至的下一位置,以及该下一位置对应的候选姿态后,控制机械臂按照该下一位置对应的候选姿态移动至该下一位置,以完成当次局部路径规划。
[0088]
在一个实施例中,机械臂在当前位置对应有当前姿态,在下一位置也对应有相应的候选姿态,由此,在控制机械臂从当前位置移动至下一位置的过程中,还要动态调整机械臂的姿态,以使得机械臂从当前位置移动至下一位置时,机械臂的姿态也从当前姿态变化至该下一位置对应的候选姿态。
[0089]
步骤112,将下一位置更新为当前位置,将下一位置对应的候选姿态更新为当前姿态,并返回至步骤104继续执行,直至判定机械臂到达目标位置。
[0090]
具体地,在当次局部路径规划过程中,控制器控制机械臂按照所筛选出的下一位置对应的候选姿态移动至该下一位置后,将该下一位置作为下一次局部路径规划过程中的
当前位置,以及将该下一位置对应的候选姿态作为该下一次局部路径规划过程中的当前姿态,并在下一次局部路径规划过程中,基于当前位置、当前姿态与目标位置,判断机械臂是否达到目标位置,若判定机械臂到达目标位置,表征无需再移动机械臂,则结束下一次局部路径规划流程,否则,在下一次局部路径规划过程中,基于当前姿态进行姿态预测得到多个候选姿态,基于当前位置与多个候选姿态得到每个候选姿态对应的候选位置,根据目标位置与当前位置从多个候选位置中筛选所需移动至的下一位置,并控制机械臂按照所筛选出的下一位置对应的候选姿态移动至该下一位置,依此类推,直至判定机械臂达到目标位置,结束机械臂的路径规划流程。
[0091]
上述机械臂的路径规划方法,在需要规划机械臂的运动路径时,基于机械臂的当前姿态预测得到多个候选姿态,基于该多个候选姿态与机械臂的当前位置,得到每个候选姿态对应的候选位置,然后基于机械臂的目标位置与当前位置,从预测得到的多个候选位置中筛选机械臂所需移动至的下一位置,以实现机械臂的局部路径规划,接着控制机械臂按照下一位置对应的候选姿态移动至该下一位置,并基于该下一位置与相应的候选姿态进行下一次的局部路径规划,以及控制机械臂按照所规划的局部路径移动,直至判定机械臂到达目标位置。这样,基于机械臂的目标位置、当前位置与当前姿态,实现机械臂的局部路径的自动规划,并控制机械臂按照所规划的局部路径移动,能够提高机械臂的运动轨迹的平滑度,且能够减少因运动轨迹不平滑而导致的冲击。
[0092]
在一个实施例中,步骤108,包括:基于目标位置与当前位置确定第一评价值;基于目标位置与各候选位置,分别确定每个候选位置对应的第二评价值;基于第一评价值与第二评价值,从候选位置中筛选下一位置。
[0093]
在一个实施例中,控制器基于目标位置与当前位置,按照预设的评价函数确定当前位置对应的第一评价值,并基于目标位置与每个候选位置,按照评价函数确定该候选位置对应的第二评价值,由此,能够分别确定每个候选位置对应的第二评价值。进一步地,控制器根据各候选位置对应的第二评价值,从多个候选位置中筛选相应第二评价值最小、且相应第二评价值小于第一评价值的候选位置,作为所需移动至的下一位置。
[0094]
在一个实施例中,预设的评价函数可根据需求自定义,评价函数中定义的评价参数包括位置中的各位置参数,评价函数比如,将参与计算的两个位置(比如目标位置与当前位置)中的各位置参数,分别相减并求绝对值,再对各绝对值求和得到相应的评价值,还比如,将参与计算的两个位置中的各位置参数,分别相减并求平方,在对各平方值求和得到相应的评价值,在此不再一一列举。
[0095]
在一个实施例中,基于当前位置/候选位置与目标位置计算得到的评价值,用于表征该当前位置/候选位置与目标位置之间的距离,以便于基于评价值能够从多个候选位置中筛选距离目标位置最近的候选位置,作为所需移动至的下一位置,以便于能够在保证运动轨迹的平滑度的情况下,使得机械臂能够快速移动至目标位置。
[0096]
上述实施例中,基于当前位置/各候选位置与目标位置之间的评价值,从多个候选位置中筛选所需移动至的下一位置,以便于按照所筛选出的下一位置与相应候选姿态控制机械臂移动时,能够在保证运动轨迹的平滑度的同时,使得机械臂快速移动至目标位置。
[0097]
在一个实施例中,上述机械臂的路径规划方法还包括:获取机械臂的目标姿态;基于目标位置与当前位置确定第一评价值,包括:基于目标位置、目标姿态、当前位置与当前
姿态确定第一评价值;基于目标位置与各候选位置,分别确定每个候选位置对应的第二评价值,包括:基于目标位置、目标姿态、各候选位置与相应候选姿态,分别确定每个候选位置对应的第二评价值。
[0098]
其中,目标姿态是指机械臂移动至目标位置时所需具有的姿态。具体地,控制器在获取机械臂的目标位置时,还对应获取机械臂的目标姿态。进一步地,控制器按照预设的评价函数,基于机械臂的目标位置、目标姿态、当前位置与当前姿态,确定该当前位置对应的第一评价值,并基于目标位置、目标姿态与每个候选位置,以及该候选位置对应的候选姿态,分别确定每个候选位置对应的第二评价值,由此,能够得到每个候选位置对应的第二评价值,以便于按照当前位置对应的第一评价值与各候选位置对应的第二评价值,从多个候选位置中筛选所需移动至的下一位置。
[0099]
在一个实施例中,预设的评价函数的定义与本技术一个或多个实施例中提供的评价函数的定义方式类似,本实施例中,评价函数中定义的评价参数还包括姿态中运动参数。
[0100]
上述实施例中,评价值由基于位置中的位置参数与姿态中的运动参数共同确定,这样,评价值越小,表征相应候选位置与目标位置之间的距离越近,且相应候选姿态与目标姿态之间越相似,以便于按照评价值从多个候选位置中筛选下一位置,并参照下一位置与相应候选姿态移动机械臂时,能够保证机械臂快速而准确的移动至目标位置,且保证移动至目标位置时机械臂的姿态与目标姿态足够接近,从而能够保证机械臂移动的准确性。
[0101]
在一个实施例中,基于第一评价值与第二评价值,从候选位置中筛选下一位置,包括:从候选位置中筛选最小的第二评价值所对应的候选位置;若最小的第二评价值小于第一评价值,则将所筛选出的候选位置确定为下一位置。
[0102]
具体地,控制器在确定当前位置对应的第一评价值,以及各候选位置对应的第二评价值后,将各候选位置对应的第二评价值进行比较,以根据比较结果从多个候选位置中筛选最小的第二评价值所对应的候选位置,并将所筛选出的候选位置对应的第二评价值与当前位置对应的第一评价值进行比较。若所筛选出的候选位置对应的第二评价值小于第一评价值,控制器则将该所筛选出的候选位置确定为机械臂所需移动至的下一位置。
[0103]
上述实施例中,从多个候选位置中筛选最小的、且小于第一评价值的第二评价值所对应的候选位置,作为机械臂在当次局部路径规划过程中所需移动至的位置,以便于按照该位置对应的候选姿态将机械臂移动至该位置时,能够在保证机械臂的运动轨迹的平滑度的同时,提高机械臂的移动速度与准确性。
[0104]
在一个实施例中,上述机械臂的路径规划方法还包括:当各第二评价值均大于或等于第一评价值时,判定机械臂到达目标位置;或,当各第二评价值中存在处于预设误差范围内、且小于第一评价值的第二评价值时,判定机械臂到达目标位置。
[0105]
其中,预设误差范围具体可根据机械臂的运动精度动态确定。预设误差范围作为判断机械臂是否达到目标位置的依据之一,这样,由于机械臂的运动精度导致机械臂无法精确的移动至目标位置时,能够保证机械臂移动至相对最靠近目标位置的位置处,以避免进入死循环。
[0106]
具体地,在当次局部路径规划过程中,控制器在确定当前位置对应的第一评价值与各候选位置对应的第二评价值后,将各候选位置对应的第二评价值分别与第一评价值进行比较。当所有第二评价值均大于或等于第一评价值时,表征当前位置为相对最靠近目标
位置的位置,控制器则判定机械臂达到目标位置。当多个第二评价值中存在至少一个小于第一评价值的第二评价值时,从多个第二评价值中筛选该小于第一评价值的第二评价值,将所筛选出的每个第二评价值与预设误差范围进行比较。若所筛选出的第二评价值中存在处于预设误差范围内的第二评价值,表征该处于预设误差范围内的第二评价值所对应的候选位置与目标位置足够接近,控制器则判定机械臂达到目标位置。
[0107]
上述实施例中,在所有第二评价值均大于或等于第一评价值时,表征当前位置为相对最优的位置,则不再移动机械臂并判定机械臂达到目标位置,也即是将当前位置作为机械臂实际移动至的终点位置,这样,能够在保证机械臂的移动速度与准确性的同时,提高运动轨迹的平滑度。而在多个候选位置中存在比当前位置更优、且足够接近目标位置的候选位置时,控制机械臂按照该比当前位置更优、且足够接近目标位置的候选位置所对应的候选姿态,移动至该候选位置,并判定机械臂达到目标位置,以将该比当前位置更优、且足够接近目标位置的作为机械臂实际移动至的终点位置,这样,能够在保证机械臂的移动准确性与运动轨迹的平滑度的同时,提高机械臂的移动速度,且能够避免机械臂的路径规划过程进入死循环。
[0108]
在一个实施例中,上述机械臂的路径规划方法还包括:获取障碍物位置;步骤106,包括:基于当前位置与候选姿态确定多个预测位置;基于障碍物位置从多个预测位置中筛选候选位置。
[0109]
其中,障碍物位置是用于表征障碍物在三维空间中的所处位置的位置坐标/位置信息,具体可包括障碍物的多个特征点各自对应的特征点位置,该多个特征点能够在三维空间中唯一确定障碍物。以障碍物为六面体为例,可将六面体的八个顶点作为特征点,由此,六面体对应的障碍物位置包括该八个顶点各自对应的顶点位置。
[0110]
具体地,控制器在获取机械臂的目标位置时,还会获取障碍物位置。进一步地,控制器按照本技术的一个或多个实施例中提供的预测位置确定方式,根据当前位置与各候选姿态确定每个候选姿态对应的预测位置后,控制器基于障碍物位置确定障碍物在三维空间中所对应的三维区域,将各预测位置分别与障碍物对应的三维区域进行比较,以判断各预测位置是否处于障碍物对应的三维区域中,并从多个预测位置中筛选不处于障碍物对应的三维区域中的预测位置作为候选位置,以便于从候选位置中进一步筛选所需移动至的下一位置,并按照所筛选出的下一位置移动机械臂时,能够保证机械臂的运动不受障碍物的影响。
[0111]
在一个实施例中,控制器在获取到障碍物位置后,基于障碍物位置对障碍物轮廓进行修饰,以避免在路径规划过程中,因存在完全垂直于运动路径的障碍物平面而导致机械臂在尚未到达目标位置时就提前误停在障碍物处。可以理解,控制器在获取到障碍物位置后,还可基于障碍物位置确定障碍物轮廓,并基于障碍物轮廓判断是否需要对该障碍物轮廓进行修饰,若是,则基于障碍物位置对该障碍物轮廓进行修饰,若否,则基于障碍物位置从多个预测位置中筛选候选位置。可以理解,控制器基于障碍物轮廓判断障碍物是否存在可能完全垂直于运动路径的障碍物平面,若是,则判定需要对该障碍物轮廓进行修饰。
[0112]
以障碍物为六面体为例,控制器基于障碍物位置判定需要对相应障碍物轮廓进行修饰,并将该障碍物的最大长度作为球的直径,将障碍物的质心作为球心,基于球心与直径能够确定球面上各点的位置,然后通过齐次变换将球坐标系变换至笛卡尔基坐标系,也即
是确定修饰后的障碍物在笛卡尔基坐标系中的障碍物信息,以便于基于修饰后的障碍物信息从多个预测位置中筛选候选位置。
[0113]
如图3所示,在一个实施例中,提供了一种机械臂的路径规划仿真效果示意图。参照图3,机械臂末端tcp在笛卡尔基坐标系中的初始位置为[0,0,0],目标位置为[60,60,60],障碍物位置为障碍物为标号31所表征的六面体,以目标位置与障碍物位置作为约束条件,采用本技术提供的局部路径规划方式,基于当前位置能够动态规划得到相对平滑的、且成功绕开障碍物的机械臂运动路径,规划得到的机械臂运动路径通过标号32来表征。
[0114]
上述实施例中,在给定机械臂的目标位置与障碍物位置等约束条件的情况下,基于机械臂的当前位置、当前姿态与各项约束条件,动态规划机械臂的局部最优的运动路径,以便于按照局部最优路径移动机械臂时,能够提高机械臂的运行路径的平滑度。
[0115]
在一个实施例中,当前姿态包括:当前线速度、当前俯仰角与当前航向角;步骤104,包括:基于当前线速度预测得到多个预测线速度;基于当前俯仰角预测得到多个预测俯仰角;基于当前航向角预测得到多个预测航向角;对预测线速度、预测俯仰角与预测航向角进行排列组合,得到多个候选姿态。
[0116]
具体地,当前姿态中的运动参数包括当前线速度、当前俯仰角与当前航向角。控制器基于当前线速度进行速度预测得到多个预测线速度,基于当前俯仰角进行角度预测得到多个预测俯仰角,以及基于当前航向角进行角度预测得到多个预测航向角,并对预测得到的多个预测线速度、预测俯仰角与预测航向角进行排列组合,得到多个候选姿态。
[0117]
在一个实施例中,控制器获取多个线加速度,以及俯仰角与航向角分别对应的角加速度,根据当前线速度与多个线加速度预测得到多个预测线速度,根据当前俯仰角与相应的多个角加速度预测得到多个预测俯仰角,根据当前航向角与相应的多个角加速度预测得到多个预测航向角。控制器具体可参照如下公式分别预测速度与角度。
[0118]
v[k]=v[k

1]+∫f(velocity_accelerate)dt
[0119]
pitch[k]=pitch[k

1]+∫∫f(pitch_accelerate)dt
[0120]
yaw[k]=yaw[k

1]+∫∫f(yaw_accelerate)dt
[0121]
其中,k

1表示当前时间点,具体可以是指当前位置/当前姿态所对应的时间点,k表示下一时间点,具体可以是指下一位置/下一姿态对应的时间点,v[k

1]、pitch[k

1]与yaw[k

1]分别表示当前位置/当前姿态对应的线速度、俯仰角与航向角,也即是分别表示当前线速度、当前俯仰角与当前航向角,v[k]、pitch[k]与yaw[k]分别表示下一位置/下一姿态可能对应的线速度、俯仰角与航向角,也即是分别表示预测线速度、预测俯仰角与预测航向角,velocity_accelerate、pitch_accelerate与yaw_accelerate分别表示线加速度、俯仰角对应的角加速度与航向角对应的角加速度,∫*dt表示积分,∫∫*dt表示双重积分。
[0122]
可以理解,按照上述公式分别对多个线加速度积分得到相应的多个线速度,将积分得到的每个线速度分别与当前线速度求和得到相应的预测线速度,由此,能够得到多个预测线速度,类似地,能够得到多个预测俯仰角与预测航向角。其中,线加速度/角加速度的
积分范围为[k

1,k]。
[0123]
在一个实施例中,多个线加速度与角加速度分别由机械臂对应的最大线加速度与最大角加速度确定,而最大线加速度与最大角加速度由机械臂本身的性能和/或参数决定。控制器可接收人工录入或由其他计算机设备传输至的多个线加速度,也可根据最大线加速度与预设的加速度数量动态确定多个线加速度,还可根据最大线加速度与预设的加速度取值步长动态确定多个线加速度。控制器按照类似的方式能够获取俯仰角与航向角各自对应的多个角加速度,在此不再赘述。
[0124]
上述实施例中,基于当前姿态中的各运动参数动态预测下一姿态可能的多个候选姿态,以便于基于动态预测的多个候选姿态中进一步确定机械臂可能达到的所有位置,并从该可能达到的所有位置中筛选所需移动至的下一位置,以便于按照该种局部路径规划方式移动机械臂时,能够保证机械臂的运动轨迹的平滑度。
[0125]
如图4所示,在一个实施例中,提供了一种机械臂的路径规划方法的原理示意图。参照图4,在机械臂的整个路径规划流程开始时,控制器获取机械臂的目标位置与目标姿态,基于当前姿态预测各运动参数的运动窗口,分别得到多个预测线速度、预测俯仰角与预测航向角,对各预测结果进行排列组合得到多个候选姿态,基于当前位置与各候选姿态得到多个候选位置,基于目标位置、目标姿态、当前位置与当前姿态确定第一评价值,基于目标位置、目标姿态、每个候选位置与候选姿态确定第二评价值,并判断所有第二评价值是否都大于或等于第一评价值,若是,则判定机械臂达到目标位置,并结束路径规划流程,若否,则判断各第二评价值中是否存在处于预设误差范围内的第二评价值,若是,则判定机械臂达到目标位置,并结束路径规划流程,若否,则基于第一评价值与第二评价值从候选位置中筛选下一位置,控制机械臂按照相应候选姿态移动至下一位置,将下一位置更新为当前位置,将下一位置对应的候选姿态更新为当前姿态,并返回至基于当前姿态预测各运动参数的运动窗口的步骤继续执行。
[0126]
上述实施例中,在给定目标位置与目标姿态等约束条件的情况下,通过穷举机械臂的各运动参数(线速度、俯仰角与航向角等)来筛选局部最优路径,并按照局部最优路径控制机械臂移动,能够提高机械臂的运动轨迹的平滑度。
[0127]
应该理解的是,虽然图1与图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1与图4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0128]
在一个实施例中,如图5所示,提供了一种机械臂的路径规划装置500,包括:获取模块501、预测模块502、确定模块503、筛选模块504、控制模块505和更新模块506,其中:
[0129]
获取模块501,用于获取机械臂的目标位置、当前位置与当前姿态;
[0130]
预测模块502,用于基于当前姿态进行姿态预测得到多个候选姿态;
[0131]
确定模块503,用于基于当前位置与候选姿态确定多个候选位置;
[0132]
筛选模块504,用于根据目标位置与当前位置从候选位置中筛选下一位置;
[0133]
控制模块505,用于控制机械臂按照下一位置对应的候选姿态移动至下一位置;
[0134]
更新模块506,用于将下一位置更新为当前位置,将下一位置对应的候选姿态更新为当前姿态。
[0135]
在一个实施例中,筛选模块504,还用于基于目标位置与当前位置确定第一评价值;基于目标位置与各候选位置,分别确定每个候选位置对应的第二评价值;基于第一评价值与第二评价值,从候选位置中筛选下一位置。
[0136]
在一个实施例中,获取模块501,还用于获取机械臂的目标姿态;筛选模块504,还用于基于目标位置、目标姿态、当前位置与当前姿态确定第一评价值;基于目标位置、目标姿态、各候选位置与相应候选姿态,分别确定每个候选位置对应的第二评价值。
[0137]
在一个实施例中,筛选模块504,还用于从候选位置中筛选最小的第二评价值所对应的候选位置;若最小的第二评价值小于第一评价值,则将所筛选出的候选位置确定为下一位置。
[0138]
在一个实施例中,筛选模块504,还用于当各第二评价值均大于或等于第一评价值时,判定机械臂到达目标位置;或,当各第二评价值中存在处于预设误差范围内、且小于第一评价值的第二评价值时,判定机械臂到达目标位置。
[0139]
在一个实施例中,获取模块501,还用于获取障碍物位置;确定模块503,还用于基于当前位置与候选姿态确定多个预测位置;基于障碍物位置从多个预测位置中筛选候选位置。
[0140]
在一个实施例中,当前姿态包括:当前线速度、当前俯仰角与当前航向角;预测模块502,还用于基于当前线速度预测得到多个预测线速度;基于当前俯仰角预测得到多个预测俯仰角;基于当前航向角预测得到多个预测航向角;对预测线速度、预测俯仰角与预测航向角进行排列组合,得到多个候选姿态。
[0141]
关于机械臂的路径规划装置的具体限定可以参见上文中对于机械臂的路径规划方法的限定,在此不再赘述。上述机械臂的路径规划装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0142]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是控制器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种机械臂的路径规划方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0143]
本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备
可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0144]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现各方法实施例中的步骤。
[0145]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现各方法实施例中的步骤。
[0146]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read

only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0147]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0148]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1