当前位置: 首页 > article >正文

手眼标定:九点标定、十二点标定、OpenCV 手眼标定

因为一直使用6轴协作机器人,且主要应用是三维视觉,平常的手眼标定基本都是基于OpenCV来计算的,听说有九点标定和十二点标定,顺便了解下。

目录

  • 1.九点标定
    • 1.1 基本原理
    • 1.2 关于最小二乘法
    • 1.3 具体示例
  • 2.十二点标定
  • 3.OpenCV 手眼标定
  • 4.九点标定与 OpenCV 手眼标定的区别

1.九点标定

1.1 基本原理

九点标定的数学原理主要涉及通过已知的标定板上的九个特定点,计算相机坐标系与机器人坐标系之间的变换关系。具体步骤如下:

  • 1.坐标系描述:
    机器人坐标系:由机器人臂的末端执行器(例如机械臂或抓取工具)所定义的坐标系。
    相机坐标系:由相机的传感器和视场所定义的坐标系。
    标定板坐标系:由标定板上的九个已知特征点所定义的坐标系。

  • 2.变换矩阵:
    在九点标定中,我们希望通过机器人坐标系中的已知位置点(标定板在机器人坐标系中的位置)与相机坐标系中的观测点(标定板的图像特征点)之间的关系来求解变换矩阵。该变换矩阵包括旋转矩阵(R)和平移向量(T)。
    对于每个标定板的姿态,机器人运动到不同的配置点(例如不同的角度和位置),同时采集图像。每个图像中的特征点位置提供了一个映射关系。
    通过一系列最小二乘法求解这些位置关系,可以得到相机与机器人之间的空间变换关系。

  • 3.数学模型:
    假设相机和机器人坐标系之间的关系是一个刚性变换,通常由以下公式表示:
    在这里插入图片描述

  • 4.优化与求解:
    在九点标定中,通过多次测量机器人臂末端的不同姿态和相机所拍摄的图像,我们将多组数据输入到优化算法(通常是最小二乘法)中,从而求解出旋转矩阵和平移向量。
    这些参数最终构成了从机器人坐标系到相机坐标系的完整变换矩阵。

在这里插入图片描述

1.2 关于最小二乘法

在这里插入图片描述

1.3 具体示例

在这里插入图片描述

2.十二点标定

十二点标定是九点标定的扩展,核心思想一致,但使用更多标定点(12 个),优势包括:
在这里插入图片描述

3.OpenCV 手眼标定

关于这部分的原理和应用可以参考手眼标定系列的博文,这里不再阐述。
https://blog.csdn.net/qq_45445740/article/details/122170029

4.九点标定与 OpenCV 手眼标定的区别

在这里插入图片描述

  • 九点标定:聚焦二维平面变换,通过多点拟合简单模型,适用于低维度校准。
  • 十二点标定:增加点数提升复杂模型拟合能力,适用于精度要求更高或存在非线性因素的场景。
  • OpenCV 手眼标定:解决三维空间中机器人与摄像机的坐标转换,需多组位姿数据,数学模型更复杂,应用于机器人视觉等场景。

相关文章:

手眼标定:九点标定、十二点标定、OpenCV 手眼标定

因为一直使用6轴协作机器人,且主要应用是三维视觉,平常的手眼标定基本都是基于OpenCV来计算的,听说有九点标定和十二点标定,顺便了解下。 目录 1.九点标定1.1 基本原理1.2 关于最小二乘法1.3 具体示例 2.十二点标定3.OpenCV 手眼标…...

[总结]前端性能指标分析、性能监控与分析、Lighthouse性能评分分析

前端性能分析大全 前端性能优化 LightHouse性能评分 性能指标监控分析 浏览器加载资源的全过程性能指标分析 性能指标 在实现性能监控前,先了解Web Vitals涉及的常见的性能指标 Web Vitals 是由 Google 推出的网页用户体验衡量指标体系,旨在帮助开发者量…...

React-native的新架构

本文总结: 文章主要介绍了 React Native 的新架构,包括以下几个方面的内容:📱✨ 如何抹平 iOS 和 Android 样式差异,提升跨平台一致性; 分析了旧架构中存在的问题,如通信瓶颈、启动慢、维护复杂等&#x…...

【Android】MT6835 + MT6631 WiFi进入Meta模式出现WiFi_HQA_OpenAdapter failed

问题描述 WiFi进入Meta异常,出现WiFi_HQA_OpenAdapter failed [ 12.694501] mtk_wmtd_worker: [name:wlan_drv_gen4m_6835&][wlan][710]wlanProbeSuccessForLowLatency:(INIT INFO) LowLatency(ProbeOn) [ 12.699854] ccci_fsm: [name:ccci_md_all&][ccci1/fsm]M…...

