haclon固定相机位标定

  1. 什么是标定?
    工业应用中相机拍到一个mark点的坐标为C1(Cx,Cy),C1点对应的龙门架/机械手等执行端对应的坐标是多少?
    标定就是解决这个问题,如相机拍到一个点坐标C1(Cx,Cy),通过标定公式的计算得到点R1(Rx,Ry),R1就是龙门架/机械手坐标系的真实点位
    C1与R1之间存在一种固定的关系,求解这个关系的过程叫做标定
  2. 为什么是9点标定?
    C1与R1之间的关系只有四种平移、缩放、旋转、错切
    矩阵中有对四种关系的公式如下:
    平移矩阵公式 image.png
    缩放矩阵公式 image.png
    旋转矩阵公式 image.png
    错切矩阵公式image.png
    上面四种矩阵相乘合成一个矩阵就是仿射变换矩阵 image.png
    最后一个矩阵是根据前4个矩阵相乘得到,故为得到最终的放射变换矩阵,需要知道 Tx,Ty,Sx,Sy,θ,Theta这6个参数。为得到6个参数至少需要6个不同等式,而每个点位包涵(x,y)坐标,所以每个点位可以产生2个不同等式。
    故此我们得出结论最少3个点我们就可以推到出最终的放射变换矩阵。
    那为什么是9点标定呢?答案是为了提高精度,通过9个点我们可以有N种组合算出结果,基于这些结果我们求类似于平均值的东西提高精度
    那为什么不是10个,11个或更多点呢?答案是9个点的计算已经基本满足大家对精度的要求了,如π=3.1415926已经满足计算精度了,就没必要再把π计算到小数点后100位了
  3. 怎么实现9点标定呢?
    拿到9个相机点位[C1,C2…C9],同时拿到这9个点对应的机械手或龙门架真实坐标[R1,R2…R9]
    把上面数据套入halcon的vector_to_hom_mat2d算子,就可以得到放射变换矩阵了
*像素坐标
Row1:=[1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6]
Column1:=[1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3]*机械坐标
Row2:=[50,51.999,54.999,56.999,59.999,62.996,-4.999,-3,0,1.999,4.999,7.995,-59.998,-57.001,-55.001,-52.001,-49.003,-45.005]
Column2:=[-93.3,-47.299,0.002,45.499,91.498,135.493,-92.301,-44.3,0,46.999,91.497,135.494,-90.297,-44.297,1.003,46.999,91.497,134.494]*求解放射变换矩阵
vector_to_hom_mat2d (Row1, Column1, Row2, Column2, HomMat2D)*保存变换矩阵到HomMat2D.mat中
serialize_hom_mat2d (HomMat2D, SerializedItemHandle)
open_file ('HomMat2D.mat', 'output_binary', FileHandle) 
fwrite_serialized_item (FileHandle, SerializedItemHandle) 
close_file (FileHandle)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 传统的9点标定工具怎么做?
    求解9点工具的难点在于怎么得到相机拍照点C1对应的真实坐标R1?
    传统的作法是在机械手或龙门架的执行端下挂一个针尖。让龙门架/机械手到达标定板的点位1使针尖与点位1中心重合,记录真实位置,同时通过拍照得出点位1的相机坐标
  2. 还有没有更方便的9点标定工具?其原理是什么?
    有,其核心原理是取消针尖,通过旋转180度方式求解出相机坐标点C1
    精度更高的方式:可以旋转任意角度得到5个点,拟合椭圆,然后根据椭圆的圆度判断这个点是否ok
    如机械手在物理点位R1(Rx,Ry)拍照的到此mark点对应的相机坐标C1(Cx1,Cy1),然后让机械手旋转180度再次拍照的到mark点对应相机坐标C2(Cx2,Cy2)。那么物理点R1(Rx,Ry)对应的相机的点位未C1,C2的中心点。 因为物料点围绕自己旋转真实点位并未发生变化。
    通过这种方法就可以实现自动化的9点标定工具
    另外评估一个标定结果的精度,可以通过放一块标定板,用不同的位置来拍照定位他;理论上理论上标定板没有动,得到的位置点的误差只有标定误差

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/71005.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/71005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

# 代码写作风格:优雅编程的艺术

在编程的世界里,代码不仅仅是实现功能的工具,更是一种表达思想和艺术的方式。良好的代码写作风格不仅能够提高代码的可读性和可维护性,还能让其他开发者更容易理解和协作。本文将探讨代码写作风格的重要性以及如何培养优雅的编程风格。 ## 一…

【通俗讲解电子电路】——从零开始理解生活中的电路(二)

