CN114536342A - 一种多臂系统及其臂间防撞控制方法 - Google Patents
一种多臂系统及其臂间防撞控制方法 Download PDFInfo
- Publication number
- CN114536342A CN114536342A CN202210287293.0A CN202210287293A CN114536342A CN 114536342 A CN114536342 A CN 114536342A CN 202210287293 A CN202210287293 A CN 202210287293A CN 114536342 A CN114536342 A CN 114536342A
- Authority
- CN
- China
- Prior art keywords
- arm
- mechanical arm
- collision
- connecting rod
- bounding box
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1674—Programme controls characterised by safety, monitoring, diagnostic
- B25J9/1676—Avoiding collision or forbidden zones
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/0084—Programme-controlled manipulators comprising a plurality of manipulators
Abstract
本说明书实施例公开了一种多臂系统及其臂间防撞控制方法。所述多臂系统包括基座和至少两个机械臂,所述至少两个机械臂分别与所述基座活动连接,每个机械臂包括至少两个连杆,且所述至少两个连杆依次活动连接。所述多臂系统臂间防撞控制方法包括:获取所述至少两个机械臂中第一机械臂和第二机械臂的系统结构参数;获取所述第一机械臂和所述第二机械臂的期望关节数据;基于所述系统结构参数以及所述期望关节数据,分别生成所述第一机械臂和所述第二机械臂的层次有向包围盒;基于所述层次有向包围盒,判断所述第一机械臂和所述第二机械臂是否将发生臂间碰撞;响应于所述第一机械臂和所述第二机械臂将发生臂间碰撞,执行防撞响应操作。
Description
技术领域
本说明书涉及机器人技术领域,特别涉及一种多臂系统及其臂间防撞控制方法。
背景技术
多臂系统可以实现类似人手左右协作,广泛应用于需要实现复杂操作的工业及医疗领域。在多臂系统具有更高自由度的同时,也带来了臂间发生碰撞干涉的风险。特别是在遥控操作多臂系统的应用场景下,操作人员往往远离多臂系统的工作环境,仅通过摄像机进行观察且观察视角有限,很难及时发现视线外发生臂间碰撞干涉。而现有的防撞控制方法无法在碰撞前做出防撞响应,或是过于依赖于其他设备(例如,传感器)的精度以及计算机的计算能力,对多臂系统的复杂工作情况无法进行实时碰撞检测以及进行有效的防撞响应。
因此,有必要提供一种多臂系统及其臂间防撞控制方法,以在遥控操作、自动控制等过程中进行实时碰撞检测以及在检测到臂间即将发生碰撞时执行防撞响应操作。
发明内容
本说明书实施例之一提供一种多臂系统臂间防撞控制方法,所述多臂系统包括基座和至少两个机械臂,所述至少两个机械臂分别与所述基座活动连接;每个机械臂包括至少两个连杆,所述至少两个连杆依次活动连接;所述多臂系统臂间防撞控制方法包括:获取所述至少两个机械臂中第一机械臂和第二机械臂的系统结构参数;获取所述第一机械臂和所述第二机械臂的期望关节数据;基于所述系统结构参数以及所述期望关节数据,分别生成所述第一机械臂和所述第二机械臂的层次有向包围盒;基于所述层次有向包围盒,判断所述第一机械臂和所述第二机械臂是否将发生臂间碰撞;响应于所述第一机械臂和所述第二机械臂将发生臂间碰撞,执行防撞响应操作。
本说明书实施例之一提供一种多臂系统,所述多臂系统包括:获取模块,用于获取所述至少两个机械臂中第一机械臂和第二机械臂的系统结构参数,以及获取所述第一机械臂和所述第二机械臂的期望关节数据;确定模块,用于基于所述系统结构参数以及所述期望关节数据,分别生成所述第一机械臂和所述第二机械臂的层次有向包围盒;判断模块,用于基于所述层次有向包围盒,判断所述第一机械臂和所述第二机械臂是否将发生臂间碰撞;执行模块,用于响应于所述第一机械臂和所述第二机械臂将发生臂间碰撞,执行防撞响应操作。
本说明书实施例之一提供一种多臂系统,所述系统包括至少一个处理器和至少一个存储设备,所述存储设备用于存储指令,当所述至少一个处理器执行所述指令时,实现如本说明书任一实施例所述的方法。
本说明书实施例之一提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行如本说明书任一实施例所述的方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的多臂系统的应用场景示意图;
图2是根据本说明书一些实施例所示的多臂系统的示意图;
图3是根据本说明书一些实施例所示的多臂系统的模块图;
图4是根据本说明书一些实施例所示的多臂系统臂间防撞控制方法的示例性流程图;
图5是根据本说明书一些实施例所示的机械臂及其臂局部有向包围盒的示意图;
图6是根据本说明书又一些实施例所示的机械臂及其臂局部有向包围盒的示意图;
图7是根据本说明书一些实施例所示的连杆及其连杆整体有向包围盒的示意图;
图8是根据本说明书一些实施例所示的连杆及其连杆局部有向包围盒的示意图;
图9是根据本说明书一些实施例所示的有向包围盒的示意图;以及
图10是根据本说明书一些实施例所示的生成层次有向包围盒方法的示例性流程图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
本说明书实施例提供了一种多臂系统以及多臂系统臂间防撞控制方法,可以应用于需要实现复杂操作的工业及医疗领域。在本说明书的一些实施例中,在遥控操作场景下,多臂系统一般是在接收到主控端的遥控信号后,再根据遥控信号计算确定机械臂下一时刻的期望关节位置,随后机械臂各关节向期望关节位置移动。在此过程中,主控端的遥控信号具有不可预测性,使得受控移动的机械臂的运动轨迹无法提前预设。进一步的,从接收到遥控信号至计算确定机械臂下一时刻的期望关节位置之间的时间间隔较短(例如,1ms)。为了避免机械臂在随后的移动过程中发生碰撞,需在机械臂移动前针对期望关节位置进行碰撞检测,并在检测期望关节位置下会发生碰撞时采取防撞响应操作。这对多臂系统的计算速度以及防撞响应能力提出了较高的要求。因此,本说明书实施例提供一种多臂系统及其臂间防撞控制方法,以在遥控操作过程中进行实时碰撞检测以及在检测到臂间即将发生碰撞时执行防撞响应操作。
本说明书实施例提供的一种多臂系统以及多臂系统臂间防撞控制方法,通过获取第一机械臂和第二机械臂的系统结构参数以及期望关节数据,并基于系统结构参数和期望关节数据生成第一机械臂和第二机械臂的层次有向包围盒,从而基于层次有向包围盒判断第一机械臂和第二机械臂是否将发生臂间碰撞,以及当检测到第一机械臂和第二机械臂之间即将发生臂间碰撞时,执行防撞响应操作。通过上述多臂系统以及多臂系统臂间防撞控制方法,可以摆脱对额外传感器的依赖,在保证碰撞检测精度的同时提升了碰撞检测速率,提高了多臂系统碰撞检测的实时性,确保遥控操作过程中多臂系统的可靠性和安全性。在一些实施例中,本说明书实施例提供的一种多臂系统以及多臂系统臂间防撞控制方法,也可以应用于其他场景,例如,用户在多臂系统附近通过控制手柄进行控制的场景。
图1是根据本说明书一些实施例所示的多臂系统的应用场景示意图。
多臂系统100是一种拟人手臂、手腕和手功能的机械电子装置。在一些实施例中,如图1所示,多臂系统100可以包括机械臂110、网络120、终端130、处理设备140和存储设备150。在一些实施例中,多臂系统100可以应用于需要实现复杂操作的工业及医疗领域。
机械臂110可以根据接收到的指令(例如,遥控信号指令)执行相应操作。在一些实施例中,机械臂110可以包括至少两个依次活动连接的连杆,当机械臂110接收到其他设备或是系统组成部分发送的数据或指令时,机械臂110上连接连杆的关节进行运动,以使机械臂110移动到指令指示的位置。在一些实施例中,机械臂110可以是多臂机器人的一部分,也可以是多个单臂机器人的一部分。在一些实施例中,机械臂110还可以设置有传感器,以检测连杆运动时的运动学参数(例如,位置、角度、速度等),并将运动学参数反馈至处理设备140或终端130。在一些实施例中,机械臂110还可以设置有摄像头,以获取机械臂110及其所处环境的图像,并将该图像发送至处理设备140或终端130。关于机械臂的更多内容可以参见图2的相关描述,在此不作赘述。
网络120可以包括能够促进多臂系统100的信息和/或数据交换的任何合适的网络。在一些实施例中,多臂系统100的至少一个组件(例如,机械臂110、终端130、处理设备140、存储设备150)可以通过网络120与多臂系统100中至少一个其他组件交换信息和/或数据。例如,处理设备140可以通过网络120从终端130处获取用户输入的遥控信号。在一些实施例中,网络120可以包括至少一个网络接入点。例如,网络120可以包括有线和/或无线网络接入点(例如,基站和/或互联网交换点),多臂系统100的至少一个组件可以通过接入点连接到网络120以交换数据和/或信息。
终端130可以与机械臂110、处理设备140和/或存储设备150通信和/或连接。在一些实施例中,终端130可以包括移动设备131、平板计算机132、膝上型计算机133等或其任意组合。例如,移动设备131可以包括移动控制手柄、个人数字助理(PDA)、智能手机等或其任意组合。在一些实施例中,终端130可以包括显示器,显示器可以用于显示臂间防撞控制过程的相关信息或图像,例如,机械臂110的当前关节数据以及期望关节数据或机械臂110及其所处环境的图像。
在一些实施例中,终端130可以包括输入设备。输入设备可以选用键盘输入、触摸屏(例如,具有触觉或触觉反馈)输入、语音输入、眼睛跟踪输入、手势跟踪输入、大脑监测系统输入、图像输入、视频输入或任何其他类似的输入机制。通过输入设备接收的输入信息可以通过如总线传输到处理设备140,以进行进一步处理。其他类型的输入设备可以包括光标控制装置,例如,鼠标、轨迹球或光标方向键等。在一些实施例中,用户可以通过输入设备输入遥控信号。在一些实施例中,终端130可以包括输出设备。输出设备可以包括显示器、扬声器、打印机等或其任意组合。输出设备可以用于输出处理设备140确定的与机械臂110有关的参数等。在一些实施例中,终端130可以是处理设备140的一部分。
处理设备140可以处理从机械臂110、至少一个终端130、存储设备150或机械臂控制系统100的其他组件获得的数据和/或信息。例如,处理设备140可以从终端130中获取遥控信号,用于进一步计算确定机械臂110下一时刻的期望关节位置。又例如,处理设备140可以从存储设备150中获取机械臂110的系统结构参数,例如连杆的连杆坐标系的相关描述参数(例如,DH参数)、连杆上选取的臂包围点,以及各连杆的多层有向包围盒相关描述参数等,用于进一步进行碰撞检测计算。在一些实施例中,处理设备140可以是单一服务器或服务器组。服务器组可以是集中式的或分布式的。在一些实施例中,处理设备140可以是本地或远程的。例如,处理设备140可以通过网络120从机械臂110、存储设备150和/或终端130访问信息和/或数据。又例如,处理设备140可以直接连接到机械臂110、终端130和/或存储设备150以访问信息和/或数据。再例如,处理设备140可以安装在机械臂110上。在一些实施例中,处理设备140可以在云平台上实现。例如,云平台可以包括私有云、公共云、混合云、社区云、分布式云、云间云、多云等或其任意组合。
存储设备150可以存储数据、指令和/或任何其他信息。例如,存储设备150可以存储机械臂110的系统结构参数等。在一些实施例中,存储设备150可以存储从机械臂110、终端130和/或处理设备140获得的数据。在一些实施例中,存储设备150可以存储处理设备140用来执行或使用来完成本说明书中描述的示例性方法的数据和/或指令。在一些实施例中,存储设备150可以包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。在一些实施例中,存储设备150可以在云平台上实现。
在一些实施例中,存储设备150可以连接到网络120以与多臂系统100中的至少一个其他组件(例如,处理设备140、终端130)通信。多臂系统100中的至少一个组件可以通过网络120访问存储设备150中存储的数据。在一些实施例中,存储设备150可以是处理设备140的一部分。
应该注意的是,上述描述仅出于说明性目的而提供,并不旨在限制本说明书的范围。对于本领域普通技术人员而言,在本说明书内容的指导下,可做出多种变化和修改。可以以各种方式组合本说明书描述的示例性实施例的特征、结构、方法和其他特征,以获得另外的和/或替代的示例性实施例。例如,存储设备150可以是包括云计算平台的数据存储设备150,例如公共云、私有云、社区和混合云等。然而,这些变化与修改不会背离本说明书的范围。
图2是根据本说明书一些实施例所示的多臂系统的示意图。
如图2所示,多臂系统200可以包括基座210以及多个机械臂220(例如,图2中示例性地画出了4个机械臂220)。
在一些实施例中,基座210可以与多个机械臂220活动连接。在一些实施例中,基座210可以通过多个关节分别与多个机械臂220活动连接,多个机械臂220可以相对于基座210转动和/或移动(如伸缩运动)。在一些实施例中,机械臂220的数量与多臂系统200的使用场景相关,根据实际使用需要,可以设置或采用所需数量的机械臂220执行相应操作。在一些实施例中,用于与基座210连接的关节数量与机械臂220的数量相对应。在一些实施例中,如图2所示,基座210上设置有4个关节,4个机械臂220通过该4个关节分别与基座210活动连接,此时基座210与4个机械臂220组成四臂系统。在一些实施例中,多臂系统200可以仅包括基座210和两个机械臂220,基座210通过两个关节与两个机械臂220活动连接,组成双臂系统。
在一些实施例中,每个机械臂220可以包括多个连杆230(如2个、3个、5个、8个等)。在一些实施例中,多个连杆230可以通过关节依次活动连接。在一些实施例中,每个关节都可以对应设置驱动设备(例如,电机)以驱动关节进行转动。在一些实施例中,多个关节可以共用一个驱动设备以同时驱动多个关节进行转动(如平行联动)。在一些实施例中,当机械臂220接收操作指令时,驱动设备(例如,电机)可以驱动多个关节运动,从而使机械臂220移动到操作指令指示的位置。在一些实施例中,机械臂220可以包括串联机械臂、并联机械臂或混联机械臂。在医疗领域中,可以使用串联机械臂。例如,在手术治疗中,医生可以通过操作医生机械臂(例如,串联机械臂)来控制多臂系统完成剪切、打结和缝合等操作。在一些实施例中,如图2所示,其中任一个机械臂220为串联机械臂,机械臂220中的每个连杆230通过关节依次串联连接,组成机械臂220,其中连接相邻两个连杆230的关节可以进行转动,以使机械臂220末端的连杆可以移动到指示位置。在一些实施例中,如图2所示,多个机械臂220为并联机械臂,任意两个机械臂220可以协同动作,以共同完成指定操作。
在一些实施例中,可以以基座210作为原点建立多臂系统200的全局坐标系240,通过全局坐标系240可以表示多臂系统200中每个组件(例如,机械臂220、机械臂220的连杆230或关节)或者有向包围盒的位置和姿态。关于建立全局坐标系的更多内容可以参见步骤410的相关描述,在此不作赘述。
在一些实施例中,可以基于连接各连杆230的关节作为原点建立各连杆230的连杆坐标系250。虽然机械臂220进行活动会导致连杆230的位置变化,但连杆230的有向包围盒相对于所属连杆的连杆坐标系250的参数是不变的。关于建立连杆坐标系的更多内容可以参见步骤410的相关描述,在此不作赘述。
图3是根据本说明书一些实施例所示的多臂系统的模块图。
如图3所示,该多臂系统300可以包括获取模块310、确定模块320、判断模块330和执行模块340。在一些实施例中,获取模块310、确定模块320、判断模块330和执行模块340可以由处理设备140实现。
获取模块310可以获取至少两个机械臂中第一机械臂和第二机械臂的系统结构参数,以及获取第一机械臂和第二机械臂的期望关节数据。在一些实施例中,第一机械臂和第二机械臂的系统结构参数可以根据多臂系统的结构以及连杆的刚性特性,预先进行设置。关于获取系统结构参数以及期望关节数据的更多内容可以参见步骤410和步骤420的详细描述,在此不作赘述。
确定模块320可以基于系统结构参数以及期望关节数据,分别生成第一机械臂和第二机械臂的层次有向包围盒。在一些实施例中,当第一机械臂和/或第二机械臂的期望关节数据更新时,确定模块320可以基于更新后的期望关节数据,更新第一机械臂和/或第二机械臂的层次有向包围盒。关于生成或更新第一机械臂和第二机械臂的层次有向包围盒的更多内容可以参见步骤430的详细描述,在此不作赘述。
判断模块330可以基于层次有向包围盒,判断第一机械臂和第二机械臂是否将发生臂间碰撞。在一些实施例中,判断模块330可以基于更新后的层次有向包围盒,重新判断第一机械臂和第二机械臂是否将发生臂间碰撞。在一些实施例中,判断模块330可以响应于第一机械臂和第二机械臂将不发生臂间碰撞,判断是否完成所有机械臂的臂间碰撞检测。关于判断第一机械臂和第二机械臂是否将发生臂间碰撞以及判断是否完成所有机械臂的臂间碰撞检测的更多内容可以参见步骤440的详细描述,在此不作赘述。
执行模块340可以响应于第一机械臂和第二机械臂将发生臂间碰撞,执行防撞响应操作。在一些实施例中,执行模块340可以在完成所有机械臂的臂间碰撞检测时,基于期望关节数据,控制第一机械臂和第二机械臂执行移动操作。关于执行防撞响应操作和执行移动操作的更多内容可以参见步骤450的详细描述,在此不作赘述。
需要注意的是,以上对于多臂系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,图3中披露的获取模块310、确定模块320、判断模块330和执行模块340可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。又例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
图4是根据本说明书一些实施例所示的多臂系统臂间防撞控制方法的示例性流程图;
图5是根据本说明书一些实施例所示的机械臂及其臂局部有向包围盒的示意图;图6是根据本说明书又一些实施例所示的机械臂及其臂局部有向包围盒的示意图;图7是根据本说明书一些实施例所示的连杆及其连杆整体有向包围盒的示意图;图8是根据本说明书一些实施例所示的连杆及其连杆局部有向包围盒的示意图;图9是根据本说明书一些实施例所示的有向包围盒的示意图。下面将结合图4-图9对多臂系统臂间防撞控制方法进行详细阐述。
流程400可以由处理设备(例如,处理设备140)执行。例如,流程400可以被实现为存储在例如存储设备150、多臂系统(例如,多臂系统100、多臂系统200或多臂系统300)外部并且可由多臂系统访问的存储器中的指令集(例如,应用程序)。处理设备可以执行指令集,并且在执行指令时,可以将其配置为执行流程400。下面呈现的流程400的操作示意图是说明性的。在一些实施例中,可以利用一个或以上未描述的附加操作和/或未讨论的一个或以上操作来完成该过程。另外,图4中示出的和下面描述的流程400的操作的顺序不旨在是限制性的。
步骤410,获取至少两个机械臂中第一机械臂和第二机械臂的系统结构参数。在一些实施例中,步骤410可以由处理设备或获取模块310执行。
在一些实施例中,多臂系统可以包括基座和至少两个机械臂,至少两个机械臂分别与基座活动连接。在一些实施例中,多臂系统的每个机械臂可以包括至少两个连杆,至少两个连杆依次活动连接。关于多臂系统以及至少两个机械臂的更多内容可以参见图2的相关描述,在此不作赘述。
在一些实施例中,第一机械臂和第二机械臂可以为相邻的两个机械臂。在一些实施例中,第一机械臂和第二机械臂可以为不相邻的两个机械臂。
在一些实施例中,当多臂系统中的机械臂数量为两个时,第一机械臂和第二机械臂分别为多臂系统的两个机械臂。在一些实施例中,当多臂系统中的机械臂数量大于两个时(例如,4个),第一机械臂和第二机械臂分别为多臂系统中任意两个相邻或不相邻的机械臂。
在一些实施例中,可以对每两个机械臂都进行碰撞检测,以确定其中任意两个机械臂之间是否有发生碰撞的风险。在一些实施例中,每两个需要进行碰撞检测的机械臂可以作为一组第一机械臂和第二机械臂。在总共有m个机械臂的情况下(m为正整数),一共需要进行m(m–1)/2次臂间碰撞检测,即存在m(m–1)/2组第一机械臂和第二机械臂需要进行臂间碰撞检测。在一些实施例中,为了简化碰撞检测的过程,也可以仅选择检测相邻的两个机械臂进行臂间碰撞检测,在总共有m个机械臂的情况下,一共需要进行(m–1)次臂间碰撞检测,即存在(m–1)组第一机械臂和第二机械臂需要进行臂间碰撞检测。
在一些实施例中,处理设备140可以同时选取多组第一机械臂和第二机械臂进行臂间碰撞检测。在一些实施例中,处理设备140可以包括多个处理器,每个处理器同时单独对其中一组机械臂进行臂间碰撞检测。通过同时对多组机械臂进行臂间碰撞检测,可以提高检测速度以及检测的实时性。
在一些实施例中,系统结构参数可以为多臂系统中与系统结构相关联的数据。在一些实施例中,系统结构参数可以包括多臂系统的全局坐标系、各连杆的连杆坐标系、连杆上选取的臂包围点,以及各连杆的多层有向包围盒。关于全局坐标系、各连杆的连杆坐标系、连杆上选取的臂包围点以及各连杆的多层有向包围盒的更多内容可以参见下述描述,在此不作赘述。在一些实施例中,系统结构参数可以被保存为配置文件(例如,XML格式或JSON格式),并存储在存储设备150中,用于后续进行臂间碰撞检测计算。在一些实施例中,处理设备140可以通过网络120从存储设备150中调用多臂系统的系统结构参数。
在一些实施例中,在获取至少两个机械臂中第一机械臂和第二机械臂的系统结构参数之前,处理设备140可以根据多臂系统的结构以及连杆的刚性特性,预先设置每个机械臂的系统结构参数。以下将对如何预先设置系统结构参数进行示例性描述。
在一些实施例中,处理设备140可以根据多臂系统的结构,为多臂系统建立全局坐标系,以及为多臂系统中的每个连杆建立连杆坐标系。在一些实施例中,处理设备140可以以基座(例如,图2中的基座210)的中心作为原点建立多臂系统的全局坐标系,例如,如图2所示的全局坐标系240。在一些实施例中,可以通过DH(Denavit-Hartenberg)参数法或旋量法来建立连杆坐标系。在一些实施例中,处理设备140可以以连杆首端的关节或连杆末端的关节为原点建立每个连杆的连杆坐标系,例如,如图2所示的连杆坐标系250。在一些实施例中,相应的,系统结构参数可以包括各连杆的连杆坐标系的相关描述参数,例如,DH参数。
在一些实施例中,处理设备140可以根据多臂系统中机械臂的结构,在每个臂的连杆上选取臂包围点,并计算臂包围点相对于其所属连杆的连杆坐标系的坐标参数。
臂包围点为机械臂结构表面上的点。在一些实施例中,如图5和图6所示,图中机械臂220上的点221即为臂包围点221。在一些实施例中,臂包围点可以通过人工进行选取。例如,在机械臂制造完成后通过人工测量每一个机械臂的尺寸,在机械臂的表面上确定臂包围点。在一些实施例中,对于批量生产的机械臂,可以随机选取其中多个机械臂进行测量,取均值后确定机械臂的臂包围点。在一些实施例中,臂包围点可以为机械臂各个连杆上在各个方向上的边界点。在一些实施例中,臂包围点可以通过软件自动选取。
由于连杆的刚性特性,臂包围点相对于其所属连杆的连杆坐标系的坐标参数是固定不变的。在一些实施例中,臂包围点相对于其所属连杆的连杆坐标系的坐标参数可以根据臂包围点与连杆坐标系所在关节的相对位置关系进行确定。
在一些实施例中,处理设备140可以基于连杆结构,为每个连杆设置连杆多层有向包围盒。在一些实施例中,各连杆的多层有向包围盒可以包括相关的描述参数,例如,连杆整体有向包围盒的中心点和三条正交单位轴相对于其所属连杆的连杆坐标系的坐标参数,以及三条正交单位轴方向上的半轴长;连杆局部有向包围盒的中心点和三条正交单位轴相对于其所属连杆的连杆坐标系的坐标参数,以及三条正交单位轴方向上的半轴长。
在一些实施例中,连杆的多层有向包围盒可以包括连杆整体有向包围盒以及多个连杆局部有向包围盒。在一些实施例中,连杆整体有向包围盒为能够完整包围单个连杆且体积最小的包围盒。在一些实施例中,如图7所示,连杆整体有向包围盒231为能够完整地包围单个连杆230且体积最小的包围盒。在一些实施例中,处理设备140可以基于连杆结构,为每个连杆设置连杆整体有向包围盒。
在一些实施例中,连杆局部有向包围盒为能够包围连杆的一部分的包围盒,其中,每个连杆包括数量不超过数量阈值的多个连杆局部有向包围盒,多个连杆局部有向包围盒的组合能够完整包围单个连杆且总体积最小。在一些实施例中,数量阈值可以根据实际需要进行设置,例如,2个、3个或4个等。在一些实施例中,如图8所示,5个连杆局部有向包围盒232分别包围连杆230的一部分,5个连杆局部有向包围盒232组合能够完整包围单个连杆230且总体积最小。
在一些实施例中,每个连杆所包括的连杆局部有向包围盒的数量越多,越能更好地反映连杆的外形轮廓,提高碰撞检测精度,但是连杆局部有向包围盒的数量越多,计算速度会减慢,因此,可以根据检测精度和计算速度,在每个连杆上选择合适数量的连杆局部有向包围盒。
在一些实施例中,处理设备140可以基于连杆结构以及检测精度和计算速度,为每个连杆设置连杆局部有向包围盒。在一些实施例中,连杆局部有向包围盒的数量可以等于连杆的零件数量。例如,对于一个由多个零件连接(如焊接)而成的连杆,可以对每个零件设置一个连杆局部有向包围盒。
在一些实施例中,处理设备140可以基于连杆多层有向包围盒,确定每一层连杆有向包围盒的中心点和三条正交单位轴相对于其所属连杆的连杆坐标系的坐标参数,以及三条正交单位轴方向上的半轴长。
在一些实施例中,半轴长可以为有向包围盒边长的一半。设定有向包围盒后,其中心点、根据中心点建立的三条正交单位轴以及半轴长都可以随之确定。在一些实施例中,如图9所示,有向包围盒的坐标参数和大小可以由有向包围盒的中心点261、根据中心点261建立的三条正交单位轴262和半轴长263来进行表示。因此对于每一层连杆有向包围盒而言,可以通过连杆有向包围盒的中心点、根据中心点建立的三条正交单位轴、以及三条正交单位轴方向上的半轴长来描述连杆整体有向包围盒以及连杆局部有向包围盒的坐标参数和大小。
应当理解是,由于连杆的刚性特性,每一层连杆有向包围盒的中心点和三条正交单位轴相对于其所属连杆的连杆坐标系的坐标参数,以及三条正交单位轴方向上的半轴长是固定不变的。
步骤420,获取第一机械臂和第二机械臂的期望关节数据。在一些实施例中,步骤420可以由处理设备或获取模块310执行。
在一些实施例中,期望关节数据可以为即将移动后的关节数据。在一些实施例中,期望关节数据可以包括机械臂上所有关节的期望关节值,其可以用一个数组表示。仅作为示例,当该机械臂包括3个关节时,第一个关节的关节位置为34°,第二个关节的关节位置为45°,第三个关节的关节位置为77°,则期望关节数据可以表示为数组[34°,45°,77°]。
在一些实施例中,当多臂系统工作时,处理设备140可以获取多臂系统的遥控信号,并基于遥控信号计算确定第一机械臂和第二机械臂的期望关节数据。
在一些实施例中,遥控信号为外部设备(例如,终端130)对多臂系统发送的控制数据或控制指令。在一些实施例中,遥控信号可以用于指示机械臂上的关节转动以使机械臂移动至期望位置。在一些实施例中,遥控信号可以包括位置信息或时间信息等数据。在一些实施例中,处理设备140可以通过网络120从终端130中获取多臂系统的遥控信号。在一些实施例中,处理设备140可以基于遥控信号,从中计算确定第一机械臂和第二机械臂的期望关节数据。
在一些实施例中,期望关节数据还可以为根据期望关节速度和当前关节位置计算得到的期望关节位置数据。在一些实施例中,机械臂收到遥控指令并且移动前所有关节的当前关节位置是已知的,根据每个关节的期望关节速度以及当前关节位置,处理设备140可以计算得出所有关节在机械臂移动到期望位置时的期望关节位置数据。在一些实施例中,当机械臂运动的下一个期望位置更新时,期望关节数据也会相应进行更新。
步骤430,基于系统结构参数以及期望关节数据,分别生成第一机械臂和第二机械臂的层次有向包围盒。在一些实施例中,步骤430可以由处理设备或确定模块320执行。
在一些实施例中,层次有向包围盒可以包括臂局部有向包围盒、连杆整体有向包围盒以及连杆局部有向包围盒。在一些实施例中,臂局部有向包围盒为能够完整包围机械臂的至少两个连杆且体积最小的包围盒。关于连杆整体有向包围盒、连杆局部有向包围盒以及设置方法的更多内容可以参见步骤410的相关描述,在此不作赘述。
对于整个机械臂而言,其中一部分是经常发生运动的运动部分,而另一部分几乎不运动的非运动部分,运动部分发生碰撞的概率较高,非运动部分发生碰撞的概率较低。为了提高臂间碰撞检测的效率,对于机械臂中的非运动部分,在碰撞检测时可以不考虑,仅考虑机械臂的运动部分,即仅生成臂局部有向包围盒。在一些实施例中,若机械臂的全部部分都发生运动且有可能发生碰撞,则需要选择包含机械臂全部部分的臂整体有向包围盒进行碰撞检测。在一些实施例中,臂整体有向包围盒为能够完整包围机械臂的所有连杆且体积最小的包围盒。
在一些实施例中,处理设备140可以根据机械臂的臂包围点生成臂局部有向包围盒。在一些实施例中,根据臂包围点所生成的臂局部有向包围盒在任意关节位置下,均能完整地包围机械臂的运动部分,且保证臂局部有向包围盒体积最小。使得在进行臂间碰撞检测时,既不会因为臂局部有向包围盒没有完整包括机械臂的运动部分而无法达到碰撞检测的目的,也不会因为臂局部有向包围盒体积过大而产生误判。
通过图5和图6的对比可知:由于关节转动,机械臂220从图5的位置运动到图6的位置,机械臂220与基座210相连接的上半部分(臂局部有向包围盒222以外的部分)并没有改变其位置或姿态,机械臂220与基座210相连接的上半部分基本不会发生运动,仅有机械臂下半部分(臂局部有向包围盒222包围的部分)会发生运动,因而发生碰撞的频率较高。根据臂包围点221生成的臂局部有向包围盒222完整包围机械臂220上经常发生运动的运动部分且体积最小。
在一些实施例中,处理设备140可以基于层次有向包围相对于所属连杆的连杆坐标系的坐标参数、连杆坐标系以及连杆坐标系与全局坐标系的位置关系,计算获得层次有向包围盒在全局坐标系下的坐标参数。
由于层次有向包围盒是根据系统结构参数以及期望关节数据生成的,因此在期望关节数据更新时,也需要更新层次有向包围盒。在一些实施例中,若再次接收到遥控信号指示机械臂移动,此时第一机械臂和/或第二机械臂的期望关节数据会进行更新。在一些实施例中,当第一机械臂和/或第二机械臂的期望关节数据更新时,处理设备140可以基于更新后的期望关节数据,更新第一机械臂和/或第二机械臂的层次有向包围盒。
在一些实施例中,可以仅生成或更新层次有向包围盒中的部分有向包围盒。在一些实施例中,可以仅在机械臂的期望关节位置相对于当前关节位置发生改变,且需要使用有向包围盒进行碰撞检测时和/或该有向包围盒并未在之前的臂间碰撞检测过程中被生成或更新时,生成或更新该有向包围盒,并将该有向包围盒基于全局坐标系参数化,即计算该有向包围盒在全局坐标系下的坐标参数。
在一些实施例中,层次有向包围盒可以不限于上述三层结构,还可以包括两层或更多层。例如,连杆局部有向包围盒可以根据连杆的结构进一步划分为多层。当层次有向包围盒的层数越多时,体积最小的有向包围盒的组合可以在完整包围连杆结构的同时包围非连杆结构更少,这样更能反映连杆的外形,使得碰撞检测的精度越高。但同时也会使得臂间碰撞检测的计算时间更长,碰撞检测的实时性下降,对计算机的运算能力要求更高。反之,当层次有向包围盒的层数越少,体积最小的有向包围盒在完整包围机械臂结构的同时包围的非机械臂结构更多,使得碰撞检测的精度下降,同时也更具实时性。因此,可以综合考虑机械臂工作情况的实时性要求以及碰撞检测的精度要求,选取合适的层次有向包围盒的层数。
步骤440,基于层次有向包围盒,判断第一机械臂和第二机械臂是否将发生臂间碰撞。在一些实施例中,步骤440可以由处理设备或判断模块330执行。
在一些实施例中,第一机械臂和第二机械臂发生臂间碰撞可以是第一机械臂和第二机械臂在空间上发生交叠。在一些实施例中,判断第一机械臂和第二机械臂是否将发生臂间碰撞的方法可以包括有向包围盒(Oriented Bounding Box,OBB)分离轴检测法。通过该OBB分离轴检测法检测有向包围盒是否发生交叠,来判断第一机械臂和第二机械臂是否将发生臂间碰撞。
在一些实施例中,处理设备140可以根据有向包围盒的体积,由大到小逐层检测第一机械臂和第二机械臂的各层有向包围盒是否将发生碰撞。在一些实施例中,各层有向包围盒的体积由大到小依次为臂局部有向包围盒、连杆整体有向包围盒和连杆局部有向包围盒。在一些实施例中,若存在一层有向包围盒不会发生碰撞,则判断第一机械臂和第二机械臂不会发生碰撞。在一些实施中,若各层有向包围盒均将发生碰撞,则判断第一机械臂和第二机械臂将发生碰撞。
在一些实施例中,处理设备140可以根据臂局部有向包围盒,判断第一机械臂和第二机械臂是否会发生碰撞。具体地,处理设备140可以根据第一机械臂和第二机械臂的臂局部有向包围盒在全局坐标系中的坐标参数和大小,计算在空间上是否发生交叠。在一些实施例中,若第一机械臂和第二机械臂的臂局部有向包围盒在全局坐标系中没有交叠,可以确定第一机械臂和第二机械臂不会发生臂间碰撞,无需再根据连杆整体有向包围盒和连杆局部有向包围盒判断第一机械臂和所述第二机械臂是否将发生臂间碰撞。
在一些实施例中,若第一机械臂和第二机械臂的臂局部有向包围盒在全局坐标系中存在交叠,处理设备140可以进一步根据连杆整体有向包围盒进行判断第一机械臂和第二机械臂是否会发生碰撞。具体地,处理设备140可以根据连杆整体有向包围盒在全局坐标系中的坐标参数和大小,计算在空间上是否发生交叠。在一些实施例中,若第一机械臂和第二机械臂的连杆整体有向包围盒在全局坐标系中没有交叠,可以确定第一机械臂和第二机械臂不会发生臂间碰撞,无需再根据连杆局部有向包围盒判断第一机械臂和所述第二机械臂是否将发生臂间碰撞。
在一些实施例中,若第一机械臂和第二机械臂的连杆整体有向包围盒在全局坐标系中存在交叠,处理设备140可以进一步根据连杆局部有向包围盒进行判断。具体的,根据连杆局部有向包围盒在全局坐标系中的坐标参数和大小,计算在空间上是否发生交叠。在一些实施例中,若第一机械臂和第二机械臂的连杆局部有向包围盒在全局坐标系中没有交叠,可以确定第一机械臂和第二机械臂将不会发生臂间碰撞。在一些实施例中,若第一机械臂和第二机械臂的连杆局部有向包围盒在全局坐标系中发生交叠,可以确定第一机械臂和第二机械臂将会发生臂间碰撞。
在一些实施例中,若层次有向包围盒不只包括上述三层,且在第一机械臂和第二机械臂的连杆局部有向包围盒在全局坐标系中发生交叠时,处理设备140还可以进一步对体积更小的有向包围层进行判断,确定是否发生发生交叠,以提高臂间碰撞检测的精度。在一些实施例中,每一层有向包围盒在全局坐标系中都存在交叠情况时,处理设备140可以判断第一机械臂与第二机械臂将发生臂间碰撞情况,进入步骤450执行后续操作。
在一些实施例中,若划分的层次较多(例如,大于10层),即使体积最小的一层有向包围盒在全局坐标系中不存在交叠情况时,由于该层有向包围盒基本与连杆的外形接近,因此即使此时第一机械臂和第二机械臂并不会发生碰撞,但由于臂间距离已经非常接近,机械臂受惯性影响,无法立即停止运动,也存在发生碰撞的可能性,因此也可以作为发生臂间碰撞的情况处理,进入步骤450执行后续操作。
由于是根据有向包装盒的体积进行逐层检测,上一层有向包围盒(例如,臂局部有向包围盒)的体积大于下一层有向包围盒(例如,连杆整体有向包围盒),体积越大的有向包装盒覆盖的范围越大,当上一层有向包围盒没有发生交叠时,下一层覆盖范围更小的有向包围盒也一定不会交叠。因此,在根据体积进行逐层检测过程中,只要检测到层次有向包围盒中存在一层有向包围盒在全局坐标系中存在不交叠的情况,则可以判断第一机械臂和第二机械臂不会发生碰撞。通过根据有向包装盒的体积进行逐层检测,一方面在检测到不会碰撞时,即可停止继续检测,可以提升检测速度,提升多臂系统的可靠性;另一方面,通过分层次检测,可以提升计算精度。
在一些实施例中,步骤430和440可以同时进行,在步骤430中生成一层有向包围盒后即进入步骤440判断是否将发生臂间碰撞。在一些实施例中,当检测到上一层有向包围盒发生交叠时,再返回执行步骤430中生成下一层体积更小的有向包围盒。在一些实施例中,当检测到上一层有向包围盒没有发生交叠时,可以停止执行步骤430中生成下一层体积更小的有向包围盒的过程。通过上述过程,可以减少碰撞检测的计算量并提高碰撞检测的实时性。
在一些实施例中,当第一机械臂和/或第二机械臂的层次有向包围盒更新后,处理设备140可以基于更新后的层次有向包围盒,重新判断第一机械臂和第二机械臂是否将发生臂间碰撞。
步骤450,响应于第一机械臂和第二机械臂将发生臂间碰撞,执行防撞响应操作。在一些实施例中,步骤450可以由处理设备或执行模块340执行。
当处理设备140检测到每一层有向包围盒均将发生碰撞时,可以判断第一机械臂和第二机械臂将发生臂间碰撞,此时需要执行相应的防撞响应操作以避免发生故障。
在一些实施例中,响应于第一机械臂和第二机械臂将发生臂间碰撞,处理设备140可以确定碰撞数据,并基于碰撞数据执行防撞响应操作。
在一些实施例中,当检测到第一机械臂和第二机械臂之前将会发生碰撞时,处理设备140可以计算与碰撞相关的碰撞数据。在一些实施例中,碰撞数据可以包括发生交叠情况的有向包围盒的交叠深度或范围、有向包围盒发生交叠情况的位置坐标,以及在多臂系统中将发生碰撞的机械臂和对应连杆的编号。
在一些实施例中,防撞响应操作可以包括修改期望关节位置以及对多臂系统操作者发出提醒。在一些实施例中,处理设备140可以将即将发生臂间碰撞的机械臂的期望关节位置修改为机械臂的当前关节位置。通过将即将发生臂间碰撞的机械臂的期望关节位置修改为机械臂的当前关节位置,可以实现在检测到即将碰撞时停止该机械臂的运动,以防止碰撞发生。
在一些实施例中,处理设备140可以通过终端130对多臂系统操作者发出提醒。在一些实施例中,处理设备140可以告知系统操作者该多臂系统即将发生碰撞,并将相关碰撞数据向系统操作者展示。例如,将发生碰撞的机械臂和对应连杆的序号向系统操作者展示。在一些实施例中,提醒可以包括但不限于文字提醒、语音提醒等。
在一些实施例中,响应于第一机械臂和第二机械臂将不发生臂间碰撞,处理设备140可以判断是否完成所有机械臂的臂间碰撞检测。在一些实施例中,若完成所有机械臂的臂间碰撞检测,处理设备140可以基于期望关节数据,控制第一机械臂和第二机械臂执行移动操作。在一些实施例中,若完成了所有机械臂的臂间碰撞检测,多臂系统可以控制第一机械臂和第二机械臂的关节根据指令转动至期望关节位置,同时根据再次接收到的遥控信号更新期望关节数据。在一些实施例中,处理设备140可以根据更新的期望关节数据更新第一机械臂和/或第二机械臂的层次有向包围盒,并重新判断第一机械臂和第二机械臂是否将发生臂间碰撞。关于更新层次有向包围盒以及重新判断是否将发生臂间碰撞的更多内容可以参见步骤430和步骤440的相关描述,在此不作赘述。
在一些实施例中,若未完成所有机械臂的臂间碰撞检测,处理设备140可以继续执行臂间碰撞检测,直到任意两个机械臂之间均完成碰撞检测,或者任意相邻的两个机械臂之间均完成碰撞检测。在一些实施例中,若至少一组第一机械臂和第二机械臂未完成臂间碰撞检测,处理设备140可以继续执行步骤410以重新选取一组其他的第一机械臂和第二机械臂进行碰撞检测。
应当注意的是,上述有关流程400的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程400进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,划分的层次较多不限于列举的三层,还可以为其他层数。
在多臂系统的实际使用过程中可以发现,机械臂之间容易发生碰撞的部位往往是比较固定的,例如,机械臂末端的连杆或者连杆的一端。在一定程度上,仅需要检测这些容易发生碰撞的部位,就可以基本上避免多臂系统中的机械臂发生碰撞的情况,而无需检测机械臂中的所有部位,从而达到减少计算并提高实时性的效果。
在多臂系统没有足够多的历史操作数据的情况下,为了确保对机械臂进行碰撞检测的准确性,可以选取图4所述的臂间碰撞检测方法。在一些实施例中,当多臂系统的历史操作数据已经足够多时,可以根据历史数据采取优化检测方法,即仅检测碰撞概率较高的连杆或连杆上的易碰撞部位。
图10是根据本说明书一些实施例所示的生成层次有向包围盒方法的示例性流程图。
流程1000可以由处理设备(例如,处理设备140)执行。例如,流程1000可以被实现为存储在例如存储设备150、多臂系统(例如,多臂系统100、多臂系统200或多臂系统300)外部并且可由多臂系统访问的存储器中的指令集(例如,应用程序)。处理设备可以执行指令集,并且在执行指令时,可以将其配置为执行流程1000。下面呈现的流程1000的操作示意图是说明性的。在一些实施例中,可以利用一个或以上未描述的附加操作和/或未讨论的一个或以上操作来完成该过程。另外,图10中示出的和下面描述的流程1000的操作的顺序不旨在是限制性的。
步骤1010,获取多臂系统的历史操作数据。在一些实施例中,步骤1010可以由处理设备或获取模块310执行。
在一些实施例中,多臂系统的历史操作数据可以包括每个机械臂的历史碰撞次数、历史操作次数以及发生历史碰撞的连杆或连杆部位。在一些实施例中,处理设备140可以获取多臂系统中每个机械臂的历史操作数据。
步骤1020,基于多臂系统的历史操作数据,确定第一机械臂和/或第二机械臂中碰撞概率超过概率阈值的易碰撞连杆或易碰撞连杆的易碰撞部位。在一些实施例中,步骤1020可以由处理设备或确定模块320执行。
在一些实施例中,易碰撞连杆可以为机械臂上容易发生碰撞的一个或多个连杆。例如,易碰撞连杆为机械臂的末端连杆。在一些实施例中,易碰撞部位可以为连杆上易发生碰撞的部位。例如,易碰撞部位为机械臂连杆的一端。在一些实施例中,碰撞概率可以为历史碰撞次数(和/或历史被检测出将发生碰撞的次数)与历史操作次数的比值。在一些实施例中,概率阈值可以根据系统操作者的经验进行设置。为了保证碰撞检测的准确性,可以将概率阈值设定为较小的值,例如,5%、2%、1%等。在一些实施例中,可以根据碰撞检测准确性要求,更改概率阈值。例如,当检测精度较高时,可以缩小概率阈值;当检测准确性较低时,可以扩大概率阈值。
在一些实施例中,处理设备140可以根据历史操作数据,确定机械臂中碰撞概率超过概率阈值的易碰撞连杆或易碰撞连杆的易碰撞部位。
步骤1030,基于系统结构参数以及易碰撞连杆或易碰撞连杆的易碰撞部位的期望关节数据,生成易碰撞连杆的连杆整体有向包围盒或易碰撞部位的连杆局部有向包围盒。在一些实施例中,步骤1020可以由处理设备或确定模块320执行。
关于系统结构参数的更多内容可以参见步骤410的相关说明,此处不再赘述。
在一些实施例中,易碰撞连杆或易碰撞连杆的易碰撞部位的期望关节数据可以为易碰撞连杆对应的关节的期望关节数据。关于期望关节数据的更多内容可以参见步骤420的相关说明,此处不再赘述。
在一些实施例中,易碰撞连杆的连杆整体有向包围盒可以为能够完整包围单个易碰撞连杆且体积最小的包围盒。在一些实施例中,易碰撞部位的连杆局部有向包围盒为能够包围易碰撞部位的至少一部分的包围盒,其中,每个易碰撞部位包括至少一个连杆局部有向包围盒,至少一个连杆局部有向包围盒的组合能够完整包围易碰撞部位且总体积最小。由于连杆整体有向包围盒不包括机械臂中除易碰撞连杆外的其他连杆对应的连杆整体有向包围盒,以及连杆局部有向包围盒不包括连杆中除易碰撞部位外的其他部位对应的连杆局部有向包围盒,因此可以减少在碰撞检测过程中的计算量。
在一些实施例中,处理设备140可以基于易碰撞连杆或易碰撞连杆的易碰撞部位以及期望关节数据,生成连杆整体有向包围盒或易碰撞部位的连杆局部有向包围盒。
步骤1040,将易碰撞连杆的连杆整体有向包围盒或易碰撞部位的连杆局部有向包围盒作为第一机械臂和/或第二机械臂的层次有向包围盒。在一些实施例中,步骤1020可以由处理设备或确定模块320执行。
在一些实施例中,为了提升碰撞检测的检测速率,可以将易碰撞连杆的连杆整体有向包围盒或易碰撞部位的连杆局部有向包围盒作为第一机械臂和/或第二机械臂的层次有向包围盒。易碰撞连杆的连杆整体有向包围盒或易碰撞部位的连杆局部有向包围盒可以用于在步骤440中判断第一机械臂和第二机械臂是否将发生臂间碰撞。关于臂间碰撞检测的更多内容可以参见图4的相关说明,此处不再赘述。
在一些实施例中,可以按碰撞概率的高低依次对易碰撞连杆或易碰撞连杆的易碰撞部位进行臂间碰撞。可以理解,如果碰撞概率高的易碰撞连杆或易碰撞连杆的易碰撞部位检测结果为不会发生臂间碰撞,仍需对碰撞概率低的易碰撞连杆或易碰撞连杆的易碰撞部位进行碰撞检测;如果碰撞概率高的易碰撞连杆或易碰撞连杆的易碰撞部位检测结果为将发生臂间碰撞,则无需对碰撞概率低的易碰撞连杆或易碰撞连杆的易碰撞部位进行碰撞检测,而直接执行防撞响应操作。通过先检测碰撞概率高的易碰撞连杆或易碰撞部位是否发生臂间碰撞,在碰撞概率高的易碰撞连杆或易碰撞部位不发生臂间碰撞时再检测碰撞概率低的易碰撞连杆或易碰撞连杆的易碰撞部位是否将发生臂间碰撞,可以将检测顺序进行调整,兼顾了臂间碰撞检测效率以及准确性。
在一些实施例中,也可以先判断易碰撞连杆或易碰撞连杆的易碰撞部位是否将发生臂间碰撞,再判断第一机械臂和第二机械臂的层次有向包围盒是否将发生臂间碰撞。可以理解,如果易碰撞连杆或易碰撞连杆的易碰撞部位检测结果为不会发生臂间碰撞,仍需对第一机械臂和第二机械臂的层次有向包围盒的臂间碰撞进行检测;如果易碰撞连杆或易碰撞连杆的易碰撞部位检测结果为将发生臂间碰撞,则无需对第一机械臂和第二机械臂的层次有向包围盒的臂间碰撞进行检测,而直接执行防撞响应操作。关于臂间碰撞检测的更多内容可以参见步骤450的相关说明,此处不再赘述。通过先检测易碰撞连杆或易碰撞部位是否发生臂间碰撞,在易碰撞连杆或易碰撞部位不发生臂间碰撞时再检测层次有向包围盒是否将发生臂间碰撞,可以兼顾臂间碰撞检测效率以及准确性。
应当注意的是,上述有关流程1000的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程1000进行各种修正和改变。例如,每个易碰撞部位也可以包括至少两个连杆局部有向包围盒。然而,这些修正和改变仍在本说明书的范围之内。
本说明书实施例可能带来的有益效果包括但不限于:(1)通过生成层次有向包围盒以及基于层次有向包围盒按体积大小逐层进行臂间碰撞检测,可以摆脱对额外传感器的依赖,提升了碰撞检测速率,同时也保证了碰撞检测精度,确保遥控操作过程中多臂系统的可靠性;(2)在遥控操作过程中,通过在检测到碰撞时执行相应的防撞响应,可以有效避免发生臂间碰撞,保证了多臂系统的可靠性;(3)通过预先设置每个机械臂的系统结构数据,减少了碰撞检测程中生成或更新层次有向包围盒所需的运算时间,提高了防撞控制的实时性;(4)在生成层次有向包围盒的同时进行有向包围盒碰撞检测,提高了多臂系统碰撞检测的实时性。
需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (10)
1.一种多臂系统臂间防撞控制方法,其特征在于,所述多臂系统包括基座和至少两个机械臂,所述至少两个机械臂分别与所述基座活动连接;每个机械臂包括至少两个连杆,所述至少两个连杆依次活动连接;所述多臂系统臂间防撞控制方法包括:
获取所述至少两个机械臂中第一机械臂和第二机械臂的系统结构参数;
获取所述第一机械臂和所述第二机械臂的期望关节数据;
基于所述系统结构参数以及所述期望关节数据,分别生成所述第一机械臂和所述第二机械臂的层次有向包围盒;
基于所述层次有向包围盒,判断所述第一机械臂和所述第二机械臂是否将发生臂间碰撞;
响应于所述第一机械臂和所述第二机械臂将发生臂间碰撞,执行防撞响应操作。
2.根据权利要求1所述的方法,其特征在于,在所述获取所述至少两个机械臂中第一机械臂和第二机械臂的系统结构参数之前,所述方法还包括:
根据所述多臂系统的结构以及所述连杆的刚性特性,预先设置每个机械臂的系统结构参数;
所述系统结构参数包括:多臂系统的全局坐标系、各连杆的连杆坐标系、连杆上选取的臂包围点,以及各连杆的多层有向包围盒。
3.根据权利要求1所述的方法,其特征在于,所述层次有向包围盒包括:臂局部有向包围盒、连杆整体有向包围盒以及连杆局部有向包围盒;其中,
所述臂局部有向包围盒为能够完整包围机械臂的至少两个连杆且体积最小的包围盒;
所述连杆整体有向包围盒为能够完整包围单个连杆且体积最小的包围盒;以及,
所述连杆局部有向包围盒为能够包围连杆的一部分的包围盒,其中,每个连杆包括数量不超过数量阈值的多个连杆局部有向包围盒,所述多个连杆局部有向包围盒的组合能够完整包围单个连杆且总体积最小。
4.根据权利要求1所述的方法,其特征在于,所述获取所述第一机械臂和所述第二机械臂的期望关节数据包括:
获取所述多臂系统的遥控信号;
基于所述遥控信号获取所述第一机械臂和所述第二机械臂的期望关节数据。
5.根据权利要求1所述的方法,其特征在于,还包括:
当所述第一机械臂和/或所述第二机械臂的期望关节数据更新时,基于更新后的所述期望关节数据,更新所述第一机械臂和/或所述第二机械臂的层次有向包围盒;并基于更新后的所述层次有向包围盒,重新判断所述第一机械臂和所述第二机械臂是否将发生臂间碰撞。
6.根据权利要求1所述的方法,其特征在于,所述基于所述系统结构参数以及所述期望关节数据,分别生成所述第一机械臂和所述第二机械臂的层次有向包围盒包括:
获取所述多臂系统的历史操作数据;
基于所述历史操作数据,确定所述第一机械臂和/或所述第二机械臂中碰撞概率超过概率阈值的易碰撞连杆或所述易碰撞连杆的易碰撞部位;
基于所述系统结构参数以及所述易碰撞连杆或所述易碰撞连杆的易碰撞部位的期望关节数据,生成所述易碰撞连杆的连杆整体有向包围盒或所述易碰撞部位的连杆局部有向包围盒;
将所述易碰撞连杆的连杆整体有向包围盒或所述易碰撞部位的连杆局部有向包围盒作为所述第一机械臂和/或所述第二机械臂的层次有向包围盒。
7.根据权利要求1所述的方法,其特征在于,所述基于所述层次有向包围盒,判断所述第一机械臂和所述第二机械臂是否将发生臂间碰撞包括:
根据有向包围盒的体积,由大到小逐层检测所述第一机械臂和所述第二机械臂的各层有向包围盒是否将发生碰撞;
若存在一层有向包围盒不会发生碰撞,则判断所述第一机械臂和所述第二机械臂不会发生碰撞;
若各层有向包围盒均将发生碰撞,则判断所述第一机械臂和所述第二机械臂将发生碰撞。
8.一种多臂系统,其特征在于,所述系统包括:
获取模块,用于获取所述至少两个机械臂中第一机械臂和第二机械臂的系统结构参数,以及获取所述第一机械臂和所述第二机械臂的期望关节数据;
确定模块,用于基于所述系统结构参数以及所述期望关节数据,分别生成所述第一机械臂和所述第二机械臂的层次有向包围盒;
判断模块,用于基于所述层次有向包围盒,判断所述第一机械臂和所述第二机械臂是否将发生臂间碰撞;
执行模块,用于响应于所述第一机械臂和所述第二机械臂将发生臂间碰撞,执行防撞响应操作。
9.一种多臂系统,其特征在于,所述系统包括至少一个处理器和至少一个存储设备,所述存储设备用于存储指令,当所述至少一个处理器执行所述指令时,实现如权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行如权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210287293.0A CN114536342A (zh) | 2022-03-23 | 2022-03-23 | 一种多臂系统及其臂间防撞控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210287293.0A CN114536342A (zh) | 2022-03-23 | 2022-03-23 | 一种多臂系统及其臂间防撞控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114536342A true CN114536342A (zh) | 2022-05-27 |
Family
ID=81664990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210287293.0A Pending CN114536342A (zh) | 2022-03-23 | 2022-03-23 | 一种多臂系统及其臂间防撞控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114536342A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116038765A (zh) * | 2022-09-16 | 2023-05-02 | 深圳市大族机器人有限公司 | 机械臂的碰撞检测方法、装置和计算机设备 |
CN117442359A (zh) * | 2023-12-22 | 2024-01-26 | 无锡蔚动智能科技有限公司 | 一种基于双臂协同控制的医用无影灯控制系统及方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104867177A (zh) * | 2014-12-23 | 2015-08-26 | 上海电机学院 | 一种基于包围盒树法的并行碰撞检测方法 |
CN111360824A (zh) * | 2020-02-27 | 2020-07-03 | 中科新松有限公司 | 一种双臂自碰撞检测方法和计算机可读存储介质 |
CN111469129A (zh) * | 2020-04-24 | 2020-07-31 | 苏州新传品智能科技有限公司 | 一种基于双机械臂的船体外板曲面成形无碰撞运动规划方法 |
CN112245014A (zh) * | 2020-10-30 | 2021-01-22 | 微创(上海)医疗机器人有限公司 | 一种医疗机器人、检测机械臂碰撞的方法及存储介质 |
CN112264991A (zh) * | 2020-09-09 | 2021-01-26 | 北京控制工程研究所 | 一种适用于空间机械臂的分层次快速在轨碰撞检测方法 |
CN113147590A (zh) * | 2021-04-08 | 2021-07-23 | 中国铁建重工集团股份有限公司 | 一种隧道环境机械臂实时碰撞预警系统及方法 |
CN113211495A (zh) * | 2021-04-12 | 2021-08-06 | 北京航天飞行控制中心 | 一种机械臂碰撞检测方法、系统、存储介质和机械臂 |
CN113459109A (zh) * | 2021-09-03 | 2021-10-01 | 季华实验室 | 机械臂路径规划方法、装置、电子设备及存储介质 |
-
2022
- 2022-03-23 CN CN202210287293.0A patent/CN114536342A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104867177A (zh) * | 2014-12-23 | 2015-08-26 | 上海电机学院 | 一种基于包围盒树法的并行碰撞检测方法 |
CN111360824A (zh) * | 2020-02-27 | 2020-07-03 | 中科新松有限公司 | 一种双臂自碰撞检测方法和计算机可读存储介质 |
CN111469129A (zh) * | 2020-04-24 | 2020-07-31 | 苏州新传品智能科技有限公司 | 一种基于双机械臂的船体外板曲面成形无碰撞运动规划方法 |
CN112264991A (zh) * | 2020-09-09 | 2021-01-26 | 北京控制工程研究所 | 一种适用于空间机械臂的分层次快速在轨碰撞检测方法 |
CN112245014A (zh) * | 2020-10-30 | 2021-01-22 | 微创(上海)医疗机器人有限公司 | 一种医疗机器人、检测机械臂碰撞的方法及存储介质 |
CN113147590A (zh) * | 2021-04-08 | 2021-07-23 | 中国铁建重工集团股份有限公司 | 一种隧道环境机械臂实时碰撞预警系统及方法 |
CN113211495A (zh) * | 2021-04-12 | 2021-08-06 | 北京航天飞行控制中心 | 一种机械臂碰撞检测方法、系统、存储介质和机械臂 |
CN113459109A (zh) * | 2021-09-03 | 2021-10-01 | 季华实验室 | 机械臂路径规划方法、装置、电子设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116038765A (zh) * | 2022-09-16 | 2023-05-02 | 深圳市大族机器人有限公司 | 机械臂的碰撞检测方法、装置和计算机设备 |
CN116038765B (zh) * | 2022-09-16 | 2023-10-31 | 深圳市大族机器人有限公司 | 机械臂的碰撞检测方法、装置和计算机设备 |
CN117442359A (zh) * | 2023-12-22 | 2024-01-26 | 无锡蔚动智能科技有限公司 | 一种基于双臂协同控制的医用无影灯控制系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108286949B (zh) | 一种可移动式三维检测机器人系统 | |
JP6378783B2 (ja) | アーム型のロボットの障害物自動回避方法及び制御装置 | |
EP2781315A1 (en) | Robot picking system, control device and method of manufacturing a workpiece | |
CN114536342A (zh) | 一种多臂系统及其臂间防撞控制方法 | |
US9827675B2 (en) | Collision avoidance method, control device, and program | |
US8311731B2 (en) | Robots with collision avoidance functionality | |
US20140277731A1 (en) | Robot picking system, control device, and method of manufacturing a workpiece | |
JP5025598B2 (ja) | 干渉チェック制御装置および干渉チェック制御方法 | |
KR20120082881A (ko) | 충돌 회피 스킴을 실행하는 로보틱 장치 및 연관된 방법 | |
WO2021165745A1 (en) | Collision avoidance motion planning method for industrial robot | |
US11292132B2 (en) | Robot path planning method with static and dynamic collision avoidance in an uncertain environment | |
JP7147571B2 (ja) | 経路生成装置、経路生成方法、及び経路生成プログラム | |
EP4157589A1 (en) | A robot path planning method with static and dynamic collision avoidance in an uncertain environment | |
WO2023024317A1 (zh) | 一种机器人避障方法、装置和机器人 | |
US20220219323A1 (en) | Method and system for operating a robot | |
CN108803592B (zh) | 用于避免机器人碰撞的方法、装置和系统 | |
JP6821987B2 (ja) | ロボットシステム、ロボットシステムの制御方法、プログラム | |
JP2009148850A (ja) | ロボットの動作制御装置及びその動作制御方法 | |
US10035264B1 (en) | Real time robot implementation of state machine | |
CN115703227A (zh) | 机器人的控制方法、机器人以及计算机可读存储介质 | |
CN205325689U (zh) | 一种双机器人实时动态避障装置 | |
WO2022249649A1 (en) | Object manipulation with collision avoidance using complementarity constraints | |
JP2010061297A (ja) | 工作機械のncデータ作成装置 | |
US11014237B2 (en) | Methods, systems, and apparatuses, for path planning and execution in a robotic system | |
CN114274145A (zh) | 一种腹腔镜手术中多机械臂的实时避障方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |