标定的分类(一)

article/2025/9/22 4:07:42

关于标定的分类及说明(一)

现在工业机器视觉和计算机视觉大量应用标定算法,但是对于初学者来说,存在概念模糊,理论理解错误的现状,因此,需要对标定进行梳理,防止大家在学习过程中混淆各种标定概念。话不多话,上干货!!!!

标定的分类

如果你是视觉工程师,一定会听说过标定这个词,有手眼标定,相机标定,九点标定等等。但是对于控制工程师来说,需要研究轴组和机器人,这时候他们理解的标定指的是机器人本体标定,用户坐标系标定等等。很多时候视觉算法工程师和控制算法工程师在讨论标定问题时,会陷入死胡同。
其实,无论什么标定,标定的基本原理是建立多个坐标系之间的转换关系,从而求解出需要的坐标系坐标,将空间内物体或者工件统一在一个坐标系下,便于后面的工作开展。接下来,我通过一个思维导图来说明:在这里插入图片描述
无论是视觉算法工程师还是控制算法工程师都会接触到的是手眼标定。手眼标定的实质是建立视觉像素坐标系与机器人或轴组基坐标系之间的关系。通过手眼标定,可以将工业相机看到的物体像素坐标转换到机器人坐标上,这样,机器人会根据转换后的坐标完成抓取等动作。在算法层面,AX=BA代表像素坐标系,通常指的是相机看到的像素坐标( Row,Column)B代表的是机器人基坐标系下的坐标(RobotsX,RobotsY)(当然,也可以自定义使用不同的坐标系显示坐标)。通过已知的像素坐标矩阵A和机器人坐标矩阵B,便可以求出X,接下来相机定位到的像素坐标乘以X矩阵,便可以得到机器人下的坐标,从而实现引导机器人抓取动作。值得注意的是,手眼标定不仅仅可以完成对平面物体的抓取,大量的机器人空间抓取工作还需要考虑位姿(位置和姿态)的变化。所以,3D视觉会求解出像素坐标下的物体三维位姿信息,也可以通过这个公式求解出机器人六自由度下的坐标值。很多论文中都提到了对X的解算方法,如最小二乘法,伪逆矩阵等等,其目的在于求取的X更加精确,这里网上论文和推导公式很多,不再赘述…

对于初学者而言,halcon提供的方法有vector_to_hom_mat2d,vector_to_hom_mat3d等等,opencv提供的方法有calibrateHandeye等。其本质都是对X的求解。在操作应用方面,根据相机和机械手的安装位置,分为眼在手上眼在手外两种方式。眼指的是工业相机,手便指的是机械手或者轴组。
在这里插入图片描述

手眼标定细分为九点标定十五点标定等。很多初学者会认为手眼标定就是九点标定,这是一个错误的概念。九点标定只是手眼标定的子概念,而且九点标定只能实现对平面物体的抓取和定位,无法做到三维空间的转换。九点标定操作上是机器人运动九次,同时记录同一个物体九次像素坐标和机器人坐标,便可以求解X,具体的操作方法大家可以搜索网上视频观看。其实,三个点便可以完成坐标系的转换,使用九点和十五点无非是增加参数,减少误差。九点标定可以用自己制作的标定板,方式灵活多样。通过上述概念,大家可以得知,手眼标定算法大量应用于机器人定位抓取场景。

相机标定不同于手眼标定,通常指的是相机畸变标定。在一个CCD相机中,存在像素坐标系,图像坐标系,世界坐标系等。由于光学成像的问题,相机存在枕型畸变和桶型畸变,相机的像素尺寸与实际物体尺寸并不是比例关系。而且相机的安装位置与实际的成像平面存在位姿偏差关系。通过相机标定可以将像素坐标下转化到世界坐标系,解算出相机的内参(相机本身的参数,如焦距,X,Y方向上的像元大小),外参(相机与实际平面之间的位姿关系)。在halcon中,提供了圆点标定板和蜂窝标定板两种,通过标定助手可以实现高精度标定,输出相机内外参。

