关于手眼标定的误差计算

2023-05-16

  之前做的眼在手上的手眼标定,流程结束后,会得到相机坐标系到机械臂末端坐标系的变换关系T_cam2end。我一般直接量取机械臂末端到相机的直线距离来校对z轴方向的距离,但只是做个估算,并未进行精确测量。
  我认为手眼标定的误差计算流程:
  以眼在手上为例,标定结束后得到T_cam2end,再根据公式计算得到目标和机械臂基底的位姿关系,让相机识别到某一点,然后在机械臂末端加装一个锥形的尖端,通过计算得到的位姿输入到机械臂中,控制机械臂移动到目标上方,用尖端去戳目标,以此来计算精度。
  但有个疑问?这么做人工去量取的话,是怎么做到很精确如0.0几个毫米的数量级的,而且量取的只是x、y、z方向的误差,那rx、ry、rz该怎么测量呢?
PS:如有大佬知道望告知,非常感谢

思路:

  根据标准差的概念,使用样本标准差进行计算。
在这里插入图片描述
  我的做法:完成手眼标定后,得到T_cam2end,将目标图这里以Aruco码为例固定在一处,控制机械臂在不同的角度对目标图进行拍照,我拍了5张,根据下面的公式得到5组目标和机械臂基底之间的位姿关系,因为目标图固定不动,所以目标和机械臂基底之间的位姿关系为固定值,T_cam2end也是固定值,T_end2base和T_target2cam每次的值都不一样,根据样本标准差,计算位姿(X, Y, Z, RX, RY, RZ)的误差值。
在这里插入图片描述

代码

// 计算手眼标定的样本标准偏差
std::vector<double> stdev_err_res;
int num = stdev_err[0].size();
int len = stdev_err.size();
for (int i = 0; i < num; i++) {
    double mean = 0.0, sum = 0.0;
    for (int j = 0; j < len; j++) {
        sum += stdev_err[j][i];
    }
    mean = sum / len;

    double square_diff_sum = 0.0;
    for (int k = 0; k < len; k++) {
        square_diff_sum += std::pow(stdev_err[k][i] - mean, 2);
    }
    double variance;
    variance = (square_diff_sum / (len - 1));

    stdev_err_res.push_back(std::sqrt(variance));
}

