CN116038765B - 机械臂的碰撞检测方法、装置和计算机设备 - Google Patents
机械臂的碰撞检测方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN116038765B CN116038765B CN202211127334.6A CN202211127334A CN116038765B CN 116038765 B CN116038765 B CN 116038765B CN 202211127334 A CN202211127334 A CN 202211127334A CN 116038765 B CN116038765 B CN 116038765B
- Authority
- CN
- China
- Prior art keywords
- collision
- pair
- joint space
- probability
- sampling
- 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 169
- 238000005070 sampling Methods 0.000 claims abstract description 128
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000007781 pre-processing Methods 0.000 claims abstract description 13
- 238000004364 calculation method Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 238000000342 Monte Carlo simulation Methods 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 230000001186 cumulative effect Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/0095—Means or methods for testing manipulators
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
本申请涉及一种机械臂的碰撞检测方法、装置和计算机设备。方法包括:对机械臂的关节空间进行预处理,得到采样关节空间;计算各碰撞对在采样关节空间中发生碰撞的概率,其中,碰撞对包括任意两个机械臂的连杆;根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对;对待检测碰撞对进行碰撞检测,得到碰撞检测结果。采用本方法能够减少碰撞检测的时间,提高碰撞检测的效率。
Description
技术领域
本申请涉及机械臂技术领域,特别是涉及一种机械臂的碰撞检测方法、装置和计算机设备。
背景技术
机械臂是一种高精度,多输入多输出、高度非线性、强耦合的复杂系统。作业过程中,若机械臂连杆之间发生接触,容易导致机械臂损坏。为保障机械臂在工作过程中的安全性,机械臂应具备感知物理碰撞,并可对碰撞做出合理响应的能力。因此,碰撞检测是机械臂实现安全性的前提。
碰撞检测是一种运动控制常用的底层技术,其检测速度和检测精度是评估算法最重要的两个因素。传统的对于一个机械臂的碰撞检测方法是,对机械臂的每一个连杆进行形状近似后,分析每一个连杆是否发生碰撞。但是,随着机器人结构越来越复杂,机械臂连杆数目增加,碰撞检测时间也会增长,碰撞检测效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高碰撞检测效率的机械臂的碰撞检测方法、装置和计算机设备。
第一方面,本申请提供了一种机械臂的碰撞检测方法。所述方法包括:
对机械臂的关节空间进行预处理,得到采样关节空间;
计算各碰撞对在采样关节空间中发生碰撞的概率;碰撞对包括任意两个机械臂的连杆;
根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对;
对待检测碰撞对进行碰撞检测,得到碰撞检测结果。
在其中一个实施例中,对机械臂的关节空间进行预处理,得到采样关节空间,包括:
对机械臂中各关节的关节空间进行栅格化;
对栅格化后的关节空间进行采样,得到采样关节空间。
在其中一个实施例中,计算各碰撞对在采样关节空间中发生碰撞的概率,包括:
在预设关节信息下,计算当前碰撞对发生碰撞的累计总数与采样关节空间中发生碰撞的碰撞对总数;
根据当前碰撞对发生碰撞的累计总数与采样关节空间中发生碰撞的碰撞对总数,计算各碰撞对在采样关节空间中发生碰撞的概率。
在其中一个实施例中,判断碰撞对是否发生碰撞,包括:
求解各连杆的包络在笛卡尔空间的位姿;
根据各连杆的包络在笛卡尔空间的位姿,获取发生碰撞的包络;
对已知碰撞的包络对应的连杆通过三角相交算法判断连杆是否实际发生碰撞。
在其中一个实施例中,根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对,包括:
按照各碰撞对在采样关节空间中发生碰撞的概率从大到小的顺序,依次获取待检测碰撞对。
在其中一个实施例中,对待检测碰撞对进行碰撞检测,得到碰撞检测结果之后,包括:
若碰撞检测结果为碰撞对发生了碰撞,则输出发生了碰撞的碰撞对;
若结果为碰撞对未发生碰撞,则返回根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对。
在其中一个实施例中,根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对之后,还包括:
若各碰撞对在采样关节空间中发生碰撞的概率均小于预设概率阈值,则判断无碰撞发生。
在其中一个实施例中,对栅格化后的关节空间进行采样,得到采样关节空间,包括:
使用蒙特卡洛法对栅格化的关节空间进行采样,得到采样关节空间。
第二方面,本申请还提供了一种机械臂的碰撞检测装置。所述装置包括:
预处理模块,用于对机械臂的关节空间进行预处理,得到采样关节空间;
概率计算模块,用于计算各碰撞对在采样关节空间中发生碰撞的概率;碰撞对包括任意两个机械臂的连杆;
碰撞对获取模块,用于根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对;
碰撞检测模块,用于对待检测碰撞对进行碰撞检测,得到碰撞检测结果。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
对机械臂的关节空间进行预处理,得到采样关节空间;
计算各碰撞对在采样关节空间中发生碰撞的概率;碰撞对包括任意两个机械臂的连杆;
根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对;
对待检测碰撞对进行碰撞检测,得到碰撞检测结果。
上述机械臂的碰撞检测方法、装置和计算机设备,通过对机械臂的关节空间进行预处理,得到采样关节空间,计算各碰撞对在采样关节空间中发生碰撞的概率,再根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对,然后对待检测碰撞对进行碰撞检测,得到碰撞检测结果;其中,根据各碰撞对在采样关节空间中发生碰撞的概率获取待检测碰撞对,可以有选择性地对当前获取的待检测碰撞对进行碰撞检测,不需要同时对多个碰撞对进行碰撞检测,从而减少非必要的冗余计算,在尽可能短的时间内返回是否发生碰撞的信息,进一步提高碰撞检测的效率。
附图说明
图1为一个实施例中机械臂的碰撞检测方法的流程示意图;
图2为另一个实施例中机械臂的碰撞检测方法的流程示意图;
图3为一个实施例中判断碰撞对是否发生碰撞的流程示意图;
图4为另一个实施例中机械臂的碰撞检测方法的流程示意图;
图5为另一个实施例中机械臂的碰撞检测方法的流程示意图;
图6为一个实施例中采样关节空间的结构示意图;
图7为一个实施例中机械臂的碰撞检测装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的机械臂的碰撞检测方法,可以实现对机械臂的碰撞检测,具体包括对机械臂的每个连杆进行碰撞检测。机械臂类似于人的手臂,是一种多自由度机器人,一般由一系列刚性构件通过连接件联结起来。刚性构件一般称为连杆,连接件一般叫做关节。两个相邻连杆的运动可以通过移动关节或旋转关节来实现,例如,移动关节可以实现两个连杆之间的相对平移,而旋转关节可以实现两个连杆之间的相对转动。
在一个实施例中,如图1所示,提供了一种机械臂的碰撞检测方法,该方法可以由控制器执行,具体地,控制器可以为机械臂中本来就具有的控制器,在原有控制器的基础上增加相应功能即可,以节约硬件成本。也可以是另外设计的控制器,具备相应的功能,以保障机械臂碰撞检测的准确性。该机械臂的碰撞检测方法包括以下步骤:
步骤102,对机械臂的关节空间进行预处理,得到采样关节空间。
机械臂的末端可以实现空间的多自由度运动,自由度一般指机械臂上能够独立运动的关节数目。对于一个具有n个自由度的机械臂来说,其所有连杆的位置可由一组n个关节变量加以确定。这样的一组变量常被称为关节矢量。所有关节矢量组成的空间称为关节空间。
具体的,对机械臂的关节空间进行预处理得到采样关节空间时,可以对机械臂的关节空间栅格化和对栅格化之后的关节空间进行采样,采样之后的关节空间称为采样关节空间。采样关节空间中的每个采样点对应一个关节矢量,关节矢量包括一组关节角度,关节角度也可以称为关节变量。因此,通过得到各采样点对应的各关节角度,可以确定机械臂的连杆的位置。可以理解,在其他实施例中,也可以采用其他方式对机械臂的关节空间进行预处理,得到采样关节空间,只要本领域技术人员认为可以实现即可。
步骤104,计算各碰撞对在采样关节空间中发生碰撞的概率。
具体的,将任意两个连杆作为一对碰撞对。在机器人的实际工作过程中,两个机械臂之间可能会发生碰撞,具体表现为一个机械臂中的任意一个连杆与另外一个机械臂中的任意一个连杆发生碰撞。各碰撞对在采样关节空间中发生碰撞的概率一般为,根据各采样点对应的各组关节角度,统计在采样关节空间中实际发生碰撞的碰撞对数量,然后计算在实际发生碰撞的碰撞对中,各碰撞对所占的比例。其中,各碰撞对在实际发生碰撞的碰撞对中所占的比例,可以表示各碰撞对在采样关节空间中发生碰撞的概率。
步骤106,根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对。
各碰撞对在采样关节空间中发生碰撞的概率可以表示在对机械臂的连杆做碰撞检测时,各连杆有碰撞发生的可能性大小。根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对,可以根据实际需求按照一定的规则选取待检测碰撞对。例如,可以先对发生碰撞可能性较高的碰撞对进行碰撞检测。或者,当碰撞对在采样关节空间中发生碰撞的概率为0时,则不将该碰撞对作为待检测碰撞对。依此,可以节约检测流程。
步骤108,对待检测碰撞对进行碰撞检测,得到碰撞检测结果。
其中,对待检测碰撞对进行碰撞检测是指对当前获取到的待检测碰撞对进行碰撞检测,得到的碰撞检测结果为当前获取到的待检测碰撞对的碰撞检测结果。可以理解,在对当前获取到的待检测碰撞对进行碰撞检测得到碰撞检测结果之后,继续获取下一个待检测碰撞对,对下一个待检测碰撞对进行碰撞检测。
上述机械臂的碰撞检测方法,通过对机械臂的关节空间进行预处理,得到采样关节空间,计算各碰撞对在采样关节空间中发生碰撞的概率,再根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对,然后对待检测碰撞对进行碰撞检测,得到碰撞检测结果;其中,根据各碰撞对在采样关节空间中发生碰撞的概率获取待检测碰撞对,可以有选择性地对当前获取的待检测碰撞对进行碰撞检测,不需要同时对多个碰撞对进行碰撞检测,从而减少非必要的冗余计算,在尽可能短的时间内返回是否发生碰撞的信息,进一步提高碰撞检测的效率。
在一个实施例中,如图2所示,步骤102包括步骤202和步骤204。
步骤202,对机械臂中各关节的关节空间进行栅格化。
其中,栅格化是将各关节的关节空间中的关节矢量转化为栅格地图,栅格地图可以由一个矩阵表示。矩阵中的每一个元素分别对应栅格地图中的一个点,该点相应元素的值对应于该点的关节信息。关节信息包括一组关节角度,并且关节信息可以是人为给定的。当给定关节信息时,机械臂可以在给定的关节角度下进行碰撞模拟。栅格化的具体步骤包括,根据给定的一个分辨率系数将各关节的关节空间均匀分成不同的区间,各区间包括多组关节信息。分辨率系数可以根据实际需求选择,在此并不限定。
步骤204,对栅格化后的关节空间进行采样,得到采样关节空间。
具体的,可以根据预设的采样数量,在栅格化后的关节空间中随机采样得到多个采样点。进一步地,还可以设定预设采样规则,根据预设采样规则和预设的采样数量,在栅格化后的关节空间中有条件地进行采样并得到多个采样点。
其中,采样关节空间里包括多个区间,每个区间包括栅格地图中的不同采样点,各区间中的各采样点的关节信息对应不同的连杆位置,各连杆之间有可能发生碰撞,也有可能不发生碰撞。一般情况下,大多数的区间中对应的各连杆位置都是没有碰撞发生的。因此,在存储矩阵中每一个元素的值时可以以稀疏矩阵的方式存储。当区间中没有连杆发生碰撞时,对应的矩阵元素的值可以为0,当区间中有连杆发生碰撞时,对应的矩阵元素的值可以为该区间中各采样点的关节信息。
在其中一个实施例中,如图2所示,步骤104包括步骤206和步骤208。
步骤206,在预设关节信息下,计算当前碰撞对发生碰撞的累计总数与采样关节空间中发生碰撞的碰撞对总数。
其中,预设关节信息可以为预设的关节角度,关节角度可以表征连杆的位置。当前碰撞对指的是从机械臂的末端进行碰撞检测查询时当前获取到的碰撞对;而采样关节空间中的碰撞对为所有区间中发生碰撞的碰撞对。
具体的,根据给定的关节角度,可以计算当前碰撞对在采样关节空间中发生碰撞的累计总数,和采样关节空间中所有发生碰撞的碰撞对的总数。
步骤208,根据当前碰撞对发生碰撞的累计总数与采样关节空间中发生碰撞的碰撞对总数,计算各碰撞对在采样关节空间中发生碰撞的概率。
其中,各碰撞对在采样关节空间中发生碰撞的概率可以表示,在对机械臂各连杆做一次碰撞检测时,各连杆发生碰撞的可能性。计算各碰撞对在采样关节空间中发生碰撞的概率的具体步骤可以为,求解当前碰撞对发生碰撞的累计总数与采样关节空间中发生碰撞的碰撞对总数的比值,将比值作为各碰撞对在采样关节空间中发生碰撞的概率。
在其中一个实施例中,如图3所示,步骤206中,判断碰撞对是否发生碰撞包括步骤302、步骤304和步骤306。
步骤302,求解各连杆的包络在笛卡尔空间的位姿。
为了简化各连杆之间的碰撞检测运算,通常会对机械臂的各连杆使用一个规则的几何外形将其包围,这个几何外形称为包络。常见的包络模型包括球形包络框、无向包络框和有向包络框。
笛卡尔空间也称任务空间,为机械臂实际的工作空间。笛卡尔空间包括笛卡尔坐标系,机械臂各连杆在笛卡尔空间中的位置可以分别由笛卡尔坐标系表示。另外,笛卡尔空间和关节空间可以通过正逆运动学的计算方法相互映射。具体包括,当已知各关节的关节信息时,可以通过正运动学计算方法求解各连杆的包络在笛卡尔空间中的位置;当已知各连杆的包络在笛卡尔空间中的位置时,可以通过逆运动学计算方法求解各关节的关节信息。其中,各连杆的包络在笛卡尔空间中的位置叫做各连杆的包络在笛卡尔空间的位姿。求解各连杆的包络在笛卡尔空间的位姿即为,获取各连杆的包络在笛卡尔空间中的位置。
步骤304,根据各连杆的包络在笛卡尔空间的位姿,获取发生碰撞的包络。
具体的,在对机械臂的各连杆进行碰撞检测时,可以根据各关节的关节角度,通过正运动学计算方法计算各连杆的包络在笛卡尔空间的位姿,并判断各连杆的包络有无发生碰撞。当任意两个连杆的包络存在重叠时,可以判断该两个连杆的包络发生碰撞,同时获取该发生碰撞的包络对。但是,当连杆的包络发生碰撞时,连杆不一定会发生碰撞,还需要继续进行较为精准的碰撞检测。
步骤306,对已知碰撞的包络对应的连杆通过三角相交算法判断连杆是否实际发生碰撞。
获取发生碰撞的包络对后,表示该包络对所对应的连杆对之间有可能实际发生碰撞,此时,可以通过网格相交检测的方法进一步判断各连杆之间是否实际发生碰撞。网格相交检测的具体步骤包括,首先使用三角形来构造网面,再使用该网面来拟合机械臂的连杆,构建各连杆的精细化网格模型。然后对有可能发生碰撞的连杆对的精细化网格模型逐一进行三角相交检测。当任意一对连杆的三角面相交时,判断该连杆对实际发生碰撞。
由于碰撞对包括任意两个机械臂的连杆,因此,在计算当前碰撞对发生碰撞的累计总数与采样关节空间中发生碰撞的碰撞对总数时,当前碰撞对发生碰撞的累计总数可以为当前连杆对实际发生碰撞的次数,采样关节空间中发生碰撞的碰撞对总数可以为实际发生碰撞的连杆对的数量。
对应地,在计算各碰撞对在采样关节空间中发生碰撞的概率之后,对待检测碰撞对进行碰撞检测,得到碰撞检测结果。此时的碰撞检测可以包括宽相检测和窄相检测。其中,宽相检测可以是上述的包络检测,包络检测包括根据各连杆的包络在笛卡尔空间的位姿判断是否相交,如果相交,则判断该碰撞对的包络发生碰撞,如果不相交,则判断该碰撞对的包络不发生碰撞。窄相检测可以是上述的网格相交检测,网格相交检测包括对已知碰撞的包络对应的连杆通过三角相交算法判断连杆是否实际发生碰撞。根据宽相检测和窄相检测结合的方法对待检测碰撞对进行碰撞检测,可以提高检测结果的准确性。
其中一个实施例中,如图4所示,步骤106包括步骤401。
步骤401,按照各碰撞对在采样关节空间中发生碰撞的概率从大到小的顺序,依次获取待检测碰撞对。
具体的,根据当前碰撞对发生碰撞的累计总数与采样关节空间中发生碰撞的碰撞对总数计算各碰撞对在采样关节空间中发生碰撞的概率之后,将各概率从大到小进行排序,得到排序结果。进一步地,还可以将排序结果存储到控制器的链表结构中。其中,排序结果包括从大到小排列的概率,以及各概率对应的碰撞对。获取待检测碰撞对时,可以按照各碰撞对在采样关节空间中发生碰撞的概率从大到小的顺序依次获取。其中,当有一对连杆的包络没有发生碰撞时,该碰撞对在采样关节空间中发生碰撞的概率为0,此时可以不将该碰撞对存储到链表结构中。当链表结构中没有存储碰撞对时,链表结构为空。
其中一个实施例中,如图4所示,步骤108之后包括步骤402和步骤404。
步骤402,若碰撞检测结果为碰撞对发生了碰撞,则输出发生了碰撞的碰撞对。
具体的,碰撞检测结果可为窄相检测结果。如果待检测碰撞对的宽相检测结果为有碰撞发生,则进行窄相检测;如果待检测碰撞对的窄相检测结果也为有碰撞发生,则判断该碰撞对发生了碰撞,此时输出该碰撞对。其中,输出该碰撞对时包括输出该碰撞对对应的连杆对,和该碰撞对的碰撞点的坐标。碰撞点为在对该碰撞对进行窄相检测时,该碰撞对对应的连杆对的三角面相交点。相交点在笛卡尔坐标系的坐标即为该碰撞对的碰撞点的坐标。
本步骤中,通过当碰撞检测结果为碰撞对发生了碰撞,输出发生了碰撞的碰撞对和碰撞点的坐标,可以为机械臂的轨迹规划提供有用信息。例如,当机械臂检测到有碰撞发生时,可以根据碰撞点的坐标对机械臂的运动轨迹进行调整,从而保障机械臂在工作过程中的安全性。
步骤404,若结果为碰撞对未发生碰撞,则返回步骤106。
具体的,当待检测碰撞对的宽相检测结果为无碰撞发生时,判断该碰撞对没有发生碰撞,此时根据各碰撞对在采样关节空间中发生碰撞的概率,具体可以根据各碰撞对在采样关节空间中发生碰撞的概率的排序结果,获取下一个碰撞对作为待检测碰撞对。同样的,当待检测碰撞对的窄相检测结果为无碰撞发生时,判断该碰撞对没有发生碰撞,此时根据各碰撞对在采样关节空间中发生碰撞的概率,具体可以根据各碰撞对在采样关节空间中发生碰撞的概率的排序结果,获取下一个碰撞对作为待检测碰撞对。
在其中一个实施例中,如图4所示,步骤106之后包括步骤406。
步骤406,若各碰撞对在采样关节空间中发生碰撞的概率均小于预设概率阈值,则判断无碰撞发生。
其中,预设概率阈值可以作为衡量碰撞对是否发生碰撞的依据。预设概率阈值可以为与0相近的数值,例如0.1等,在此不做限定。
在计算各碰撞对在采样关节空间中发生碰撞的概率之后,如果此时该碰撞对在采样关节空间中发生碰撞的概率小于预设概率阈值,则考虑该碰撞对不会发生碰撞,或几乎不可能发生碰撞。若各碰撞对在采样关节空间中发生碰撞的概率均小于预设概率阈值,说明各碰撞对的包络都几乎没有碰撞发生,此时,可以判断几乎没有发生碰撞的碰撞对,从而进一步判断各连杆几乎无碰撞发生。
进一步地,在各碰撞对在采样关节空间中发生碰撞的概率均小于预设概率阈值,判断无碰撞发生时,链表结构中不会存储碰撞对,链表结构为空。
在其中一个实施例中,如图4所示,步骤204包括步骤205。
步骤205,使用蒙特卡洛法对栅格化的关节空间进行采样,得到采样关节空间。
在使用蒙特卡洛法对栅格化的关节空间进行采样,得到采样关节空间时,可以降低关节空间的维度,从而减少计算量,进一步加快碰撞检测的速度。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及其中一个最具体实施例,对本申请进行进一步详细说明。应当理解,此处描述的最具体实施例仅仅用以解释本申请,并不用于限定本申请。
如图5所示,为一个具体实施例的流程图。
在其中一个具体实施例中,机械臂的碰撞检测方法的步骤如下:
1、关节空间栅格化:对机械臂每个关节的关节空间进行栅格化,给定一个分辨率系数x,对每个关节空间作分成x等分。如图6所示,关节空间将被划分成离散化的栅格地图,栅格地图中的每一个区间构成一个统计单元。
2、对样本空间进行抽样:使用蒙特卡洛法对栅格化的关节空间进行采样,给定一个采样数量sample_x,算法将在关节空间中进行随机采样生成采样点。每个采样点对应一组特定的关节角度。
3、计算给定关节角度下做一次碰撞检测时存在至少一对相交三角的条件概率:对末端进行碰撞检测查询并统计发生碰撞对在该区间中发生碰撞的概率。统计方法是对该区间中的采样关节角度使用运动学正解求解在该关节下相应连杆的包络在笛卡尔空间的位姿,并对已知包络发生碰撞的连杆通过三角相交算法统计实际发生碰撞的连杆数量,并基于该统计的结果计算进行一次碰撞检测时至少发生一个相交三角的条件概率。如图6所示,栅格地图中存在碰撞发生区域、无碰撞区域、和需检测区域。其中,需检测区域内包括的关节信息所对应的是有碰撞发生的包络。无碰撞区域内包括的关节信息所对应的是没有发生碰撞的包络。存在碰撞发生区域内包括的关节信息所对应的碰撞对是一对实际发生碰撞的连杆。
4、使用链表结构保存查询顺序:对条件概率进行排序,该条件概率为各碰撞对在采样后的关节空间中发生碰撞的概率。得到条件概率的排序结果之后,使用链表结构对每一个统计单元保存碰撞对的检测顺序。其中,当碰撞对的包络没有发生碰撞时,该碰撞对在链表结构中存储的值为空。
5、进行实时碰撞检测时,如图6所示,对于栅格地图中的无碰撞区域中的各碰撞对,不做碰撞检测;对于需检测区域中的碰撞对,只做一次碰撞检测。只做一次碰撞检测是指只进行宽相检测,而不进行进一步的窄相检测。对于存在碰撞发生区域中的各碰撞对,按照链表结构保存的查询顺序从链表结构获取待检测碰撞对,如果链表结构为空,表示无碰撞发生。如果不为空,获取链表结构中存储的碰撞对,并进行宽相检测,判断有无碰撞发生。如果没有碰撞发生,则获取下一对碰撞对;如果有碰撞发生,则进行窄相检测。如果窄相检测结果为有碰撞发生,则输出碰撞对以及碰撞位置;如果窄相检测结果为没有碰撞发生,则获取下一对碰撞对。
本实施例中的机械臂的碰撞检测方法,通过栅格化机械臂每个关节的关节空间,使用蒙特卡洛法对栅格化的关节空间进行采样,得到多组采样关节角度;再根据该关节角度计算做一次碰撞检测时存在至少一对相交三角的条件概率,对条件概率进行排序,并使用链表结构保存碰撞对的检测顺序。然后,在进行实时碰撞检测时,按照检测顺序从链表获取待检测碰撞对,判断有无碰撞对发生碰撞。本方法可以充分利用给定的关节信息减少无效计算,加快实时计算速度。另外,在多于一对连杆发生碰撞的情况下,可以直接跳过包络没有发生碰撞的连杆的碰撞检测流程,并以条件概率从大到小的顺序获取碰撞对的碰撞信息,从而减少了计算量,加速完成碰撞检测。
上述机械臂的碰撞检测方法,通过对机械臂每个关节的关节空间进行预处理,计算各碰撞对在采样关节空间中发生碰撞的概率,再根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对,然后对待检测碰撞对进行碰撞检测,得到碰撞检测结果;其中,根据各碰撞对在采样关节空间中发生碰撞的概率获取待检测碰撞对,可以有选择性地对当前获取的待检测碰撞对进行碰撞检测,不需要同时对多个碰撞对进行碰撞检测,从而可以减少碰撞检测的时间,进一步提高碰撞检测的效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种机械臂的碰撞检测装置,包括:预处理模块702、概率计算模块704、碰撞对获取模块706和碰撞检测模块708,其中:
预处理模块702,用于对机械臂的关节空间进行预处理,得到采样关节空间;
概率计算模块704,用于计算各碰撞对在采样关节空间中发生碰撞的概率;碰撞对包括任意两个机械臂的连杆;
碰撞对获取模块706,用于根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对;
碰撞检测模块708,用于对待检测碰撞对进行碰撞检测,得到碰撞检测结果。
在其中一个实施例中,预处理模块702还用于对机械臂中各关节的关节空间进行栅格化;对栅格化后的关节空间进行采样,得到采样关节空间。一个关节对应一个连杆。
在其中一个实施例中,预处理模块702在对栅格化后的关节空间进行采样,得到采样关节空间时,使用蒙特卡洛法对栅格化的关节空间进行采样,得到采样关节空间。
在其中一个实施例中,上述概率计算模块704还用于在预设关节信息下,计算当前碰撞对发生碰撞的累计总数与采样关节空间中发生碰撞的碰撞对总数;然后根据当前碰撞对发生碰撞的累计总数与采样关节空间中发生碰撞的碰撞对总数计算各碰撞对在采样关节空间中发生碰撞的概率。
在其中一个实施例中,上述概率计算模块704还用于求解各连杆的包络在笛卡尔空间的位姿,再根据各连杆的包络在笛卡尔空间的位姿,获取发生碰撞的包络,然后对已知碰撞的包络对应的连杆通过三角相交算法判断连杆是否发生碰撞。
在其中一个实施例中,上述碰撞对获取模块706还用于按照各碰撞对在采样关节空间中发生碰撞的概率从大到小的顺序,依次获取待检测碰撞对。
在其中一个实施例中,机械臂的碰撞检测装置还包括结果输出模块,结果输出模块用于在碰撞检测模块对待检测碰撞对进行碰撞检测,得到碰撞检测结果之后,若碰撞检测结果为碰撞对发生了碰撞,则输出发生了碰撞的碰撞对;若结果为碰撞对未发生碰撞,则返回根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对。
在其中一个实施例中,机械臂的碰撞检测装置还包括概率比较模块,概率比较模块用于在碰撞对获取模块根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对之后,若各碰撞对在采样关节空间中发生碰撞的概率均小于预设概率阈值,则判断无碰撞发生。
上述机械臂的碰撞检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
上述机械臂的碰撞检测装置、计算机设备、存储介质和计算机程序产品,机械臂的碰撞检测装置通过对机械臂的关节空间进行预处理,得到采样关节空间,计算各碰撞对在采样关节空间中发生碰撞的概率,再根据各碰撞对在采样关节空间中发生碰撞的概率,获取待检测碰撞对,然后对待检测碰撞对进行碰撞检测,得到碰撞检测结果;其中,根据各碰撞对在采样关节空间中发生碰撞的概率获取待检测碰撞对,可以对当前获取的待检测碰撞对进行碰撞检测,不需要同时对多个碰撞对进行碰撞检测,从而可以减少碰撞检测的时间,进一步提高碰撞检测的效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种机械臂的碰撞检测方法,其特征在于,所述方法包括:
对机械臂的关节空间进行预处理,得到采样关节空间;所述采样关节空间包括多个区间,各所述区间包括多组关节信息;
计算各碰撞对在所述采样关节空间中发生碰撞的概率;所述碰撞对包括任意两个机械臂的连杆;
根据所述各碰撞对在所述采样关节空间中发生碰撞的概率,获取待检测碰撞对;
对所述待检测碰撞对进行碰撞检测,得到碰撞检测结果;
所述计算各碰撞对在所述采样关节空间中发生碰撞的概率,包括:
在预设关节信息下,计算当前碰撞对发生碰撞的累计总数与所述采样关节空间中发生碰撞的碰撞对总数;
将所述当前碰撞对发生碰撞的累计总数与所述采样关节空间中发生碰撞的碰撞对总数的比值作为所述各碰撞对在所述采样关节空间中发生碰撞的概率;
所述对所述待检测碰撞对进行碰撞检测,得到碰撞检测结果包括:
对所述待检测碰撞对进行包络检测,得到宽相检测结果;
若所述宽相检测结果为发生碰撞,则对所述待检测碰撞对进行网格相交检测,得到窄相检测结果;
根据所述宽相检测结果和所述窄相检测结果得到所述碰撞检测结果。
2.根据权利要求1所述的方法,其特征在于,所述对机械臂的关节空间进行预处理,得到采样关节空间,包括:
对机械臂中各关节的关节空间进行栅格化;
对栅格化后的关节空间进行采样,得到采样关节空间。
3.根据权利要求1所述的方法,其特征在于,判断碰撞对是否发生碰撞,包括:
求解所述各连杆的包络在笛卡尔空间的位姿;
根据各连杆的包络在笛卡尔空间的位姿,获取发生碰撞的包络;
对已知碰撞的包络对应的连杆通过三角相交算法判断连杆是否实际发生碰撞。
4.根据权利要求1所述的方法,其特征在于,所述根据所述各碰撞对在所述采样关节空间中发生碰撞的概率,获取待检测碰撞对,包括:
按照各碰撞对在所述采样关节空间中发生碰撞的概率从大到小的顺序,依次获取待检测碰撞对。
5.根据权利要求4所述的方法,其特征在于,所述按照各碰撞对在所述采样关节空间中发生碰撞的概率从大到小的顺序,依次获取待检测碰撞对包括:
将各碰撞对在所述采样关节空间中发生碰撞的概率从大到小进行排序,得到排序结果;所述排序结果包括从大到小排列的概率,以及各概率对应的碰撞对;
将所述排序结果以链表的形式进行存储。
6.根据权利要求1所述的方法,其特征在于,所述对所述待检测碰撞对进行碰撞检测,得到碰撞检测结果之后,包括:
若所述碰撞检测结果为碰撞对发生了碰撞,则输出发生了碰撞的碰撞对;
若所述结果为碰撞对未发生碰撞,则返回所述根据所述各碰撞对在所述采样关节空间中发生碰撞的概率,获取待检测碰撞对。
7.根据权利要求1所述的方法,其特征在于,所述根据所述各碰撞对在所述采样关节空间中发生碰撞的概率,获取待检测碰撞对之后,还包括:
若所述各碰撞对在所述采样关节空间中发生碰撞的概率均小于预设概率阈值,则判断无碰撞发生。
8.根据权利要求2所述的方法,其特征在于,所述对栅格化后的关节空间进行采样,得到采样关节空间,包括:
使用蒙特卡洛法对栅格化的关节空间进行采样,得到采样关节空间。
9.一种机械臂的碰撞检测装置,其特征在于,所述装置包括:
预处理模块,用于对机械臂的关节空间进行预处理,得到采样关节空间;所述采样关节空间包括多个区间,各所述区间包括多组关节信息;
概率计算模块,用于计算各碰撞对在所述采样关节空间中发生碰撞的概率;所述碰撞对包括任意两个机械臂的连杆;所述计算各碰撞对在所述采样关节空间中发生碰撞的概率,包括:在预设关节信息下,计算当前碰撞对发生碰撞的累计总数与所述采样关节空间中发生碰撞的碰撞对总数;将所述当前碰撞对发生碰撞的累计总数与所述采样关节空间中发生碰撞的碰撞对总数的比值作为所述各碰撞对在所述采样关节空间中发生碰撞的概率;
碰撞对获取模块,用于根据所述各碰撞对在所述采样关节空间中发生碰撞的概率,获取待检测碰撞对;
碰撞检测模块,用于对所述待检测碰撞对进行碰撞检测,得到碰撞检测结果;所述对所述待检测碰撞对进行碰撞检测,得到碰撞检测结果包括:对所述待检测碰撞对进行包络检测,得到宽相检测结果;若所述宽相检测结果为发生碰撞,则对所述待检测碰撞对进行网格相交检测,得到窄相检测结果;根据所述宽相检测结果和所述窄相检测结果得到所述碰撞检测结果。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211127334.6A CN116038765B (zh) | 2022-09-16 | 2022-09-16 | 机械臂的碰撞检测方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211127334.6A CN116038765B (zh) | 2022-09-16 | 2022-09-16 | 机械臂的碰撞检测方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116038765A CN116038765A (zh) | 2023-05-02 |
CN116038765B true CN116038765B (zh) | 2023-10-31 |
Family
ID=86127904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211127334.6A Active CN116038765B (zh) | 2022-09-16 | 2022-09-16 | 机械臂的碰撞检测方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116038765B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104325462A (zh) * | 2014-09-30 | 2015-02-04 | 同济大学 | 一种固有约束下构建机器人运动空间的方法 |
CN114533274A (zh) * | 2022-02-21 | 2022-05-27 | 哈尔滨思哲睿智能医疗设备有限公司 | 一种基于术式仿真的腔镜手术机器人碰撞检测方法及装置 |
CN114533263A (zh) * | 2020-11-24 | 2022-05-27 | 上海微创医疗机器人(集团)股份有限公司 | 机械臂碰撞提示方法、可读存储介质、手术机器人及系统 |
CN114536342A (zh) * | 2022-03-23 | 2022-05-27 | 宁波睿达医疗器械有限公司 | 一种多臂系统及其臂间防撞控制方法 |
-
2022
- 2022-09-16 CN CN202211127334.6A patent/CN116038765B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104325462A (zh) * | 2014-09-30 | 2015-02-04 | 同济大学 | 一种固有约束下构建机器人运动空间的方法 |
CN114533263A (zh) * | 2020-11-24 | 2022-05-27 | 上海微创医疗机器人(集团)股份有限公司 | 机械臂碰撞提示方法、可读存储介质、手术机器人及系统 |
CN114533274A (zh) * | 2022-02-21 | 2022-05-27 | 哈尔滨思哲睿智能医疗设备有限公司 | 一种基于术式仿真的腔镜手术机器人碰撞检测方法及装置 |
CN114536342A (zh) * | 2022-03-23 | 2022-05-27 | 宁波睿达医疗器械有限公司 | 一种多臂系统及其臂间防撞控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116038765A (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107803831B (zh) | 一种aoaae层次包围盒碰撞检测方法 | |
US11300964B2 (en) | Method and system for updating occupancy map for a robotic system | |
JP7141665B2 (ja) | ロボットの動作計画に役立つ衝突検出 | |
Coming et al. | Velocity-aligned discrete oriented polytopes for dynamic collision detection | |
US5056031A (en) | Apparatus for detecting the collision of moving objects | |
US11745346B2 (en) | Motion planning of a robot storing a discretized environment on one or more processors and improved operation of same | |
JP7314411B2 (ja) | 移動ロボットの障害物情報感知方法、装置 | |
CN109682336B (zh) | 用于车身精度检测的三坐标测量路径自动规划与优化方法 | |
Vasquez-Gomez et al. | Hierarchical ray tracing for fast volumetric next-best-view planning | |
CN113618742B (zh) | 一种机器人避障方法、装置和机器人 | |
Kwon et al. | Super rays and culling region for real-time updates on grid-based occupancy maps | |
CN115793647A (zh) | 一种机器人避障路径规划方法、系统及介质 | |
CN116038765B (zh) | 机械臂的碰撞检测方法、装置和计算机设备 | |
Kim et al. | GraphDistNet: A graph-based collision-distance estimator for gradient-based trajectory optimization | |
Dietrich et al. | Probabilistic multi-sensor fusion based on signed distance functions | |
CN104573144A (zh) | 量测设备离线点云模拟系统及方法 | |
Kwon et al. | Super ray based updates for occupancy maps | |
Rustler et al. | Efficient visuo-haptic object shape completion for robot manipulation | |
Paulin et al. | A specialised collision detector for grape vines | |
Liu et al. | An effective self-collision detection algorithm for multi-degree-of-freedom manipulator | |
Roussel et al. | Motion planning for a deformable linear object | |
Weller et al. | Kinetic Separation Lists for Continuous Collision Detection of Deformable Objects. | |
CN114918913B (zh) | 一种碰撞检测方法、装置、计算机设备和存储介质 | |
CN116935233B (zh) | 用于激光雷达的目标检测方法和装置 | |
Sandakalum et al. | Inv-Reach Net: Deciding mobile platform placement for a given task |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |