一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

避障方法、装置及智能设备与流程

2022-11-19 10:30:12 来源:中国专利 TAG:


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.图1是本技术一实施例提供的一种避障方法的流程图;
41.图2是本技术一实施例提供的一种避障装置的结构示意图;
42.图3是本技术一实施例提供的一种智能设备的结构示意图。
具体实施方式
43.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
44.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
45.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
46.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
47.实施例一:
48.目前,智能设备的样式、功能等多种多样,智能设备能够执行的任务的种类也越来越多。在智能设备执行任务的过程中,很可能会遇到障碍物,此时,该智能设备需要执行避障动作。
49.在执行避障动作的过程中,若只分别考虑各个关节如何躲避障碍物的轨迹,即,只
在关节空间考虑避障动作,则很可能导致任务执行失败。这是因为,智能设备执行的任务中,有些任务需要智能设备的末端的姿态从始至终均满足特定的要求,若该智能设备在执行避障动作的时候,末端的姿态没有满足该特定的要求,将导致任务执行失败。例如,当智能设备执行的任务为端咖啡到达目的地时,则在该智能设备移动的过程,即使在该智能设备在执行避障动作的过程中,也需要该智能设备的末端一直维持着使得咖啡杯的杯口是朝上的姿态,以保证咖啡不会从咖啡杯洒落,直到到达目的地,否则,一旦末端的姿态不能满足杯口朝上的要求,则会导致末端端着的咖啡洒落,从而导致任务执行失败。
50.为了提高执行的任务的成功率,本技术实施例提供了一种避障方法。在该避障方法中,当判断出存在障碍物时,将确定的各个关节所受到的斥力映射到末端,得到末端合成斥力,并根据该末端合成斥力、末端当前的位置和速度确定该末端在下一时刻的位置,再结合末端的预设姿态反推该智能设备各个关节的关节角度,以根据各个关节角度对各个关节进行相应的控制。
51.由于将各个关节所受到的斥力映射到末端,且在计算各个关节的关节角度时也增加了末端的预设姿态的限制,因此,使得各个关节在根据得到的关节角度转动后,末端的姿态也受到该末端的预设姿态的限制,从而提高执行的任务的成功率。
52.下面结合附图对本技术实施例提供的避障方法进行描述。
53.图1示出了本技术实施例提供的一种避障方法的流程图,该避障方法应用于包括至少两个关节的智能设备。下面以智能设备为有机械臂的机器人为例进行描述,在本技术实施例中,机器人包括控制中心、驱动器和伺服电机,且每一个伺服电机与对应的驱动器连接。当控制中心将各个关节的关节角度所对应的驱动信号发送至对应的驱动器后,驱动器将控制对应的伺服电机运行,以控制各个关节最终转动到其对应的关节角度,详述如下:
54.步骤s11,若判断出存在障碍物,则计算各个关节所受到的斥力。
55.本技术实施例中,控制中心可通过外部视觉设备(如3维相机)或安装在智能设备上的电子皮肤来获取该智能设备周围的环境信息,再根据该环境信息判断该智能设备周围是否存在障碍物,并在存在障碍物时,计算各个关节所受到的虚拟的斥力。当然,控制中心也可在机器人与物体发生碰撞之后,判断机器人周围存在障碍物,进而计算各个关节所受到的实际的斥力。
56.在一些实施例中,考虑到机械臂的末端会影响任务是否被成功执行,因此,控制中心可通过外部视觉设备重点关注机械臂周围是否存在障碍物,或者,将电子皮肤安装在机器人的机械臂上,以获取该机械臂周围的障碍物信息,如获取该机械臂周围的障碍物的位置,并根据障碍物的位置计算各个关节所受到的斥力。
57.步骤s12,计算各个关节所受到的斥力在上述机器人的末端合成的力,得到末端合成斥力。
58.具体地,该机器人的末端所受到的斥力即末端合成斥力,该末端合成斥力由控制中心计算得到,其为与其串联的各个关节的斥力所对应的合力。对于具有机械臂的机器人来说,机械臂的末端所受到的斥力为该机械臂各个关节所受到的斥力在该末端合成的力。
59.步骤s13,根据上述末端当前的位置、当前的速度以及上述末端合成斥力,确定上述末端在下一时刻的位置。
60.其中,末端当前的位置、当前的速度是指该末端在当前时刻的位置、当前时刻的速
度。
61.其中,末端在下一时刻的位置是指末端在机器人下一个控制时刻所对应的位置。其中,本技术实施例中末端的位置通过笛卡尔空间中的坐标表示,该坐标可为三维坐标。
62.本技术实施例中,当末端受到末端合成斥力的作用后,该末端的加速度会发生改变,此时,控制中心可根据末端合成斥力、末端当前的位置、当前的速度估算该末端的加速度,再对该末端的加速度进行两次积分,得到该末端在下一时刻的位置。
63.步骤s14,根据上述末端的预设姿态以及上述末端在下一时刻的位置确定各个关节在下一时刻对应的关节角度,其中,上述末端的预设姿态根据上述智能设备当前执行的任务确定。
64.其中,末端的预设姿态是指期望该末端维持的姿态,其根据智能设备当前执行的任务确定。例如,假设机械臂的末端为夹爪,该机械臂当前执行的任务是“端着咖啡从位置a到达位置b”,则该夹爪的预设姿态为:夹爪端着咖啡移动,且咖啡不会洒落所对应的姿态。
65.需要指出的是,该预设的姿态可以为一种姿态,也可以为多种姿态,只需要保证该姿态能够成功执行当前的任务可。例如,当咖啡杯的杯口朝上时,即使夹爪在平面上旋转,咖啡通常也不会洒落,此时,由于咖啡不会洒落,即夹爪旋转过程中所涉及的多个姿态均能使得“端着咖啡从位置a到达位置b”这一任务能够被成功执行,即,可将夹爪旋转过程中所涉及的多个姿态设为夹爪的预设的姿态。
66.本技术实施例中,控制中心结合机器人的逆运动学,根据末端的预设姿态以及末端在下一时刻的位置计算出各个关节在下一时刻应的各个关节角度。
67.步骤s15,根据各个上述关节角度驱动对应的关节到达上述关节角度。
68.具体地,机器人的每一个关节的动作由安装于关节部位的伺服电机运行实现,而每一个伺服电机连接对应的驱动器。本技术实施例中,可由机器人的控制中心将各个关节的关节角度所对应的驱动信号发送至对应的驱动器,然后驱动器控制对应的伺服电机运行,以控制各个关节最终转动到其对应的关节角度。
69.本技术实施例中,在判断出存在障碍物后,先计算各个关节所受到的斥力,再将各个关节所受到的斥力映射到机器人的末端,得到该末端所受到的力
‑‑‑‑
末端合成斥力,之后再根据末端当前的位置、当前的速度以及该末端合成斥力确定该末端在下一时刻的位置,并将该末端在下一时刻的位置以及末端的预设姿态确定该预设姿态对应的各个关节角度,最后驱动各个关节转动到该各个关节对应的关节角度。由于将各个关节所受到的斥力映射到末端,因此,能够结合末端的其他信息计算出该末端在下一时刻的位置,同时,由于在计算各个关节的关节角度时增加了末端的预设姿态以及末端在下一时刻的位置的限制,因此,使得各个关节在根据得到的关节角度转动后,末端的姿态也受到该末端的预设姿态的限制,且由于末端的预设姿态根据智能设备当前执行的任务确定,因此,当智能设备在执行避障动作时仍保证其末端受到预设姿态的限制,能够提高执行的任务的成功率。
70.在一些实施例中,为了使得机器人在避障时,其避障的位置尽可能接近预设的位置(该预设的位置为机器人完成任务时需要到达的目的地的位置,其根据智能设备当前执行的任务确定。如机器人需要将咖啡从位置a端到位置b,则该位置b的位置即为预设的位置)、避障速度尽可能地接近预设的速度(该预设的速度为用户希望机器人完成任务时所采用的速度,其根据智能设备当前执行的任务确定)以及避障加速度尽可能接近预设的加速
度(该预设的加速度为用户希望机器人完成任务时所采用的加速度,其根据智能设备当前执行的任务确定),则在计算末端在下一时刻的位置时将增加预设的位置、预设的速度以及预设的加速度的限制。
71.上述步骤s13包括:
72.a1、根据上述末端当前的位置、当前的速度、预设的位置、预设的速度、预设的加速度以及上述末端合成斥力,确定上述末端的平移加速度,其中,该预设的位置、预设的速度以及预设的加速度根据智能设备当前执行的任务确定。
73.假设在笛卡尔空间下,机器人末端的当前位置为x,当前的速度(或称为平移速度)为预设的位置、预设的速度以及预设的加速度分别为xd、和根据导纳控制原理,可计算出机器人末端在当前时刻的平移加速度:
[0074][0075]
上式中,m、b和k分别为正定虚拟质量矩阵、阻尼矩阵和刚度矩阵,且在m、b和k的矩阵中,矩阵的数值均大于0。为了便于计算,m、b和k可设置为3
×
3矩阵。上式中,f为末端合成斥力。
[0076]
上式中的数值均可为三维坐标,即:x=[x,y,z]
t
,xd=[xd,yd,zd]
t

[0077]
a2、根据上述末端的平移加速度以及上述智能设备的控制周期,确定上述末端在下一时刻的位置。
[0078]
本技术实施例中,对末端的平移加速度进行两次积分,得到该末端在下一时刻的在笛卡尔空间的位置,即根据下式确定末端在下一时刻的位置:
[0079][0080][0081]
上式中,t为机器人控制器的控制周期。
[0082]
本技术实施例中,由于增加了预设的位置、预设的速度以及预设的加速度的限制去计算末端在下一时刻的位置,因此,使得所确定的末端在下一时刻的位置更接近预设的位置、平移的速度更接近预设的速度且平移的加速度也更接近预设的加速度。同时,由于预设的位置、预设的速度以及预设的加速度通常为根据当前执行的任务设定的值,而当前执行的任务与用户的需求相关,因此,当机器人的末端在下一时刻的位置更接近预设的位置时,表明机器人的运行更符合用户的需求,从而提高用户的体验。
[0083]
在一些实施例中,在上述步骤s15之后,包括:
[0084]
b1、若上述下一时刻的位置与上述预设的位置不同,则根据上述末端的平移加速度确定上述末端在下一时刻的平移速度。
[0085]
具体地,将计算得到的末端在下一时刻的位置与预设的位置比较,若判断出两者不同,表明机器人的末端还没有到达预设的位置,则对该末端的当前的平移加速度进行一次积分,以计算出该末端在下一时刻的平移速度。
[0086]
b2、将上述末端在下一时刻的平移速度作为上述末端当前的速度,以及,将上述下一时刻的位置作为上述末端当前的位置,并返回上述计算各个关节所受到的斥力的步骤以
及后续步骤,直到上述末端在下一时刻的位置与上述预设的位置相同。
[0087]
具体地,当判断出机器人的末端还没有到达预设的位置后,由于该末端的位置已改变,因此,需要重新计算各个关节所受到的斥力,并通过将下一时刻的平移速度作为末端当前的速度,以及,将末端在下一时刻的位置作为该末端当前的位置,以计算末端在新的下一时刻的位置等参数。每次计算出末端在下一时刻的位置后,均将新计算出的位置与预设的位置比较,以及时判断末端是否已到达预设的位置。
[0088]
本技术实施例中,由于在计算出末端在下一时刻的位置之后,将该位置与预设的位置比较,因此,能够及时获知机器人的末端是否已到达预设的位置。此外,由于在机器人的末端没有到达预设的位置后,重新计算各个关节所受到的斥力以及末端新的位置,因此,能够保证机器人在避障过程中仍维持相同的姿态朝着预设的位置前进,从而提高被执行的任务的成功率。
[0089]
在一些实施例中,考虑到关节角度可采用关节空间表示,也可采用笛卡尔空间表示,而末端的姿态需要在笛卡尔空间表示,因此,当需要维持末端的姿态不变时,将选择计算关节角度在笛卡尔空间下的表示。此时,本技术实施例需要先将各个关节所受到的斥力映射到末端,以便后续根据映射得到的末端合成斥力计算出各个关节在末端维持在笛卡尔空间下表示的预设的姿态时所对应的关节角度。也即,本技术实施例的步骤s12包括:
[0090]
若上述智能设备当前执行的任务为目标任务,则计算各个关节所受到的斥力在上述智能设备的末端合成的力,得到末端合成斥力,其中,上述智能设备在执行上述目标任务时,上述智能设备的末端的姿态需要满足预设要求,该预设要求根据上述目标任务确定。
[0091]
具体地,预先对机器人可执行的各个任务进行划分:若任务被执行过程中,末端的姿态需要满足预设要求(例如,末端的姿态需要维持固定的姿态,或者,末端的姿态只能在有限的范围内改变),则该任务将被划分为目标任务,反之,若任务被执行过程中,末端的姿态不需要满足预设要求(即末端的姿态可以为任意姿态),则该任务将被划分为非目标任务。
[0092]
本技术实施例中,当机器人执行一个任务时,可根据预先对各个任务的划分结果判断出当前执行的任务是否为目标任务,若为目标任务,则在确定出各个关节所受到的斥力之后,将各个斥力映射到末端以计算出末端的末端合成斥力。由于在判断出当前执行的任务为目标任务时,将各个斥力映射到末端,因此,能够保证后续可以基于该末端合成斥力以及末端的预设姿态,计算出各个关节所对应的关节角度,从而保证计算得到的关节角度受到末端的预设姿态的限制。
[0093]
在一些实施例中,当机器人执行的任务不是目标任务时,上述避障方法还包括:
[0094]
c1、若上述智能设备当前执行的任务不为上述目标任务,则根据各个关节所受到的斥力计算出各个关节的加速度。
[0095]
c2、根据各个关节的加速度分别确定各个关节在下一时刻的位置。
[0096]
具体地,结合导纳算法计算出各个关节的加速度,再对计算得到的各个关节的加速度进行两次积分,以获得各个关节在下一时刻的位置。
[0097]
c3、根据各个关节在下一时刻的位置确定各个关节在下一时刻的关节角度,并驱动各个关节在下一个时刻到达对应的关节角度。
[0098]
具体地,在确定出各个关节在下一时刻的位置后,根据机器人逆运动学计算出各
个关节在下一时刻的关节角度,并通过伺服电机控制各个关节转动到对应的关节角度。
[0099]
本技术实施例中,由于在判断出机器人执行的任务对末端的姿态没有要求后,没有将各个关节所受到的斥力映射到机器人的末端,即,直接根据各个关节所受到的斥力计算出该各个关节的加速度,因此,可以快速计算出各个关节在下一个时刻的关节角度,从而提高对机器人控制的速度。
[0100]
在一些实施例中,上述计算各个关节所受到的斥力在上述智能设备的末端合成的力,得到末端合成斥力,包括:
[0101]
d1、根据各个关节所受到的斥力以及各个关节所对应的雅克比矩阵转置,分别确定各个关节所受到的力矩。
[0102]
d2、根据各个关节所受到的力矩以及上述末端的雅克比矩阵转置的逆,确定上述末端合成斥力。
[0103]
本技术实施例中,根据串联机器人的静力学公式,将各个关节所受到的斥力转为各个关节所受到的力矩:
[0104][0105]
其中,τj为关节j所对应的力矩,j=1,2..n,该n为关节的总数量,例如,当关节的总数量为6时,则该n为6。上述公式中,为关节j的雅克比矩阵转置,t为机器人控制器的控制周期,fi为关节j所受到的斥力值,由于每个关节可能受到多个斥力,因此,在计算每个关节所对应的力矩时,需要对各个斥力进行累加计算。
[0106]
在计算出各个关节所受到的力矩后,根据下式将各个力矩映射到机器人的末端,得到该末端对应的末端合成斥力f:
[0107][0108]
其中,为机器人的末端的雅克比矩阵转置的逆,τ为关节力矩矢量,即τ=[τ1,τ2,..,τn]
t
,n为关节的总数。若关节的总量为6,且越靠近末端关节的编号越大,则即为
[0109]
在本技术实施例中,由于将个各个关节所受到的斥力转为各个关节所受到的力矩时,考虑到每个关节可能受到多个斥力,因此,使得计算得到的力矩更准确,进而能够保证后续计算的末端合成斥力更准确。
[0110]
在一些实施例中,上述步骤s11中计算各个关节所受到的斥力,包括:
[0111]
对任意一个关节,根据以下方式计算上述关节所受到的斥力:根据预设的斥力场的最大范围、上述障碍物的位置、上述障碍物距离上述关节最近的位置,确定上述关节所受到的斥力。
[0112]
本技术实施例中,可通过建立虚拟斥力场来实现机器人沿障碍物反方向运动的效果。其中,斥力场可根据如下公式计算:
[0113]
[0114]
其中,η为斥力场系数,d
max
》0,d
max
为斥力场的最大范围,p
ob
为障碍物的位置,pi为障碍物距离机器人的关节i最近的位置,i=1,2,3...,n,该n为关节的数量,d=|p
ob-pi|为障碍物到机器人的关节i的距离,当d≤d
max
时,斥力场才会对机器人产生斥力。
[0115]
在上述斥力场公式中,前半部分用于确定斥力的大小,后半部分用于确定斥力的方向,即后半部分用于确定机器人各关节用于回避障碍物的方向。
[0116]
本技术实施例中,由于各个关节所对应的斥力受到障碍物到关节的距离的约束,因此,能够保证各个关节所对应的斥力更准确。
[0117]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0118]
实施例二
[0119]
对应于上文实施例提供的避障方法,图2示出了本技术实施例提供的避障装置的结构框图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0120]
参照图2,该避障装置2应用于智能设备,包括:斥力计算模块21、末端合成斥力计算模块22、末端在下一时刻的位置确定模块23、关节角度计算模块24、关节控制模块25。其中:
[0121]
斥力计算模块21,用于若判断出存在障碍物,则计算各个关节所受到的斥力。
[0122]
末端合成斥力计算模块22,用于计算各个关节所受到的斥力在上述智能设备的末端合成的力,得到末端合成斥力。
[0123]
末端在下一时刻的位置确定模块23,用于根据上述末端当前的位置、当前的速度以及上述末端合成斥力,确定上述末端在下一时刻的位置。
[0124]
关节角度计算模块24,用于根据上述末端的预设姿态以及上述末端在下一时刻的位置确定各个关节在下一时刻对应的关节角度,其中,上述末端的预设姿态根据上述智能设备当前执行的任务确定。
[0125]
关节控制模块25,用于根据各个上述关节角度驱动对应的关节到达上述关节角度。
[0126]
本技术实施例中,由于将各个关节所受到的斥力映射到末端,因此,使得各个关节在根据得到的关节角度转动后,末端的姿态也受到该末端的预设姿态的限制,且由于末端的预设姿态根据智能设备当前执行的任务确定,因此,当智能设备在执行避障动作时仍保证其末端受到预设姿态的限制,能够提高执行的任务的成功率。
[0127]
在一些实施例中,上述末端在下一时刻的位置确定模块23包括:
[0128]
末端的平移加速度计算单元,用于根据上述末端当前的位置、当前的速度、预设的位置、预设的速度、预设的加速度以及上述末端合成斥力,确定上述末端的平移加速度,其中,所述预设的位置、预设的速度以及预设的加速度根据所述智能设备当前执行的任务确定。
[0129]
末端的位置预估单元,用于根据上述末端的平移加速度以及上述智能设备的控制
周期,确定上述末端在下一时刻的位置。
[0130]
在一些实施例中,该避障装置2还包括:
[0131]
位置比较模块,用于若上述下一时刻的位置与上述预设的位置不同,则根据上述末端的平移加速度确定上述末端在下一时刻的平移速度。
[0132]
新的末端当前的速度确定模块,用于将上述末端在下一时刻的平移速度作为上述末端当前的速度,以及,将上述下一时刻的位置作为上述末端当前的位置,并返回上述计算各个关节所受到的斥力的步骤以及后续步骤,直到上述末端在下一时刻的位置与上述预设的位置相同。
[0133]
在一些实施例中,上述末端合成斥力计算模块22具体用于:
[0134]
若上述智能设备当前执行的任务为目标任务,则计算各个关节所受到的斥力在上述智能设备的末端合成的力,得到末端合成斥力,其中,上述智能设备在执行上述目标任务时,上述智能设备的末端的姿态需要满足预设要求,所述预设要求根据所述目标任务确定。
[0135]
在一些实施例中,上述计算各个关节所受到的斥力在上述智能设备的末端合成的力,得到末端合成斥力,包括:
[0136]
根据各个关节所受到的斥力以及各个关节所对应的雅克比矩阵转置,分别确定各个关节所受到的力矩;
[0137]
根据各个关节所受到的力矩以及上述末端的雅克比矩阵转置的逆,确定上述末端合成斥力。
[0138]
在一些实施例中,上述避障装置2还包括:
[0139]
关节空间的加速度计算模块,用于若上述智能设备当前执行的任务不为上述目标任务,则根据各个关节所受到的斥力计算出各个关节的加速度。
[0140]
关节空间的位置计算模块,用于根据各个关节的加速度分别确定各个关节在下一时刻的位置。
[0141]
关节空间的关节控制模块,用于根据各个关节在下一时刻的位置确定各个关节在下一时刻的关节角度,并驱动各个关节在下一个时刻到达对应的关节角度。
[0142]
在一些实施例中,上述斥力计算模块21在计算各个关节所受到的斥力时,具体用于:
[0143]
对任意一个关节,根据以下方式计算上述关节所受到的斥力:根据预设的斥力场的最大范围、上述障碍物的位置、上述障碍物距离上述关节的最近的位置,确定上述关节所受到的斥力。
[0144]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0145]
实施例三:
[0146]
图3为本技术一实施例提供的智能设备的结构示意图。如图3所示,该实施例的智能设备3包括:至少两个关节(图3中未示出)、至少一个处理器30(图3中仅示出一个处理器)、存储器31以及存储在上述存储器31中并可在上述至少一个处理器30上运行的计算机程序32,上述处理器30执行上述计算机程序32时实现上述任意各个方法实施例中的步骤。
[0147]
上述智能设备3可以为机械臂、包括有机械臂的机器人或者其他能够半自主或全
自主工作的智能机器。该智能设备可包括,但不仅限于,处理器30、存储器31。本领域技术人员可以理解,图3仅仅是智能设备3的举例,并不构成对智能设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
[0148]
所称处理器30可以是中央处理单元(central processing unit,cpu),该处理器30还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0149]
所述存储器31在一些实施例中可以是所述智能设备3的内部存储单元,例如智能设备3的硬盘或内存。所述存储器31在另一些实施例中也可以是所述智能设备3的外部存储设备,例如所述智能设备3上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器31还可以既包括所述智能设备3的内部存储单元也包括外部存储设备。所述存储器31用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。
[0150]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0151]
本技术实施例还提供了一种网络设备,该网络设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。
[0152]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
[0153]
本技术实施例提供了一种计算机程序产品,当计算机程序产品在智能设备上运行时,使得智能设备执行时实现可实现上述各个方法实施例中的步骤。
[0154]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可
以包括:能够将计算机程序代码携带到拍照装置/智能设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
[0155]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0156]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0157]
在本技术所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0158]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0159]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献