总觉得这么计算的话,万一样本中有一个值偏差很大或者是错误的,不就增加了整体的误差,暂时还没想到好的方法。。。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于手眼标定的误差计算 的相关文章

  • PX4学习笔记(1-补)

    PX4学习笔记 xff08 1 xff09 中的1 6 安装PX4和gazebo9环境中有一条命令 sudo bash Tools setup ubuntu sh 处于对这个 sh文件的好奇 xff0c 并想分析一下内容 xff0c 于是将
  • 卡片电脑 鲁班猫ZeroW——入门笔记(1)

    由于树莓派价格过于昂贵 xff0c 且无人机又需要机载电脑 xff0c 因此一直在物色便宜好用的卡片电脑 无意中发现了野火的这款鲁班猫 xff0c 想着才260块钱 xff0c 于是买回来试试手 1 硬件结构 鲁班猫采用的是瑞芯微公司设计的
  • PX4学习笔记(2)

    1 PX4编译和仿真 1 1 第一次使用PX4 1 1 1 打开jMAVSim 找到PX4 Autopilot文件夹 xff08 2023 02 13 xff0c 新版本的PX4找不到Firmware了 xff0c 只有PX4 Autopi
  • 关于SKYDROID图传接收机无法在win10电脑上显示图像的问题分析

    因为此前图传接收机无法在win10电脑上显示图像 xff0c 多次尝试后 xff0c 我重新安装了WIN10系统 xff0c 发现禁用笔记本摄像头头 xff0c 在相机内能看到图像 xff0c 了 因此以为问题解决了 xff0c 继续安装其
  • PX4 ulg文件转换为csv(WPS或Excel打开)

    介绍 ulg文件为PX4的飞行日志文件 xff0c 可以通过python的pyulog库转换成scv格式 xff0c 用表格工具打开 下载pyulog 首先保证你的windows电脑内安装了python 3 win 43 R打开cmd 输入
  • Ubuntu18.04虚拟机MQTT服务器(1)——安装宝塔服务器面板与MQTT服务器

    1 虚拟机安装ubuntu18 04 使用VMware安装Ubuntu 18 04 64位系统 2 Ubuntu修改镜像源 在Software amp Update内修改镜像源为清华源 更新 3 安装ssh 输入以下命令 xff0c 安装远
  • ESP-01S烧录及使用,连接本地MQTT服务器

    网上的教程大多无法正常烧录与使用 xff0c 因此在这里进行总结 1 ESP 01S烧录 固件烧录建议使用专用的烧录器 xff0c 十分省心 本文讨论的是使用普通的CH340串口模块进行烧写 必须使用的工具 xff1a 杜邦线 CH340串
  • Qt学习笔记(2)——添加串口程序与调试

    1 串口调试程序总体布局 Qt版本大于5 1 1 1 在pro文件内添加serialport QT 43 61 serialport 1 2 在 h文件内添加库文件 include lt QtSerialPort gt 1 3 添加实例 h
  • AES CBC和CTR加解密实例

    AES xff08 Advanced Encryption Standard xff0c 高级加密标准 xff09 又叫Rijndael加密法 xff0c 用来替代DES算法 常见AES加密模式有ECB CBC CFB OFB和CTR等五种
  • 关于vuex使用常量替代 Mutation 事件类型的好处

    官方文档有说常量的好处 xff0c 但是的确没用过 xff0c 也不怎么懂 xff0c 就我目前有用的了解来说 在后面项目中使用了常量有如下好处 1 常量更容易避免程序出现错误 如果把一个值赋给程序中的一个常量 xff0c 而该常量已经有一
  • 多传感器融合及其应用

    后续会更新部分算法详细内容 多传感器融合及其应用 1 引言 现代雷达信息处理技术 现代雷达信息处理技术分为三个层次 xff1a 雷达信号处理与目标检测 但不雷达数据处理和多部雷达系统数据融合 有时也分别称为雷达信息一次处理 雷达信息二次处理
  • 《结构化编程》— LED灯为例

    你有过看很久以前项目代码看不太懂的情况吗 xff1f 你有过做一个项目就要从零重构代码的烦恼吗 xff1f 你有过那种遇到项目后无从入手编写的困扰吗 xff1f 诸君且看 xff0c 我是如何用一个LED灯代码去做结构化编程的 xff0c
  • 《FPGA学习》->点亮一颗LED灯

    x1f34e 与其担心未来 xff0c 不如现在好好努力 在这条路上 xff0c 只有奋斗才能给你安全感 你若努力 xff0c 全世界都会为你让路 大家刚开始接触硬件编程的话 xff0c 我想大多都是从点亮一颗LED灯开始 xff0c 学习
  • 《FPGA学习》->流水灯设计

    x1f34e 与其担心未来 xff0c 不如现在好好努力 在这条路上 xff0c 只有奋斗才能给你安全感 你若努力 xff0c 全世界都会为你让路 用verilog HDL语言设计一个FPGA的流水灯程序 xff0c 要求时序满足下图所示
  • 《FPGA学习》->多个按键控制LED灯

    x1f34e 与其担心未来 xff0c 不如现在好好努力 在这条路上 xff0c 只有奋斗才能给你安全感 你若努力 xff0c 全世界都会为你让路 本次项目任务 xff0c 利用开发板上的4个按键KEY1 xff0c KEY2 xff0c
  • 《FPGA学习》->呼吸灯

    x1f34e 与其担心未来 xff0c 不如现在好好努力 在这条路上 xff0c 只有奋斗才能给你安全感 你若努力 xff0c 全世界都会为你让路 呼吸灯 xff0c 简而言之就像人类呼吸一样 xff0c 有节奏的让LED灯从 xff1a
  • 《FPGA学习》->蜂鸣器播放

    x1f34e 与其担心未来 xff0c 不如现在好好努力 在这条路上 xff0c 只有奋斗才能给你安全感 你若努力 xff0c 全世界都会为你让路 蜂鸣器的发声原理由振动装置和谐振装置组成 xff0c 而蜂鸣器又分为无源他激型与有源自激型
  • 基于STM32的语音控制电机

    号外号外 单片机项目实战课程又更新了 炸弹 大家好 我是 朽木自雕i 一个闲暇时间用来敲敲代码 画画板子 焊焊电路 玩玩单片机 搞搞Linux 写写Blog记录成长的技术人er 很高兴再次见
  • ESP32单片机入门篇

    目录 一 ESP32单片机的基本概念 1 双核架构 2 Wi Fi和蓝牙功能 3 集成多种外设 4 支持多种操作系统 二 开发环境 1 Arduino IDE 2 ESP IDF 三 开发语言 四 注意事项 五 代码例程 xff08 1 x
  • 什么是死锁,产生死锁的原因及必要条件

    什么是死锁 xff1f 所谓死锁 xff0c 是指多个进程在运行过程中因争夺资源而造成的一种僵局 xff0c 当进程处于这种僵持状态时 xff0c 若无外力作用 xff0c 它们都将无法再向前推进 因此我们举个例子来描述 xff0c 如果此