电路分析:看懂简单的“电路图” ——从“路线图”到“工具箱”,掌握电路的底层逻辑 1. 欧姆定律:电的“交通规则” 公式解析:V I R 电压(V):推动电流的动力(如电池电压&#xff…

Linux 第三次脚本作业

源码编译安装httpd 2.4,提供系统服务管理脚本并测试(建议两种方法实现) 一、第一种方法 1、把 httpd-2.4.63.tar.gz 这个安装包上传到你的试验机上 2、 安装编译工具 (俺之前已经装好了) 3、解压httpd包 4、解压后的httpd包的文…

IDEA-插件开发踩坑记录-第六坑-UAST依赖问题

背景 简要说明: UAST – Unified Abstract Syntax Tree UAST (Unified Abstract Syntax Tree) is an abstraction layer on the PSI of different programming languages targeting the JVM (Java Virtual Machine). It provides a unified API for working with co…

小米火龙CPU和其他几代温度太高的CPU是由谁代工的

小米火龙CPU”并非小米自研芯片,而是指搭载在小米手机上的部分高通骁龙处理器因发热问题被调侃为“火龙”。以下是几款被称为“火龙”的高通CPU及其代工情况: 骁龙810 骁龙810是高通历史上最著名的“火龙”之一,采用台积电20nm工艺代工。由于…

CSS3 圆角:实现与优化指南

CSS3 圆角:实现与优化指南 随着网页设计的发展,CSS3 圆角已经成为了现代网页设计中不可或缺的元素之一。本文将详细讲解 CSS3 圆角的基本用法、实现方式以及优化技巧,帮助您在网页设计中更好地运用这一功能。 一、CSS3 圆角基本用法 1.1 基…

windows服务器更新jar包脚本

【需求】Java每次发布新的版本都需要先kill掉原来的服务,然后再启动新的包 有了这个脚本只需要把包替换掉,服务会自动kill 以6001 为例 完整的脚本如下 echo off REM 检查端口 6001 是否被占用 netstat -ano | findstr :6001 > nul IF %ERRORLE…

视频推拉流EasyDSS点播平台云端录像播放异常问题的排查与解决

EasyDSS视频直播点播平台是一个功能全面的系统,提供视频转码、点播、直播、视频推拉流以及H.265视频播放等一站式服务。该平台与RTMP高清摄像头配合使用,能够接收无人机设备的实时视频流,实现无人机视频推流直播和巡检等多种应用。 最近&…

SpringBoot新闻推荐系统设计与实现

随着信息时代的快速发展,新闻推荐系统成为用户获取个性化内容的重要工具。本文将介绍一个幽络源的基于SpringBoot开发的新闻推荐系统,该系统功能全面,操作简便,能够满足管理员和用户的多种需求。 管理员模块 管理员模块为系统管…

【系统稳定性】1.11 QVM稳定性问题分析(一)

目录 写在前面 一,qvm进程异常 1.1 进程崩溃(Coredump) 1.2 进程卡死 1.3 进程重启 二,qvm进程异常分析过程 写在前面 在QVM(Quantum Virtual Machine)作为HOST QNX的Guest,同样会遇到重启、Watchdog(看门狗)等稳定性问题。 这里我们把qvm的异常归类为两类问题…

一次现网问题定位-线程池设置不当,导致流量上去后接口变慢

背景 公司大促活动流量上升,突然一线用户反馈发消息特别慢,运维已经初步通过监控发现B服务接口大量超时,调用链如下图。 发消息接口以前只经过A服务,后面为了防止客服骂人(我们是客服系统),接…

【JavaWeb13】了解ES6的核心特性,对于提高JavaScript编程效率有哪些潜在影响?

文章目录 🌍一. ES6 新特性❄️1. ES6 基本介绍❄️2. 基本使用2.1 let 声明变量2.2 const 声明常量/只读变量2.3 解构赋值2.4 模板字符串2.5 对象拓展运算符2.6 箭头函数 🌍二. Promise❄️1. 基本使用❄️2. 如何解决回调地狱问题2.1回调地狱问题2.2 使…

《几何原本》命题I.2

《几何原本》命题I.2 从一个给定的点可以引一条线段等于已知的线段。 设 A A A 为给定点, B C BC BC 为给定线段 连接 A B AB AB,作等边 △ A B D \triangle ABD △ABD 以 B B B 为圆心, B C BC BC 为半径作小圆 延长 D B DB DB 交小圆…

java数据结构_Map和Set_9.1

1. 搜索树 1.1 概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有的结点都小于根结点的值若它的右子树不为空,则右子树上所有的结点都大于根结点的值…

Rust Async 并发编程:处理任意数量的 Future 与 Stream

1. Streams:异步数据流 1.1 Streams 与 Iterator 的异同 Rust 的 Iterator 是同步的,通过 next() 方法逐个获取数据。而 Stream 是 async 版本的 Iterator,它使用 next().await 来获取数据项。 示例:将 Iterator 转换为 Stream…

蓝桥杯 路径之谜

路径之谜 题目描述 小明冒充 XX 星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是 nnnn 个方格。如下图所示。 按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能斜着走…

3-5 WPS JS宏 工作表的移动与复制学习笔记

************************************************************************************************************** 点击进入 -我要自学网-国内领先的专业视频教程学习网站 *******************************************************************************************…

聊聊Java的SPI机制

个人自建博客地址 什么是SPI呢? SPI全称Service Provider Interface,翻译过来就是服务提供者接口。调用方提供接口声明,服务提供方对接口进行实现,提供服务的一种机制,服务提供方往往是第三方或者是外部扩展。 下面…

langchain4j+local-ai小试牛刀

序 本文主要研究一下如何本地运行local-ai并通过langchain4j集成调用。 步骤 curl安装 curl https://localai.io/install.sh | sh% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed 100 21509 …

什么是“零日漏洞”(Zero-Day Vulnerability)?为何这类攻击被视为高风险威胁?

正文 零日漏洞(Zero-Day Vulnerability) 是指软件、硬件或系统中存在的、尚未被开发者发现或修复的安全漏洞。攻击者在开发者意识到漏洞存在之前(即“零日”内)利用该漏洞发起攻击,因此得名。这类漏洞的“零日”特性使…