在这里插入图片描述
在halcon中的标定助手及结果如下图,标定出需要的相机内参CameraParameters和相机外参CameraPose,再根据这两个参数将像素坐标转化为世界坐标image_points_to_world_plane,接下来便可以求解实际世界坐标系下两点距离,点线距离,两线夹脚等等…
在这里插入图片描述
在opencv中,使用棋盘格标定法进行相机标定,通过提取角点实现标定,具体标定原理和函数网上有大量资料,这里主要对初学者做梳理和区分,具体不再赘述…
在这里插入图片描述
无论是棋盘格还是圆点标定板,都是精密仪器加工出来的高精度标定板,标定板各圆点,棋盘格之间的距离精准到丝级,通过精密的标定板完成对相机畸变的矫正。标定板价格也从几十到几千元不等。其实,无论是棋盘格,还是圆点标定板,蜂窝标定板,都是通过计算角点,圆点之间的像素位置与标定板厂家提供的描述文件中世界物理尺寸等,求解出相机内外参数。得到精准的相机内外参数之后,便可以将像素坐标转化到实际的世界坐标,从而完成视觉测量等项目。因此,相机标定的应用场景主要在于视觉测量项目中,这一点和手眼标定是不一样的。

对于控制算法工程师而言,除手眼标定以外,还需要对机器人轴组或者机器人进行标定,一般不接触相机标定。首先是本体标定。机器人在安装好伺服电机,加工完成之后,设定的机器人末端的坐标不能简单看成各个连杆(大臂,小臂等)之间的运动学正解。因为设定的机器人硬件参数与加工后的机械参数存在误差。比如说,设定机器人或者轴组大臂长度是100mm,但加工好后是100.5mm,这样解算出的机器人运动学正解便存在误差,因此,需要对本体进行标定,弥补加工误差带来的影响。在操作使用上,使用激光跟踪仪,高精度视觉检测仪,拉线式标定仪器等。
在这里插入图片描述
机器人本体标定算法具体的有四部分:运动学建模,数据测量,参数辨识,误差补偿四步。这中间涉及到的算法有DH参数,机器人运动学等。对于生产机器人的厂家而言,出厂的机器人本体都要经过标定。一般使用机器人设备是不需要做本体标定的。


http://chatgpt.dhexx.cn/article/lGgeXmqV.shtml

相关文章

什么是标定?

标定这两个字在汽车行业里的工程师基本都听过,但是在其他行业里大部分人都不知道什么是标定,甚至都没有听说过标定。什么是标定?举一个常见的例子,家里买了电视,连接网络就可以看节目了,与其他任何环境影响…

JMS及其API介绍

Java Message Service是java ee的规范之一,可以用来发送异步消息,在某些场景下,可以作为不同系统,或者不同模块之间的集成方式。 可以类比为通过数据库来集成的方式,模块A完成逻辑以后,往数据库插…

Springboot 整合 JMS

ActiveMQ JMS 仅支持 Java 平台。 由于 JMS 是一套标准,所以 SpringBoot 整合 JMS 必然是整合 JMS 的某一个实现。 Apache ActiveMQ 是一个开源的消息中间件,完全支持 JMS 1.1 规范,支持多种编程语言( C、C、C#、Delphi、Erlang、AdobeFla…

1.JMS规范介绍

目录 1.什么是JMS规范 2.什么是MOM 3.MOM的特点 4.JMS和MOM的关联 5.JMS的体系结构 6.JMS常见基本概念 7.JMS 的事务性会话和非事务性会话 8.JMS消息的可靠性机制 1.什么是JMS规范 Java 消息服务(Java Message Service)是 java 平台中关于面向消息…

JMS 示例

JMS 开发示例。 使用weblogic8作为jms server。 1、在weblogic中配置JMS。 配置JMS connection factory 配置JMS File Store 配置JMS Server 配置JMS destination 2、创建JMS Sender package jms; import java.util.Hashtable; import javax.jms.JMSE

ActiveMQ详解一 —— JMS介绍

1. JMS概述 不同系统之间信息交换,有多种方式。 SUN公司提出了一种面向详细的中间件服务—— JMS,Java消息服务,是JavaEE的标准/规范之一。 JMS指出:消息的发送应该是异步的、非阻塞的。 也就是说,消息的发送者发送…

SpringBoot整合JMS

SpringBoot整合JMS 文章目录 SpringBoot整合JMS前言一、JMS、AMQP概念以及区别二、ActiveMQ安装三、SpringBoot整合ActiveMQ:队列模式实例1、创建demo项目2、添加依赖3、添加application配置4、添加配置文件ActiveMQConfig5、创建JMS组件文件6、发送消息控制器7、测…

JMS规范介绍

目录 1.什么是JMS规范 2.什么是MOM 3.MOM的特点 4.JMS和MOM的关联 5.JMS的体系结构 6.JMS常见基本概念 7.JMS 的事务性会话和非事务性会话 8.JMS消息的可靠性机制 1.什么是JMS规范 Java 消息服务(Java Message Service)是 java 平台中关于面向消息…

JMS规范

一、JMS经典模式详解 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM,Message oriented Middleware)的API,用于在两个应用程序之间&#xff0c…