随机推荐

  • ESP32红外控制舵机

    目录 一 ESP32红外解码 二 ESP32舵机控制 三 ESP32红外控制舵机 结语 ESP32作为一款功能强大的单片机 xff0c 常被应用于物联网 智能家居 智能硬件等领域 与其他单片机相比 xff0c ESP32具有更高的运行速度和
  • ESP32 OTA升级

    目录 一 ESP32 OTA升级原理 1 ESP32固件编译 2 固件的远程传输 二 基于ESP32HTTPUpdate库的OTA升级 1 硬件准备 2 软件实现 三 注意事项 1 升级文件大小限制 2 WiFi稳定性 3 固件版本号 结语
  • 基于ESP32的温湿度环境监测

    目录 一 传感器介绍 二 设计思路 三 电路连接 四 项目代码 五 注意事项 一 传感器介绍 SCH30 是一款温湿度一体化数字传感器 xff0c 采用CMOSens 技术 xff0c 提供出色的性能 可靠性和稳定性 它还具有超低能耗 xf
  • 小觅相机SDK安装与报错解决

    目录 安装小觅相机SDK1 下载SDK2 准备依赖3 编译代码出现问题 xff1a 报错 xff1a 原因 xff1a 解决方案 xff1a 4 编译安装ROS版本ROS的安装 5 配置 bashrc文件6 运行相机 最后顺利完成SDK安装
  • 基于51单片机和物联网的智能家居系统(ESP8266物联网模块)

    前言 该智能家居系统以 STC89C52单片机为控制核心 xff0c 结合 LCD1602 液晶显示屏 L298N电机驱动模块 光敏电阻 xff0c ESP8266WiFi模块 xff0c DS18B20温度计设计并实现了自动感光窗帘与居室
  • aarch64-linux-gnu-gcc交叉编译链工具

    aarch64 linux gnu gcc交叉编译工具链 安装编译可执行文件交叉编译 自己记录学习所用 安装 按下 CTRL 43 ALT 43 T打开控制台 xff0c 输入如下指令安装 span class token comment
  • CMakeLists.txt的创建和基本使用

    文章目录 1 简单介绍2 一个简单的例子3 将主函数及库函数一起编译4 带上外部库 学习记录所用 1 简单介绍 CMakeLists txt文件的编写比MakeFile文件的编写更加简单和容易理解 CMakeLists txt通过cmake
  • linux线程切换怎么实现

    Linux线程切换的实现涉及到操作系统的调度 和线程上下文 的切换 线程上下文包括程序计数器 xff08 PC xff09 和寄存器值 xff0c 以及线程的堆栈和堆栈指针等 操作系统通过调度器决定哪个线程将获得CPU时间片来执行 当一个线
  • PID实时无线调参

    今天实现了PID参数的实时无线整定 xff0c 记录一下历程 1 将CRC h CRC c usart2 c usart2 h等文件添加到STM32工程中 如下图 xff1a 2 其中 xff0c CRC h CRC c用于数据包的校验 x
  • 海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(一)

    最近在做一个项目 xff0c 涉及到工业相机 xff0c 需要对其进行二次开发 相机方面选择了海康威视 xff0c 网上关于海康威视工业相机SDK的开发资料很少 xff0c 官方文档里面虽然写的是支持C 43 43 开发的 xff0c 但其
  • FFmpeg源码分析:写音视频帧av_write_frame()

    FFmpeg在libavformat模块提供音视频的muxer封装与demuxer解封装 其中muxer封装文件包括avformat write header av write frame 和av write trailer 本文主要探讨a
  • 海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(二)

    本文接上次的博客海康威视工业相机SDK二次开发 xff08 VS 43 Opencv 43 QT 43 海康SDK 43 C 43 43 xff09 xff08 一 xff09 xff0c 上个博客中并未用到QT xff0c 本文介绍项目内
  • 单目相机标定(使用Matlab)

    内容 一 单目视觉成像原理1 理想情况下相机成像模型1 1 世界坐标系 gt 相机坐标系1 2 相机坐标系 gt 图像坐标系1 3 图像坐标系 gt 像素坐标系1 4 总结 xff1a 世界坐标系 gt 像素坐标系 二 考虑畸变情况下相机成
  • 三菱PLC与上位机进行通讯

    三菱PLC与上位机串口通信 一 三菱Fx系列PLC编程口通讯协议地址算法1 DEVICE READ xff08 读出软设备状态值 xff09 2 DEVICE WRITE xff08 向PLC 软设备写入值 xff09 3 位设备强制置位
  • 关于相机的一些参数计算(靶面、视野等)

    1 靶面尺寸和芯片尺寸 比如我使用的是上面这个相机 xff0c 一直不懂1 1 8 39 是什么意思 span class token number 1 1 span 英寸 靶面尺寸为宽 span class token number 12
  • 面试问题总结——关于OpenCV

    整理了一下网上和我面试中遇到的关于OpenCV相关的问题 其中因为我的简历中有个项目用到了特征点检测相关的知识 xff0c 所以整理了SIFT SURF和FLANN 有些知识点也不深入 xff0c 对于写的不对的地方 xff0c 欢迎指正
  • 全排列(C++)

    递归法实现全排列 全排列就是指n个元素随机组合 xff0c 且不重复的所有排列方式 比如 1 xff0c 2 xff0c 3 xff0c 就有123 xff0c 132 xff0c 213 xff0c 231 xff0c 312 xff0c
  • 海康威视工业相机IP设置说明

    整理电脑文件时翻到的 xff0c 记录下来方便以后查阅 第一步 先修改本机IP步骤如下 xff1a 1 打开本地连接 2 点击属性 3 选择协议 gt gt 点击属性 4 选择使用下面IP地址 5 自己设置IP地址 xff0c 然后点击确认
  • 关于Aruco标记的理解并对其进行姿态估计的可视化显示

    目录 1 什么是ArUco标记1 1 Marker和字典 2 通过使用OpenCV生成ArUco标记图3 检测Aruco标记4 一些API的介绍getPredefinedDictionary drawMarker estimatePoseS
  • 关于手眼标定的误差计算

    之前做的眼在手上的手眼标定 xff0c 流程结束后 xff0c 会得到相机坐标系到机械臂末端坐标系的变换关系T cam2end 我一般直接量取机械臂末端到相机的直线距离来校对z轴方向的距离 xff0c 但只是做个估算 xff0c 并未进行精