Git 全平台安装指南:从 Linux 到 Windows 的详细教程

目录 一、Git 简介 二、Linux 系统安装指南 1、CentOS/RHEL 系统安装 2、Ubuntu/Debian 系统安装 3、Windows 系统安装 四、安装后配置(后面会详细讲解,现在了解即可) 五、视频教程参考 一、Git 简介 Git 是一个开源的分布式版本控制系…...

Tree 树形组件封装

整体思路 数据结构设计 使用递归的数据结构(TreeNode)表示树形数据每个节点包含id、name、可选的children数组和selected状态 状态管理 使用useState在组件内部维护树状态的副本通过deepCopyTreeData函数进行深拷贝,避免直接修改原始数据 核…...

AI书签管理工具开发全记录(五):后端服务搭建与API实现

文章目录 AI书签管理工具开发全记录(四):后端服务搭建与API实现前言 📝1. 后端框架选型 🛠️2. 项目结构优化 📁3. API路由设计 🧭分类管理书签管理 4. 数据模型定义 💾分类模型&…...

netTAP 100:在机器人技术中将 POWERLINK 转换为 EtherNet/IP

工业机器人服务专家 年轻的 More Robots 公司成立仅一年多,但其在许多应用领域的专业技术已受到广泛欢迎。这是因为More Robots提供 360 度全方位服务,包括从高品质工业机器人和协作机器人到咨询和培训。这包括推荐适合特定任务或应用的机器人&#xff0…...

多模态大语言模型arxiv论文略读(九十八)

Accelerating Pre-training of Multimodal LLMs via Chain-of-Sight ➡️ 论文标题:Accelerating Pre-training of Multimodal LLMs via Chain-of-Sight ➡️ 论文作者:Ziyuan Huang, Kaixiang Ji, Biao Gong, Zhiwu Qing, Qinglong Zhang, Kecheng Zhe…...

EXCEL--累加,获取大于某个值的第一个数

一、函数 LET(data,A1:A5,cumSum,SCAN(0,data,LAMBDA(a,b,ab)),idx,MATCH(TRUE,cumSum>C1,0),INDEX(data,idx)) 二、函数拆解 1、LET函数:LET(name1, value1, [name2, value2, ...], calculation) name1, name2...:自定义的变量名(需以字…...

【vscode】切换英文字母大小写快捷键如何配置

按 ⌘(Command) Shift P 打开命令面板搜索 "Transform to Uppercase" 或 "Transform to Lowercase" 点击Transform to Uppercase 命令后的齿轮图标 进入设置页面 然后就可以进行配置了 比如我是mac电脑, 切换大写可以配置为 shift alt…...

vue笔记-路由

文章目录 createWebHistory的使用router-linkrouter-link颜色是黑色,正常应该是蓝色router-link 跳转了但是不展示 其他 vue这个题目还是太大,路由单独拆出来。 createWebHistory的使用 推荐在vue-router4中使用。 1、导入。 import { createRouter, c…...

本地部署 DeepSeek R1(最新)【从下载、安装、使用和调用一条龙服务】

文章目录 一、安装 Ollama1.1 下载1.2 安装 二、下载 DeepSeek 模型三、使用 DeepSeek3.1 在命令行环境中使用3.2 在第三方软件中使用 一、安装 Ollama 1.1 下载 官方网址:Ollama 官网下载很慢,甚至出现了下载完显示 无法下载,需要授权 目…...

域名解析怎么查询?有哪些域名解析查询方式?

在互联网的世界里,域名就像是我们日常生活中的门牌号,帮助我们快速定位到想要访问的网站。而域名解析则是将这个易记的域名转换为计算机能够识别的IP地址的关键过程。当我们想要了解一个网站的域名解析情况,或者排查网络问题时,掌…...

win主机如何结束正在执行的任务进程并重启

最近遇到一个问题,一个java入库程序经常在运行了几个小时之后消息无法入库,由于已经没有研发人员来维护这个程序了,故此只能每隔一段时间来重启这个程序以保证一直有消息入库。 但是谁也不能保证一直有人去看这个程序,并且晚上也不…...

maven中的maven-resources-plugin插件详解

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 一、插件定位与核心功能 maven-resources-plugin是Maven构建工具的核心插件之一,主要用于处理项目中的资源文件(如…...

ROS云课基础篇-01-Linux-250529

ROS云课基础篇收到了很多反馈,正面评价比例高,还有很多朋友反馈需要写更具体一点。 ROS云课基础篇极简复习-C、工具、导航、巡逻一次走完-CSDN博客 于是,有了这篇以及之后的案例,案例均已经测试过8年,但没有在博客公…...

通俗易懂解析:@ComponentScan 与 @MapperScan 的异同与用法

在 Spring 和 MyBatis 集成开发中,ComponentScan 和 MapperScan 是两个核心注解,但它们的用途和工作机制截然不同。本文将通过通俗的语言和示例代码,带您轻松掌握它们的区别和使用方法。 一、基础概念 ComponentScan:Spring 的“通…...

深入了解 C# 异步编程库 AsyncEx

在现代应用程序开发中,异步编程已经成为提升性能和响应能力的关键,尤其在处理网络请求、I/O 操作和其他耗时任务时,异步编程可以有效避免阻塞主线程,提升程序的响应速度和并发处理能力。C# 提供了内建的异步编程支持(通…...

NodeJS全栈开发面试题讲解——P1Node.js 基础与核心机制

✅ 1.1 Node.js 的事件循环原理?如何处理异步操作? 面试官您好,我理解事件循环是 Node.js 的异步非阻塞编程核心。 Node.js 构建在 V8 引擎与 libuv 库之上。虽然 Node.js 是单线程模型,但它通过事件循环(event loop&a…...

Vulhub靶场搭建(Ubuntu)

前言:Vulhub 是一个开源的漏洞靶场平台,全称是 Vulhub: Vulnerable Web Application Environments,主要用于学习和复现各类 Web 安全漏洞。它的核心特征是通过 Docker 环境快速搭建出带有特定漏洞的靶场系统,适合渗透测试学习者、…...

C++:参数传递方法(Parameter Passing Methods)

目录 1. 值传递(Pass by Value) 2. 地址传递(Pass by Address) 3. 引用传递(Pass by Reference) 数组作为函数参数(Array as Parameter) 数组作为函数返回值 什么是函数&#xff…...

大语言模型的推理能力

2025年,各种会推理的AI模型如雨后春笋般涌现,比如ChatGPT o1/o3/o4、DeepSeek r1、Gemini 2 Flash Thinking、Claude 3.7 Sonnet (Extended Thinking)。 对于工程上一些问题比如复杂的自然语言转sql,我们可能忍受模型的得到正确答案需要更多…...

基于BERT和GPT2的实现来理解Transformer的结构和原理

Transformer 核心就是编码器和解码器,简单理解:编码器就是特征提取,解码器就是特征还原。 Transformer 完整架构 Transformer最初是一个Encoder-Decoder架构,用于机器翻译任务: 输入序列 → [Encoder] → 编码表示…...

.net consul服务注册与发现

.NET中Consul服务注册与发现的技术实践 在微服务架构中,服务的注册与发现是至关重要的环节,它能帮助各个服务之间实现高效的通信和协作。Consul作为一款功能强大的工具,为我们提供了优秀的服务注册与发现解决方案。今天,我们就来…...

WifiEspNow库函数详解

WifiEspNow库 项目地址https://github.com/yoursunny/WifiEspNow WifiEspNow 是 ESP-NOW 的 Arduino 库,ESP-NOW 是乐鑫定义的无连接 WiFi 通信协议。 有关 ESP-NOW 工作原理及其限制的更多信息,请参阅 ESP-NOW 参考。 WifiEspNow是 ESP-IDF 中 ESP-N…...

rsync使用守护进程启动服务

rsync 本身通常使用 SSH(Secure Shell)协议来进行数据传输,因此它默认使用 SSH 的端口 22。如果使用 rsync 进行通过 SSH 的数据同步,它会通过端口 22 来建立连接。 然而,如果你使用 rsync 作为一个守护进程进行文件同步(即不通过 SSH),则可以配置它使用 TCP 端口 873…...

React 核心概念与生态系统

1. React 简介 React 是由 Facebook 开发并开源的一个用于构建用户界面的 JavaScript 库。它主要用于构建单页应用(SPA),其核心理念是组件化和声明式编程,即 ui render(data)。 2. 核心特点 2.1. 声明式编程 React 使用声明式…...

使用React Native开发新闻资讯类鸿蒙应用的准备工作

以下是一篇关于使用React Native开发新闻资讯类鸿蒙应用的准备工作指南,结合鸿蒙生态特性与React Native技术栈整合要点: ​​一、环境搭建与工具链配置​​ ​​基础依赖安装​​ ​​Node.js 18​​:需支持ES2020语法(如可选链操…...

node-sass 报错

背景:一些老项目使用"node-sass": “^4.14.1” ,node版本要求 14.x,高版本不兼容 解决方案如下: 方案一:替换安装sass (无须降级Node版本) 卸载node-sass npm uninstall node-sass安装sass(Dart…...