CN117381798A - 手眼标定方法及装置 - Google Patents
手眼标定方法及装置 Download PDFInfo
- Publication number
- CN117381798A CN117381798A CN202311685193.4A CN202311685193A CN117381798A CN 117381798 A CN117381798 A CN 117381798A CN 202311685193 A CN202311685193 A CN 202311685193A CN 117381798 A CN117381798 A CN 117381798A
- Authority
- CN
- China
- Prior art keywords
- target
- position information
- tool
- point cloud
- plane
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000001514 detection method Methods 0.000 claims description 69
- 239000013598 vector Substances 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000000007 visual effect Effects 0.000 claims description 8
- 230000009466 transformation Effects 0.000 claims description 7
- 230000004438 eyesight Effects 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 25
- 238000012545 processing Methods 0.000 description 23
- 239000011159 matrix material Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000012800 visualization Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000003466 welding Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 210000000887 face Anatomy 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 230000004382 visual function Effects 0.000 description 1
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/1628—Programme controls characterised by the control loop
- B25J9/1653—Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
-
- 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/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- 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/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B11/00—Measuring arrangements characterised by the use of optical techniques
- G01B11/002—Measuring arrangements characterised by the use of optical techniques for measuring two or more coordinates
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
本申请提供了一种手眼标定方法及装置,涉及机器人视觉技术领域。该方法包括:获得点云相机采集到的3D工装的点云数据,3D工装中包括至少1个立方体;对点云数据进行工装角点检测,得到多个工装角点各自在相机坐标系下的第一位置信息,工装角点为立方体角点;通过使机器人末端触碰工装角点的方式,获得多个目标工装角点各自在机器人基坐标系下的第二目标位置信息;从多个工装角点的第一位置信息中获得多个目标工装角点各自的第一目标位置信息;根据各目标工装角点的第一目标位置信息及第二目标位置信息,计算得到手眼标定结果。如此,只需要对3D工装拍摄一次即可在保证标定精度的情况下完成标定,可减少标定时间,并且无需获得相机内参。
Description
技术领域
本申请涉及机器人视觉技术领域,具体而言,涉及一种手眼标定方法及装置。
背景技术
相机手眼标定是在包含机器人和相机的系统中,建立相机坐标系与机器人坐标系之间的坐标转换关系的过程。在机器人的应用领域中,机器人需要通过外设传感器来判断周围环境,从而与其他物体或人进行交互,而在机器人上或旁边安装相机可以为机器人提供视觉功能,从而自主识别环境种的各种目标,对目标的状态进行判断与分析,从而做到智能化地自行解决问题。
目前机器人视觉分为2D视觉和3D视觉两种,所搭载的相机分别为RGB相机和3D点云相机。其中2D机器人视觉已经广泛应用于机器人码垛、物品标签读取和表面特征检测等领域。但是,当前智能制造技术对机器人视觉性能的要求逐渐提高,2D机器人视觉技术的应用场景有限,3D机器人视觉技术能够为机器人带来目标的形状和深度信息,使得机器人更加方便地抓取目标或分析目标的边缘信息。而3D点云相机的手眼标定精度直接影响着最终机器人到位的准确性,这在焊接和抓取等高精度工业场景至关重要。
目前常见的3D点云相机手眼标定方式为基于2D棋盘格的方法,在该方法中,需要获得相机的内参,但是该参数一般情况下厂家不提供,导致需要标定相机内参;并且,需要拍摄多角度的图,使得标定过程比较繁琐。
发明内容
本申请实施例提供了一种手眼标定方法、装置、电子设备及可读存储介质,其只需要对3D工装拍摄一次即可在保证标定精度的情况下完成标定,避免了传统手眼标定多次拍摄的繁琐过程,可减少标定时间,并且无需获得相机内参。
本申请的实施例可以这样实现:
第一方面,本申请提供一种手眼标定方法,所述方法包括:
获得点云相机采集到的3D工装的点云数据,其中,所述3D工装中包括至少1个立方体;
对所述点云数据进行工装角点检测,得到多个工装角点各自在相机坐标系下的第一位置信息,其中,所述工装角点为立方体角点;
通过使机器人末端触碰工装角点的方式,获得多个目标工装角点各自在机器人基坐标系下的第二目标位置信息;
从所述多个工装角点的第一位置信息中获得所述多个目标工装角点各自的第一目标位置信息;
根据各所述目标工装角点的第一目标位置信息及第二目标位置信息,计算得到手眼标定结果。
第二方面,本申请实施例提供一种手眼标定装置,所述装置包括:
数据获得模块,用于获得点云相机采集到的3D工装的点云数据,其中,所述3D工装中包括至少1个立方体;
检测模块,用于对所述点云数据进行工装角点检测,得到多个工装角点各自在相机坐标系下的第一位置信息,其中,所述工装角点为立方体角点;
位置信息获得模块,用于通过使机器人末端触碰工装角点的方式,获得多个目标工装角点各自在机器人基坐标系下的第二目标位置信息;
所述位置信息获得模块,还用于从所述多个工装角点的第一位置信息中获得所述多个目标工装角点各自的第一目标位置信息;
计算模块,用于根据各所述目标工装角点的第一目标位置信息及第二目标位置信息,计算得到手眼标定结果。
第三方面,本申请实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式所述的点云相机的手眼标定方法。
第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式所述的点云相机的手眼标定方法。
本申请实施例提供的手眼标定方法、装置、电子设备及可读存储介质,首先获得通过点云相机得到的包括至少1个立方体的3D工装的点云数据,进而通过对该点云数据进行工装角点检测,从而得到多个工装角点各自在点云相机的相机坐标系下的第一位置信息,上述工装角点为3D工装中的立方体的角点;之后,可通过使机器人末端触碰3D工装中的工装角点的方式,获得被触碰的多个目标工装角点各自在机器人基坐标系下的第二目标位置信息,还可以从已获得的多个工装角点的第一位置信息中确定出各目标工装角点的第一位置信息作为各目标工装角点的第一目标位置信息;最后,根据各目标工装角点的第一目标位置信息及第二目标位置信息,计算得到手眼标定结果。如此,可获得可靠的角点数据以获得精度高的标定结果,并且标定过程中只需要对3D工装拍摄一次,避免了传统手眼标定多次拍摄的繁琐过程,可减少标定时间,并且无需获得相机内参。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的3D工装的结构示意图;
图2为本申请实施例提供的电子设备的方框示意图;
图3为本申请实施例提供的手眼标定方法的流程示意图;
图4为图3中步骤S200包括的子步骤的流程示意图;
图5为图4中子步骤S210包括的子步骤的流程示意图;
图6为图5中子步骤S212包括的子步骤的流程示意图;
图7为图4中子步骤S220包括的子步骤的流程示意图;
图8为图7中子步骤S221包括的子步骤的流程示意图;
图9为图7中子步骤S224包括的子步骤的流程示意图;
图10为图3中步骤S400包括的子步骤的流程示意图;
图11为图3中步骤S500包括的子步骤的流程示意图;
图12为本申请实施例提供的手眼标定装置的方框示意图。
图标:100-电子设备;110-存储器;120-处理器;130-通信单元;200-手眼标定装置;210-数据获得模块;220-检测模块;230-位置信息获得模块;240-计算模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请发明人经研究发现可通过基于2D棋盘格和基于点云配准的方法进行3D点云相机的手眼标定。
基于2D棋盘格的方法需要3D相机具有RGB相机,通过2D棋盘格标定相机的RGB镜头,然后通过相机RGB镜头到深度镜头的转换内参进行转换,从而得到点云镜头的手眼变换矩阵。并且,在上述标定过程中需要拍摄多角度的图,导致标定过程比较繁琐。
基于点云配准的方法则为:先获取相机坐标系相对于工具坐标系的初始矩阵,然后用点云相机对标定板进行拍摄,获取多组点云数据和机械臂位姿,之后根据机械臂位姿对多组点云数据进行配准,计算配准误差,最后根据初始矩阵和配准误差,对手眼矩阵进行迭代计算。这种方式需要对标定板进行多角度拍摄,通过对不同角度的点云进行配准,计算点云相机手眼变换矩阵。这种方式存在以下两个不足。1.需要多次变换机器人位姿进行多角度拍摄。基于点云配准的3D点云相机手眼标定方法是根据多角度拍摄得到的点云之间的配准变换矩阵拟合出相机手眼矩阵,当拍摄角度较少或者角度变化幅度较小时,该方法拟合出来的手眼矩阵精度也较低。2.点云配准结果影响较大。当不同角度拍摄的点云进行配准时,误差如果较大,会直接影响最终的手眼标定精度。
针对上述情况,本申请实施例提供了一种手眼标定方法、装置、电子设备及可读存储介质,可获得可靠的角点数据以获得精度高的标定结果,并且标定过程中只需要对3D工装拍摄一次,避免了传统手眼标定多次拍摄的繁琐过程,可减少标定时间,并且无需获得相机内参,同时克服了基于配准的点云相机手眼标定方法对配准准确性的敏感性,以及标定结果不依赖于拍摄角度的选择。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本申请实施例提供一种标定系统,所述标定系统包括机器人、点云相机、3D工装及计算得到手眼标定结果的电子设备。所述点云相机即为3D点云相机,可以是,但不限于,结构光相机、雷达等。所述点云相机与机器人的关系可以分为两种:眼在手上,眼在手外。眼在手上,表示点云相机安装于所述机器人的末端,比如,机器人的机械臂末端的法兰上,如此点云相机可随机器人末端移动;或者,点云相机不在机器人末端,两者分离,眼的位置相对于手固定。3D工装为3D手眼标定工装。如图1所示,所述3D工装中包括至少1个立方体,所述立方体可以是长方体或正方体,具体可以结合实际需求确定。
可利用点云相机获得该3D工装的点云数据,然后对点云数据进行工装角点检测,从而得到工装角点在点云相机的相机坐标下的坐标。还可以通过使机器人末端触碰实际工装角点的方式,获得工装角点在机器人的基坐标系的坐标。最后,则可以通过上述两组坐标数据计算得到手眼标定结果。
可选地,作为一种可能的实现方式,为便于获得足够数量的角点坐标,如图1所示,所述3D工装中可以包括多个立方体,该多个立方体可以相同或不同。
可选地,为便于后续通过将互相垂直的三个平面的交点作为角点的方式,获得工作角点的点云坐标(即在相机坐标下的坐标),所述3D工装中可以包括多个相同立方体,该多个相同立方体预设行距离和/或预设列距离设置在一平面板上。即所述3D工装可仅包括一行立方体,该行立方体中相邻立方体之间的间隔为预设列距离;或者,可以仅包括一列立方体,该列立方体中相邻立方体之间的间隔为预设行距离;或者,如图1所示,所述3D工装包括多行立方体,一行立方体中包括多个立方体。其中,所述预设行距离与所述预设列距离可相同或不同,具体可以结合实际需求确定。
作为一种可能的实现方式,所述3D工装中包括多个相同的立方体,所述立方体为正方体,相邻立方体之间的距离等于所述立方体的边长。如图1所示,所述3D工装中包括1个平面板及12个相同的正方体。平面板与正方体可以为1个整体,每个正方体的大小为50mm×50mm×50mm,平面板上均匀放置4×3个正方体,正方体之间的间隔为50mm,整个外围留出25mm长度的余量,平面板的厚度为5mm。
请参照图2,图2为本申请实施例提供的电子设备100的方框示意图。所述电子设备100可以是,但不限于,电脑、服务器等。所述电子设备100以包括存储器110、处理器120及通信单元130。所述存储器110、处理器120以及通信单元130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器110用于存储程序或者数据。所述存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
处理器120用于读/写存储器110中存储的数据或程序,并执行相应地功能。比如,存储器110中存储有手眼标定装置200,所述手眼标定装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块。所述处理器120通过运行存储在存储器110内的软件程序以及模块,如本申请实施例中的手眼标定装置200,从而执行各种功能应用以及数据处理,即实现本申请实施例中的手眼标定方法。
通信单元130用于通过网络建立所述电子设备100与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
应当理解的是,图2所示的结构仅为电子设备100的结构示意图,所述电子设备100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
请参照图3,图3为本申请实施例提供的手眼标定方法的流程示意图。所述方法可应用于上述电子设备100。下面对手眼标定方法的具体流程进行详细阐述。在本实施例中,所述方法可以包括步骤S100~步骤S500。
步骤S100,获得点云相机采集到的3D工装的点云数据。
在本实施例中,所述3D工装中包括至少1个立方体,该立方体可以是正方体或长方体,所述3D工装中的立方体数量及形状(即为正方体或长方体)具体可以结合实际需求设置。可利用点云相机对该3D工装进行一次数据采集,得到点云数据。
步骤S200,对所述点云数据进行工装角点检测,得到多个工装角点各自在相机坐标系下的第一位置信息。
在获得点云数据之后,可通过角点检测,基于该点云数据获得多个工装角点各自在点云相机的相机坐标系下的第一位置信息。其中,所述工装角点为立方体角点,立方体角点便于检测。
步骤S300,通过使机器人末端触碰工装角点的方式,获得多个目标工装角点各自在机器人基坐标系下的第二目标位置信息。
步骤S400,从所述多个工装角点的第一位置信息中获得所述多个目标工装角点各自的第一目标位置信息。
在本实施例中,可控制机器人末端触碰所述3D工装中的立方体角点(即工装角点),被触碰的工装角点即为目标工装角点,并获得机器人末端在机器人的基坐标系下的坐标,可将该坐标作为目标工装角点在机器人基坐标系下的第二目标位置信息。其中,在机器人末端安装有工具时,可控制机器人末端工具触碰工装角点,并获得此时末端在机器人的基坐标系下的坐标,以作为目标工装角点的第二目标位置信息。可以理解的是,目标工装角点的数量满足标定所需的数量,比如,目标工装角点的数量大于等于3。
还可以从已获得的第一位置信息所对应的工装角点中确定出目标工装角点,并将目标工装角点的第一位置信息作为该目标工装角点的第二目标位信息。
其中,可以是每触碰一个工装角点后,就获得一个目标工装角点的第一目标位置信息及第二目标位置信息;也可以是在每触碰一个工装角点后,就获得一个目标工装角点的第一目标位置信息,在触碰完成后再获得各目标工装角点的第二目标位置信息;还可以使用其他的执行顺序,在此不进行具体限定。
步骤S500,根据各所述目标工装角点的第一目标位置信息及第二目标位置信息,计算得到手眼标定结果。
在获得多个目标工装角点各自的第一目标位置信息及第二目标信息后,可分析得到手眼标定结果,完成手眼标定。所述手眼标定结果中包括点云相机的相机坐标系与机器人坐标系之间的转换关系。
如此,可获得可靠的角点数据以获得精度高的标定结果,并且标定过程中只需要对3D工装拍摄一次,避免了传统手眼标定多次拍摄的繁琐过程,可减少标定时间,并且无需获得相机内参。
在本实施例中,可通过图4所示方式快速准确检测出工装角点。请参照图4,图4为图3中步骤S200包括的子步骤的流程示意图。在本实施例中,步骤S200可以包括子步骤S210~子步骤S220。
子步骤S210,对所述点云数据进行平面检测,得到平面检测结果。
在本实施例中,可直接对得到的点云数据进行平面检测及角点检测。也可先对点云数据进行降采样,然后去除离散点,之后再进行平面检测及角点检测,如此可减少数据处理量,并减小噪声。
在本实施例中,可通过如下方式去除离散点。针对降采样后的点云数据中的每个点云点,计算该点云点的法向量与对应的平均法向量之间的夹角,若夹角小于某个阈值,则保留该点云点,否则去掉该点。其中,1个点云点对应的平均法向量通过如下方式得到:计算该点云点周围十个点的法向量,进而计算出十个点的法向量的平均法向量,计算出的平均法向量即为该点云点对应的平均法向量。
在本实施例中,可采用任意平面检测方式对点云数据进行平面检测,以得到平面检测结果。其中,可选地,可采用常见的平面检测算法进行处理,并将处理结果直接作为平面检测结果;或者,对处理结果进行进一步处理,并将进一步处理结果作为所述平面检测结果,具体可以结合实际需求确定。
为减少平面数量便于后续处理,同时提高检测出的角点的可靠性,可通过图5所示方式获得所述平面检测结果。请参照图5,图5为图4中子步骤S210包括的子步骤的流程示意图。在本实施例中,子步骤S210可以包括子步骤S211~子步骤S212。
子步骤S211,对所述点云数据进行平面检测,确定出多个初始平面及各所述初始平面对应的点云点数量。
在本实施例中,可采用平面检测算法对所述点云数据进行平面检测,从而得到多个平面的平面方程及各平面方程对应的点云点数量。可将平面检测算法检测出的平面作为初始平面。如此,可确定出多个初始平面及各所述初始平面对应的点云点数量。其中,一个初始平面对应的点云点数量表示所述点云数据中在该初始平面中的点云点的数量。
作为一种可能的实现方式,可采用基于3D霍夫变换的平面检测算法对点云数据进行平面检测。点云空间的平面可以由平面的法向量/>和距离系数/>定义,公式如下所示:
其中,为点云数据中属于该平面的点的坐标。如果定义向量n与z轴正方向的夹角为/>,向量n与x轴正方向的夹角为/>,则平面/>可以以角度表示:
由组成空间即3D霍夫空间。而基于3D霍夫空间的平面检测算法原理是通过对霍夫空间的/>三个坐标离散化,并遍历霍夫空间的离散坐标,霍夫空间中每个坐标点对应点云空间的一个平面,点云中满足平面方程的点的数量即为霍夫空间对应坐标处的投票数。
子步骤S212,根据各初始平面对应的点云点数量,选出部分初始平面以得到所述平面检测结果。
在利用平面检测算法完成检测后,可按照各初始平面对应的点数量,将确定出的初始平面中选出一部分初始平面作为第一平面。所述第一平面对应的点云点数量大于等于未被选出的初始平面对应的点云点数量。比如,在采用3D霍夫变换的平面检测算法的情况下,当遍历完霍夫空间后,可将投票数较多的坐标对应的平面作为点云数据中被检测到的平面,从而确定出第一平面。
可选地,可以预先设置一个数量阈值,可将各初始平面的点云点数量与该数量阈值进行比较,并将点云点数量大于该数量阈值的初始平面确定出第一平面。或者,可以将各初始平面的点云点数量按照由多到少的顺序进行排序,将排序结果中前一定数量(比如,100)个点云点数量对应的初始平面作为第一平面。
可选地,在选出第一平面,可直接将选出的第一平面作为所述平面检测结果中包括的平面。如此,可快速得到平面检测结果。
可选地,基于点云点数量选出的第一平面的数量还是比较多,为进一步减少后续的处理量及提高检测出的角点质量,还可以对选出的第一平面进行去重处理,并将经去重处理后的保留的第一平面作为第二平面。所述平面检测结果中可以包括第二平面,还可以包括各第二平面对应的点云点数量。
作为一种可能的实现方式,可通过图6所示的子步骤S2121~子步骤S2123进行去重处理。下面以对两个第一平面进行去重为例,对去重方式进行说明。
子步骤S2121,计算两个第一平面之间的第一距离,以及所述两个第一平面各自的法向量之间的夹角的角度。
子步骤S2122,若所述第一距离小于第一预设距离、且所述夹角的角度小于预设角度,则对所述两个第一平面分别进行连通域检测,得到连通域检测结果。
子步骤S2123,删除较小面积对应的第一平面。
可计算两个第一平面之间的第一距离以及所述两个第一平面各自的法向量之间的夹角的角度。其中,所述第一距离可以是两个平面的平面方程中的d值之差。然后,将计算出的第一距离与第一预设距离进行比较,以及将计算出的夹角的角度与预设角度进行比较。
若第一距离大于等于第一预设距离,则说明这两个第一平面距离较远,因此在针对这两个第一方面去重时,可保留这两个第一平面。同理,若夹角的角度大于等于预设角度,则说明这两个第一平面角度不相近,因此在针对这两个第一方面去重时,可保留这两个第一平面。因此,在针对这两个第一方面去重时,若第一距离大于等于第一预设距离、夹角的角度大于等于预设角度中的至少一种情况出现,则可将这两个第一平面均保留。
若第一距离小于第一预设距离且夹角的角度小于预设角度,则可以认为这两个第一平面实际上是一个平面,在此情况下,可对这两个第一平面分别进行连通域检测,得到连通域检测结果,连通域检测结果包括面积。可将这两个第一平面的面积进行比较,确定出其中的较小面积,然后将较小面积对应的第一平面删除,将较大面积对应的第一平面保留。
如此,则完成两个第一平面的去重处理。
在采用上述方式对确定出的第一平面进行去重处理时,可以将确定出的第一平面两两组队,进而基于子步骤S2121~子步骤S2123进行去重处理。比如,一共有100个第一平面,序号依次为1、2、…、100,可将第一平面1与后面的99个第一平面分别组成一组,然后利用上述子步骤S2121~子步骤S2123所述方式对各组进行去重处理,如此,完成第一轮去重处理。在完成第一轮去重处理后,若保留了第一平面2,则可以将第一平面2与后续的第一平面分别组成一组,并利用上述子步骤S2121~子步骤S2123所述方式对各组进行去重处理;在完成第一轮去重处理后,若删除了第一平面2,则可以将第一平面3与后续的第一平面分别组成一组,并利用上述子步骤S2121~子步骤S2123所述方式对各组进行去重处理;以此类推,直到一轮去重处理中的最小序号后不存在比该最小序号大的序号,比如,是需要将第一平面100与后面的第一平面分别组成一组时,由于第一平面100后面不存在平面,因此可确定对确定出的第一平面的去重处理完成。
子步骤S220,通过将互相垂直的三个平面的交点作为角点的方式,基于所述平面检测结果,进行工装角点检测,得到所述多个工装角点各自的第一位置信息。
在本实施例中,所述3D工装主要由立方体组成,即检测到点云平面按 包括三类互相垂直的平面,而将互相垂直的三个平面的交点即为角点。因此可以基于所述平面检测结果,通过将互相垂直的三个平面的交点作为角点的方式,进行工装角点检测,从而得到所述多个工装角点各自的第一位置信息。
可选地,作为一种可能的实现方式,可以将所述平面检测结果中的面划分为三类,然后以抽取的三个平面互相垂直为要求,从三类平面中分别抽取一个面,进而根据抽取的面计算出一个角点的坐标。依次类推,可获得多个角点的坐标,可将该多个角点的坐标作为所述多个工装角点的第一位置信息。
可选地,作为另一种可能的实现方式,可通过图7方式快速得到多个工装角点的第一位置信息。请参照图7,图7为图4中子步骤S220包括的子步骤的流程示意图。在本实施例中,子步骤S220可以包括子步骤S221~子步骤S224。
子步骤S221,从所述平面检测结果中确定出5个目标平面。
在本实施例中,所述5个目标平面中包括两个目标平面对及第五目标平面,所述目标平面对中包括两个平面。所述目标平面对中的两个平面平行,所述第五目标平面为水平面,所述第五目标平面与所述两个目标平面对中的平面均垂直。可按照上述要求从所述平面检测结果中确定出5个目标平面。
比如,所述5个目标平面包括:第一目标平面、第二目标平面、第三目标平面、第四目标平面及第五目标平面,其中,第一目标平面、第二目标平面为1个目标平面对,第一目标平面与第二目标平面平行;第三目标平面、第四目标平面为另一个目标平面对,第三目标平面与第四目标平面平行。所述第五目标平面与第一目标平面、第二目标平面、第三目标平面、第四目标平面均垂直。
为进一步提高计算出的角点坐标的准确性,还可以根据所述3D工装中的平面间隔情况确定出距离条件。在选出目标平面对中的平面时,可将满足该距离条件的平面选为目标平面。其中,所述距离条件中可以包括两种竖直平面距离,一种竖直平面距离中包括所述3D工装中该种竖直平面之间的平面间隔,比如,在如图1所示尺寸的3D工装中,一种竖直平面距离中包括:100mm、150mm。在从平面检测结果中选出该种类型的目标平面对时,可将平行、且距离接近100mm或150mm的两个竖直平面作为一个目标平面对。
作为一种可能的实现方式,为进一步提高计算出的角点位置的准确性,可通过图8所示方式选出满足要求且点云点数量较多的5个目标平面。请参照图8,图8为图7中子步骤S221包括的子步骤的流程示意图。在本实施例中,子步骤S221可以包括子步骤S2211~子步骤S2213。
子步骤S2211,对所述平面检测结果中的平面进行聚类,得到三种聚类结果。
在本实施例中,检测到的平面主要包含三类互相垂直的平面,可将聚类目标设置为三类,对所述平面检测结果中的平面进行聚类,从而得到三种聚类结果。其中,所述三种聚类结果包括第一聚类结果、第二聚类结果及第三聚类结果,所述第一聚类结果表示一种竖直平面,第二聚类结果表示另一种竖直平面,所述第三聚类结果表示水平面。在聚类之后,可根据距离、角度关系筛选出5个目标平面。
子步骤S2212,分别针对所述第一聚类结果及第二聚类结果,基于该聚类结果中各平面所包括的点云点数量,按照点云点数量由多到少的顺序,根据所述3D工装中与该聚类结果对应的距离条件,从该聚类结果中选出两个目标平面。
因为3D工装严格按照标准制作,因此每种竖直平面之间的间隔距离可确定,可根据该间隔距离在所述第一聚类结果及第二聚类结果中选择目标平面;并且,不同类的平面应该严格互相垂直,可基于上述因素选出5个目标平面。
在本实施例中,可针对所述第一聚类结果,将该第一聚类结果中点云点数量最多的1个平面作为1个初始目标平面,然后从该第一聚类结果剩余的平面中选出点云点数量最多、与已选出的初始目标平面平行、且距离满足所述3D工装中与该聚类结果对应的距离条件的平面作为另一个初始目标平面,并将这两个初始目标平面作为从所述第一聚类结果中选出的两个目标平面。其中,该聚类结果对应的距离条件中包括所述3D工装中的该种平面之间的距离。
若不能从所述第一类聚结果中选出所述另一个初始目标平面,则将第一聚类结果中点云点数量次多的1个平面作为1个初始目标平面,然后再次进行另一个初始目标平面的选择。以此类推,直到从所述第一聚类结果中选出两个目标平面。
也可以将所述第一聚类结果中的平面两两组队,将满足平行要求及距离要求的组对中的点云点数量之和最大的组队,作为从所述第一聚类结果中选出的目标平面对。其中,一个组队中两个平面各自的点云点数量的和值,即为上述点云点数量之和。
同理,可从所述第二聚类结果中选出另一个目标平面对。
子步骤S2213,按照点云点数量由多到少的顺序,将所述第三聚类结果中第一个与已选出的4个目标平面垂直的平面作为所述第五目标平面。
在选出4个目标平面之后,则从所述第三聚类结果中选出点云点数量最多、且与选出的4个目标平面垂直的平面作为第五目标平面。
比如,在图1所示尺寸的3D工装中,两种竖直平面对应的平面间隔距离均为50mm的倍数。可按照投票数从大到小的顺序,首先在两类竖直平面(即第一聚类结果及第二聚类结果)中选择距离为50mm的倍数且平行的两个平面,即基于点云点数量从每类竖直平面中选出两个满足要求的平面;然后,在水平面(即第三聚类结果)中选择与两组竖直平面角度最接近90度的平面。这样则选出5个目标平面。
子步骤S222,根据所述5个目标平面,获得多个第一理论角点的位置信息。
每两个竖直平面和一个水平平面可以求解出一个理论角点,三个平面互相两两垂直,因此5个目标平面可以计算出4个理论角点的位置信息。可将计算出的4个理论角点的位置信息作为得到的第一理论角点的位置信息。
子步骤S223,根据所述多个第一理论角点的位置信息、所述3D工装的立方体尺寸信息及立方体间隔信息,计算得到至少一个第二理论角点的位置信息。
在本实施例中,为避免4个第一理论角点不能满足后续计算的需求,还可以根据该4个第一理论角点的位置信息、所述3D工装的立方体尺寸信息及立方体间隔信息,计算得到至少一个第二理论角点的位置信息。其中,所述立方体尺寸信息用于描述立方体的长、宽、高,所述立方体间隔信息即为所述预设行距离及预设列距离。也即,3D工装的其他理论角点可以通过沿着检测到的任意两个理论角点的方向继续叠加相应工装距离的方式得到。如此,可快速获得多个理论角点在相机坐标系下的位置信息。
子步骤S224,根据所述多个第一理论角点及第二理论角点的位置信息,得到所述多个工装角点的第一位置信息。
在本实施例中,可对得到的多个第一理论角点的位置信息及得到的第二理论角点的位置信息进行汇总。可选地,可以直接将汇总结果作为所述多个工装角点的第一位置信息。
可选地,也可以通过图9所示基于理论角点的位置信息得到所述多个工装角点的第一位置信息。请参照图9,图9为图7中子步骤S224包括的子步骤的流程示意图。在本实施例中,子步骤S224可以包括子步骤S2241~子步骤S2242。
子步骤S2241,针对各所述第一理论角点及各第二理论角点,根据该理论角点的位置信息,从所述点云数据中,确定出该理论角点的最邻近点云点。
子步骤S2242,在所述理论角点与所述最邻近点云点之间的第二距离小于第二预设距离时,将所述最邻近点云点的位置信息作为一个所述工装角点的第一位置信息。
在本实施例中,在获得所有的理论角点后,可在点云数据中进行最邻近点云点查找。即,可将确定出的每一个第一理论角点及每一个第二理论角点作为一个理论角点,根据该理论角点的位置信息及所述点云数据中各点云点的位置信息,计算得到所述点云数据中各点云点与该理论角点的距离,并将其中最小距离对应的点云点作为该理论角点的最邻近点云点。
可将理论角点和该理论角点的最邻近点云点之间的距离作为第二距离。将该第二距离与第二预设距离进行比较。若第二距离大于等于第二预设距离,则该最邻近点云点不是点云中的工装角点。若第二距离小于所述第二预设距离,则该最邻近点云点是点云中的工装角点,可将该最邻近点云点的位置信息作为一个工装角点的第一位置信息。如此,才算检测到真正的点云角点。通过上述方式,则可以检测到点云数据中所有的工装焦点坐标,即得到多个工装角点的第一位置信息。
其中,所述第二预设距离可以结合实际需求设置,比如,设置为1mm或者10mm等。点云相机一般都没有拍全角点,若直接将最邻近点云点作为点云角点,误差比较大。通过将距离满足一定阈值的最邻近点云点作为点云角点的方式,则可以避免上述误差大的情况。
在本实施例中,通过上述标准距离的3D工装,可提高工装角点检测的精度,从而提高手眼标定数据的质量。并且,在通过平面检测算法对工装点云数据进行平面检测后,可依据工装面与面之间的距离关系和角度关系进行筛选,从而计算出工装的角点,从而有效提高工装角点检测的精度。
其中,若通过上述点云平面拟合的角点检测方式未检测到角点的情况下,可重新采集点云数据。可手动控制点云相机采集3D工装点云数据,点云中尽量包含工装中完整的平面。
在获得多个工装角点的第一位置之后,可手动控制机器人移动,将机器人末端工具尖端触碰工装角点,并保存此时末端坐标,可将保存的点坐标作为目标工装角点在机器人基坐标系下的第二目标位置信息。其中,所述目标工装角点即为被触碰的工装角点。重复多次上述处理,即可获得多个目标工装角点的第二目标位置信息。目标工装角点的数量可以大于等于3。
作为一种可能的实现方式,可将所述点云数据对应的点云图像在点云可视化界面中显示。用户可根据点云可视化界面,观察检测到的点云角点质量,进而选出校测较为精准的角点进行触碰。也即,用户基于所述点云数据对应的点云可视化界面呈现的角点质量,选择角点质量好的角点进行触碰。如此,可通过控制机器人触碰点云图像中较为清晰的角点,避免触碰点云图像中缺失的角点导致后续不方便计算。
可通过图10所示方式快速获得目标工装角点的第一目标位置信息。请参照图10,图10为图3中步骤S400包括的子步骤的流程示意图。在本实施例中,步骤S400可以包括子步骤S410~子步骤S420。
子步骤S410,将所述点云数据对应的点云可视化界面中被选择的点云点作为所述目标工装角点。
子步骤S420,从所述多个工装角点的第一位置信息中,获得所述目标工装角点的第一目标位置信息。
在本实施例中,用户还可以在点云可视化界面中,用鼠标近似点击目标工装角点在点云中的位置,从而指示目标工装角点。之后,则可以从已获得的所述多个工装角点的第一位置信息中,查找出该目标工装角点的第一位置信息,并将查找出的该第一目标位置信息作为该目标工装角点的第一目标位置信息。
可选地,为便于确定每个目标工装角点对应的第一目标位置及第二目标位置信息,用户可以在每触碰一个目标工装角点后,就在点云可视化界面中选择所触碰的工装角点。如此,可以在每控制触碰一个目标工装角点后,就保存该目标工装角点的第二目标位置信息,并获得该目标工装角点的第一目标位置信息。
至此,获得了两组位置信息:相机坐标系下的点云角点坐标和机器人基座标系下的工装角点坐标。可对上述两组数据进行分析,从而得到手眼标定结果。其中,可以通过3D刚性变换的方法对两组数据进行变换,得到两个坐标系之间的转换矩阵。
根据点云相机与机器人的关系,可以分为眼在手上模式、眼在手外模式。眼在手上表示所述点云相机位于所述机器人末端,眼在手外表示点云相机不位于所述机器人末端。可以采用任意方式确定当前是眼在手上模式还是眼在手外模式。
在当前为眼在手上模式时,可通过图11所示方式计算得到所述手眼标定结果。请参照图11,图11为图3中步骤S500包括的子步骤的流程示意图。在本实施例中,步骤S500可以包括子步骤S510~子步骤S520。
子步骤S510,根据所述机器人末端在触碰各目标工装角点时的第二位姿、在获得所述点云数据时的第一位姿,将各第二目标位置信息转换到所述第一位姿时的机器人工具坐标系下,得到第三目标位置信息。
在本实施例中,在为眼在手上模式的情况下,在采集所述点云数据时,可获得机械臂末端当时的位姿作为第一位姿;还可获得机器人末端在每次目标工装角点时的位置,并保存为第二位姿。其中,保存的第一位姿、第二位姿均位于机器人基坐标系下。
可针对各目标工装角点,可根据第一位姿及获得该目标工装角点的第二目标位置信息时的第二位姿,将该目标工装角点的第二目标位置信息转换到该第二位姿时的机器人工具坐标系(或称为末端坐标系)下,并将转换结果作为该目标工装角点的第三目标位置信息。
子步骤S520,根据各所述目标工装角点的第一目位置信息及第三目标位置信息,通过3D刚性变换,计算得到所述手眼标定结果。
可将各目标工装角点的第一目标信息作为一组数据,将各目标工装角点的第三目标位置作为另一组数据。可分别计算上述两组数据的质心,并对两组数据分别去中心化,使得两组坐标数据围绕原点分布。其中,去中心化指将每个角点的坐标减去质心坐标。接下来,程序计算两组数据的协方差矩阵,并对矩阵进行奇异值分解,得到旋转矩阵R。最后计算平移量T,使得两组坐标的质心对齐。如此,得到了两组坐标数据的旋转矩阵R和平移量T,即所需要的相机手眼转换矩阵、手眼标定结果。此时手眼标定结果中包括相机坐标系与机器人工具坐标系之间的转换关系。
在当前为眼在手外模式时,可根据各所述目标工装角点的第一目标位置信息及第二目标位置信息,通过3D刚性变换,计算得到所述手眼标定结果。此时手眼标定结果中包括相机坐标系与机器人基坐标系之间的转换关系。
本实施例提供的上述基于3D手眼标定工装的点云相机手眼标定方法,克服了基于配准的点云相机手眼标定方法对配准准确性的敏感性,并且由于无需多角度拍摄,因此显著降低了拍摄难度。同时,通过引入高精度的工装,提升了角点检测的精度,进一步提高点云相机手眼标定的精度。
该方法还可以避免现有手眼标定方法在标定过程中需要多次拍摄来拟合手眼矩阵的过程,只需要对工装进行一次拍摄并检测角点,即可计算手眼标定矩阵。这种方法操作步骤简单,不依赖于拍摄角度的选择,使得标定结果更加稳定。
另外,该方法在选点过程中结合可视化界面进行选择可靠角点,可以根据点云拍摄质量来合理选择参与计算的工装角点,选点范围和数量更加自由方便,这种机制有效改善了标定过程的可控性,提升标定数据的可靠性。
综合而言,本方案在手眼标定领域取得了显著的技术效果,不仅提高了点云相机的手眼标定精度,而且简化了操作流程,降低了手眼标定过程对机器人操作的复杂性,为高精度工业场景提供了更为准确和可靠的手眼标定方法。
通过上述描述可知,本实施例提供的手眼标定方法通过高精度的手眼标定工装提高角点检测精度,在该过程中利用工装的数据进行平面筛选,从而检测到更加精准的工装角点,显著提高手眼标定精度,适用于精度要求较高的工业焊接等领域。整个手眼标定流程只需要对工装拍摄一次,避免了传统手眼标定多次拍摄的繁琐过程,使得本实施例提供的标定方法能大幅度减少标定时间,在实际应用中更具有实用性。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种手眼标定装置200的实现方式,可选地,该手眼标定装置200可以采用上述图2所示的电子设备100的器件结构。进一步地,请参照图12,图12为本申请实施例提供的手眼标定装置200的方框示意图。需要说明的是,本实施例所提供的手眼标定装置200,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。在本实施例中,所述手眼标定装置200可以包括:数据获得模块210、检测模块220、位置信息获得模块230及计算模块240。
所述数据获得模块210,用于获得点云相机采集到的3D工装的点云数据。其中,所述3D工装中包括至少1个立方体。
所述检测模块220,用于对所述点云数据进行工装角点检测,得到多个工装角点各自在相机坐标系下的第一位置信息。其中,所述工装角点为立方体角点。
所述位置信息获得模块230,用于通过使机器人末端触碰工装角点的方式,获得多个目标工装角点各自在机器人基坐标系下的第二目标位置信息。
所述位置信息获得模块230,还用于从所述多个工装角点的第一位置信息中获得所述多个目标工装角点各自的第一目标位置信息。
所述计算模块240,用于根据各所述目标工装角点的第一目标位置信息及第二目标位置信息,计算得到手眼标定结果。
可选地,上述模块可以软件或固件(Firmware)的形式存储于图2所示的存储器110中或固化于电子设备100的操作系统(Operating System,OS)中,并可由图2中的处理器120执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器110中。
本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的眼标定方法。
综上所述,本申请实施例提供一种手眼标定方法、装置、电子设备及可读存储介质,首先获得通过点云相机得到的包括至少1个立方体的3D工装的点云数据,进而通过对该点云数据进行工装角点检测,从而得到多个工装角点各自在点云相机的相机坐标系下的第一位置信息,上述工装角点为3D工装中的立方体的角点;之后,可通过使机器人末端触碰3D工装中的工装角点的方式,获得被触碰的多个目标工装角点各自在机器人基坐标系下的第二目标位置信息,还可以从已获得的多个工装角点的第一位置信息中确定出各目标工装角点的第一位置信息作为各目标工装角点的第一目标位置信息;最后,根据各目标工装角点的第一目标位置信息及第二目标位置信息,计算得到手眼标定结果。如此,可获得可靠的角点数据以获得精度高的标定结果,并且标定过程中只需要对3D工装拍摄一次,避免了传统手眼标定多次拍摄的繁琐过程,可减少标定时间,并且无需获得相机内参。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的可选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种手眼标定方法,其特征在于,所述方法包括:
获得点云相机采集到的3D工装的点云数据,其中,所述3D工装中包括至少1个立方体;
对所述点云数据进行工装角点检测,得到多个工装角点各自在相机坐标系下的第一位置信息,其中,所述工装角点为立方体角点;
通过使机器人末端触碰工装角点的方式,获得多个目标工装角点各自在机器人基坐标系下的第二目标位置信息;
从所述多个工装角点的第一位置信息中获得所述多个目标工装角点各自的第一目标位置信息;
根据各所述目标工装角点的第一目标位置信息及第二目标位置信息,计算得到手眼标定结果。
2.根据权利要求1所述的方法,其特征在于,所述3D工装中包括多个相同立方体,所述多个相同立方体根据预设行距离和/或预设列距离设置在一平面板上,所述对所述点云数据进行工装角点检测,得到多个工装角点各自在相机坐标系下的第一位置信息,包括:
对所述点云数据进行平面检测,得到平面检测结果;
通过将互相垂直的三个平面的交点作为角点的方式,基于所述平面检测结果,进行工装角点检测,得到所述多个工装角点各自的第一位置信息。
3.根据权利要求2所述的方法,其特征在于,所述通过将互相垂直的三个平面的交点作为角点的方式,基于所述平面检测结果,进行工装角点检测,得到所述多个工装角点各自的第一位置信息,包括:
从所述平面检测结果中确定出5个目标平面,其中,所述5个目标平面中包括两个目标平面对及第五目标平面,所述目标平面对中包括两个平面,所述目标平面对中的两个平面平行且距离满足基于所述3D工装中的平面间隔情况确定的距离条件,所述第五目标平面与所述两个目标平面对中的平面均垂直,所述第五目标平面为水平面;
根据所述5个目标平面,获得多个第一理论角点的位置信息;
根据所述多个第一理论角点的位置信息、所述3D工装的立方体尺寸信息及立方体间隔信息,计算得到至少一个第二理论角点的位置信息;
根据所述多个第一理论角点及第二理论角点的位置信息,得到所述多个工装角点的第一位置信息。
4.根据权利要求3所述的方法,其特征在于,所述从所述平面检测结果中确定出5个目标平面,包括:
对所述平面检测结果中的平面进行聚类,得到三种聚类结果,其中,所述三种聚类结果包括第一聚类结果、第二聚类结果及第三聚类结果;
分别针对所述第一聚类结果及第二聚类结果,基于该聚类结果中各平面所包括的点云点数量,按照点云点数量由多到少的顺序,根据所述3D工装中与该聚类结果对应的距离条件,从该聚类结果中选出两个目标平面;
按照点云点数量由多到少的顺序,将所述第三聚类结果中第一个与已选出的4个目标平面垂直的平面作为所述第五目标平面。
5.根据权利要求3所述的方法,其特征在于,所述根据所述多个第一理论角点及第二理论角点的位置信息,得到所述多个工装角点的第一位置信息,包括:
针对各所述第一理论角点及各第二理论角点,根据该理论角点的位置信息,从所述点云数据中,确定出该理论角点的最邻近点云点;
在所述理论角点与所述最邻近点云点之间的第二距离小于第二预设距离时,将所述最邻近点云点的位置信息作为一个所述工装角点的第一位置信息。
6.根据权利要求2所述的方法,其特征在于,所述对所述点云数据进行平面检测,得到平面检测结果,包括:
对所述点云数据进行平面检测,确定出多个初始平面及各所述初始平面对应的点云点数量,其中,一个初始平面对应的点云点数量表示所述点云数据中在该初始平面中的点云点的数量;
根据各初始平面对应的点云点数量,选出部分初始平面作为第一平面,其中,所述第一平面对应的点云点数量大于等于未被选出的初始平面对应的点云点数量;
对选出的所述第一平面进行去重处理,得到所述平面检测结果。
7.根据权利要求6所述的方法,其特征在于,所述对选出的所述第一平面进行去重处理,包括:
计算两个第一平面之间的第一距离,以及所述两个第一平面各自的法向量之间的夹角的角度;
若所述第一距离小于第一预设距离、且所述夹角的角度小于预设角度,则对所述两个第一平面分别进行连通域检测,得到连通域检测结果,其中,所述连通域检测结果中包括面积;
删除较小面积对应的第一平面。
8.根据权利要求1所述的方法,其特征在于,所述从所述多个工装角点的第一位置信息中获得所述多个目标工装角点各自的第一目标位置信息,包括:
将所述点云数据对应的点云可视化界面中被选择的点云点作为所述目标工装角点,其中,在使所述机器人末端触碰工装角点时,被触碰的工装角点由用户基于所述点云可视化界面呈现的角点质量确定;
从所述多个工装角点的第一位置信息中,获得所述目标工装角点的第一目标位置信息。
9.根据权利要求1-8中任意一项所述的方法,其特征在于,所述3D工装包括多个相同的立方体,所述立方体为正方体,相邻立方体之间的距离等于所述立方体的边长;和/或,
在所述点云相机位于所述机器人末端时,所述根据各所述目标工装角点的第一目标位置信息及第二目标位置信息,计算得到手眼标定结果,包括:
根据所述机器人末端在触碰各目标工装角点时的第二位姿、在获得所述点云数据时的第一位姿,将各第二目标位置信息转换到所述第一位姿时的机器人工具坐标系下,得到第三目标位置信息;
根据各所述目标工装角点的第一目位置信息及第三目标位置信息,通过3D刚性变换,计算得到所述手眼标定结果;
在所述点云相机不位于所述机器人末端时,所述根据各所述目标工装角点的第一目标位置信息及第二目标位置信息,计算得到手眼标定结果,包括:
根据各所述目标工装角点的第一目标位置信息及第二目标位置信息,通过3D刚性变换,计算得到所述手眼标定结果。
10.一种手眼标定装置,其特征在于,所述装置包括:
数据获得模块,用于获得点云相机采集到的3D工装的点云数据,其中,所述3D工装中包括至少1个立方体;
检测模块,用于对所述点云数据进行工装角点检测,得到多个工装角点各自在相机坐标系下的第一位置信息,其中,所述工装角点为立方体角点;
位置信息获得模块,用于通过使机器人末端触碰工装角点的方式,获得多个目标工装角点各自在机器人基坐标系下的第二目标位置信息;
所述位置信息获得模块,还用于从所述多个工装角点的第一位置信息中获得所述多个目标工装角点各自的第一目标位置信息;
计算模块,用于根据各所述目标工装角点的第一目标位置信息及第二目标位置信息,计算得到手眼标定结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311685193.4A CN117381798B (zh) | 2023-12-11 | 2023-12-11 | 手眼标定方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311685193.4A CN117381798B (zh) | 2023-12-11 | 2023-12-11 | 手眼标定方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117381798A true CN117381798A (zh) | 2024-01-12 |
CN117381798B CN117381798B (zh) | 2024-04-12 |
Family
ID=89470620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311685193.4A Active CN117381798B (zh) | 2023-12-11 | 2023-12-11 | 手眼标定方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117381798B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170087996A (ko) * | 2016-01-21 | 2017-08-01 | 현대로보틱스주식회사 | 로봇의 캘리브레이션 장치 및 그 방법 |
CN112819903A (zh) * | 2021-03-02 | 2021-05-18 | 福州视驰科技有限公司 | 基于l型标定板的相机和激光雷达联合标定的方法 |
CN114549651A (zh) * | 2021-12-03 | 2022-05-27 | 聚好看科技股份有限公司 | 一种基于多面体几何约束的多个3d相机标定方法和设备 |
CN115063489A (zh) * | 2022-05-18 | 2022-09-16 | 北京高仙智能科技发展有限公司 | 一种外参标定方法、装置、设备和存储介质 |
CN115351482A (zh) * | 2022-08-31 | 2022-11-18 | 深圳前海瑞集科技有限公司 | 焊接机器人的控制方法、装置、焊接机器人及存储介质 |
CN115519547A (zh) * | 2022-10-25 | 2022-12-27 | 江苏图知天下科技有限公司 | 一种钢筋绑扎手眼标定方法及系统 |
-
2023
- 2023-12-11 CN CN202311685193.4A patent/CN117381798B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170087996A (ko) * | 2016-01-21 | 2017-08-01 | 현대로보틱스주식회사 | 로봇의 캘리브레이션 장치 및 그 방법 |
CN112819903A (zh) * | 2021-03-02 | 2021-05-18 | 福州视驰科技有限公司 | 基于l型标定板的相机和激光雷达联合标定的方法 |
CN114549651A (zh) * | 2021-12-03 | 2022-05-27 | 聚好看科技股份有限公司 | 一种基于多面体几何约束的多个3d相机标定方法和设备 |
CN115063489A (zh) * | 2022-05-18 | 2022-09-16 | 北京高仙智能科技发展有限公司 | 一种外参标定方法、装置、设备和存储介质 |
CN115351482A (zh) * | 2022-08-31 | 2022-11-18 | 深圳前海瑞集科技有限公司 | 焊接机器人的控制方法、装置、焊接机器人及存储介质 |
CN115519547A (zh) * | 2022-10-25 | 2022-12-27 | 江苏图知天下科技有限公司 | 一种钢筋绑扎手眼标定方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117381798B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110842901B (zh) | 基于一种新型三维标定块的机器人手眼标定方法与装置 | |
CN110599541A (zh) | 一种对多传感器进行标定的方法、装置和存储介质 | |
CN111445531B (zh) | 一种多目相机导航方法、装置、设备及存储介质 | |
CN110470333B (zh) | 传感器参数的标定方法及装置、存储介质和电子装置 | |
CN110930442B (zh) | 基于标定块的机器人手眼标定中关键点位置确定方法与装置 | |
CN111627072A (zh) | 一种对多传感器进行标定的方法、装置和存储介质 | |
CN111931643A (zh) | 一种目标检测方法、装置、电子设备及存储介质 | |
CN110579764A (zh) | 深度相机和毫米波雷达的配准方法、装置、电子设备 | |
EP3975116B1 (en) | Detecting displacements and/or defects in a point cloud using cluster-based cloud-to-cloud comparison | |
CN109952176A (zh) | 一种机器人标定方法、系统、机器人及存储介质 | |
Ahmadabadian et al. | Stereo‐imaging network design for precise and dense 3D reconstruction | |
CN114399528A (zh) | 基于二维图像的三维空间运动目标跟踪方法及相关装置 | |
CN117381798B (zh) | 手眼标定方法及装置 | |
WO2022088613A1 (zh) | 一种机器人的定位方法及装置、设备、存储介质 | |
Devy et al. | Camera calibration from multiple views of a 2D object, using a global nonlinear minimization method | |
CN117611663A (zh) | 一种目标物体的位姿估计方法、计算机可读存储介质 | |
Liu et al. | Outdoor camera calibration method for a GPS & camera based surveillance system | |
Al-Temeemy et al. | Chromatic methodology for laser detection and ranging (LADAR) image description | |
Grundmann et al. | A gaussian measurement model for local interest point based 6 dof pose estimation | |
CN115393381A (zh) | 一种直线度的检测方法、装置、计算机设备及存储介质 | |
Hou et al. | High-precision visual imaging model and calibration method for multi-depth-of-field targets | |
CN111223139B (zh) | 目标定位方法及终端设备 | |
CN110909569B (zh) | 路况信息识别方法及终端设备 | |
Alhwarin | Fast and robust image feature matching methods for computer vision applications | |
Elgazzar et al. | Active range sensing for indoor environment modeling |
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 |