微服务 —— 消息服务中间件 JMS

一、消息服务中间件 对于大多数应用来说,可采用消息服务中间件来提升系统异步通信,消息解耦问题。 消息的作用:异步处理、应用解耦、流量削峰。 异步消息中的两个概念:消息代理、目的地 当消息发送者发送消息,由消息…

JMS解析(二)——JMS简介

JMS解析(一)——JMS简介_踩踩踩从踩的博客-CSDN博客 前言 本篇文章会紧接着上篇文章未介绍完毕的JMS规范,继续消息接收、事务管理、持久化以及应用的介绍。 消息接收 消息接收分为队列接收和topic消息接收 对于队列的接收基本的consumer…

JMS(Java消息服务)(Activemq简单介绍)

是什么? JMS(java消息服务)是规范,它定义了一些规则,一些接口。具体实现由各种做这个产品的厂家或开源组织来实现。 为什么? 在JMS还没有诞生前,每个企业都会有自己的一套内部消息系统&#…

JMS解析(一)——JMS简介

消息中间件MQ及ActiveMQ介绍_踩踩踩从踩的博客-CSDN博客 前言 上篇文章对消息中间件做了个解析,以及ActiveMQ的安装和基本使用,做了个基本了解,因为如果不了JMS规范,一定是不学不好消息中间件和ActiveMQ,本篇文章会从JMS是什么&…

JMS基本概念

简介 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消…

JMS概述

** 一、什么是JMS ** JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行…

深入浅出JMS(一)——JMS简介

如果手机只能进行实时通话,没有留言和短信功能会怎么样?一个电话打过来,正好没有来得及接上,那么这个电话要传递的信息肯定就收不到了。为什么不能先将信息存下来,当用户需要查看信息的时候再去获得信息呢?伴随着这个疑惑,短息和留言应运而生,无论手机是否开机、是否未…

详解 ROI Align 的基本原理和实现细节

转载至http://blog.leanote.com/post/afanti.denggmail.com/b5f4f526490b 欢迎支持原作者。 ROI Align 是在Mask-RCNN这篇论文里提出的一种区域特征聚集方式, 很好地解决了ROI Pooling操作中两次量化造成的区域不匹配(mis-alignment)的问题。实验显示,在检测测任务…

眼睛ROI区域裁剪

为了用深度方法训练一个睁闭眼模型,这里不需要再提取特征,而是需要用到眼睛的原图,第一步就是把眼睛区域裁剪下来。 本文用的是opencv的检测库shape_predictor_68_face_landmarks.dat,得到68特征点后,根据特征点来裁剪…

目标检测Fast RCNN中的ROI pooling

目标检测的任务可以分为两步:选出所有可能存在物体的候选框、判断候选框中的物体是否为前景或者背景。 但是这可能会产生很多的候选区域,如果把它们都喂入CNN,计算量将特别大,这也是rcnn效率低的原因所在。rcnn对每个候选区域都进…

ROI Pooling原理及实现

目标检测architecture通常可以分为两个阶段: (1)region proposal:给定一张输入image找出objects可能存在的所有位置。这一阶段的输出应该是一系列object可能位置的bounding box。这些通常称之为region proposals或者 regions of …