Realsense D455/435内参标定以及手眼标定

2023-05-16

相机的内外参

  1. 内参数 与相机自身特性有关的参数,焦距,像素大小
  2. 外参数, 相机的位置,旋转方向

为什么要内参标定

  • 理想情况下,镜头会将一个三维空间中的直线也映射成直线(即射影变换),但实际上,镜头无法这么完美,通过镜头映射之后,直线会变弯,所以需要相机的畸变参数来描述这种变形效果。
  • 理想情况下,相机对x方向和y方向的尺寸的缩小比例是一样的,但实际上,镜头如果不是完美的圆,传感器上的像素如果不是完美的紧密排列的正方形,都可能会导致这两个方向的缩小比例不一致。内参中包含两个参数可以描述这两个方向的缩放比例,不仅可以将用像素数量来衡量的长度转换成三维空间中的用其它单位(比如米)来衡量的长度,也可以表示在x和y方向的尺度变换的不一致性;
  • 理想情况下,镜头的光轴(就是通过镜头中心垂直于传感器平面的直线)应该是穿过图像的正中间的,但是,实际由于安装精度的问题,总是存在误差,这种误差需要用内参来描述;

内参矩阵:

    fx    s    x0
K =  0    fy   y0
     0    0    1

fx, fy为焦距,一般情况下,两者相等, x0,y0为主点坐标,s为坐标轴倾斜参数,理想情况下为0
外参数矩阵:包括旋转和平移矩阵

相机的位姿估计

参考链接:
像素坐标 Px 乘以深度 zc =相机内参K乘以相机坐标 Pc .
相关链接:

  1. https://zhuanlan.zhihu.com/p/144307108
  2. https://www.cnblogs.com/singlex/p/pose_estimation_1.html

内参标定和估计

相关链接:

  1. https://learnopencv.com/camera-calibration-using-opencv/

  2. https://visp-doc.inria.fr/doxygen/visp-daily/tutorial-calibration-intrinsic.html

  3. /home/jialiangfan/visp/build/example/calibration

  4. /home/jialiangfan/visp/build/tutorial/grabber

  5. mv /home/jialiangfan/visp/build/tutorial/grabber/chessboard-* /home/jialiangfan/visp/build/example/calibration

  6. ./calibrate-camera default-chessboard.cfg

通过ros_calibration获得较高精度的内参标定

  1. rosdep install camera_calibration
  2. 普通相机的话,安装usb-cam工具,realsense也可配置,usbcam的配置方法 为https://blog.csdn.net/qq_27865227/article/details/120975769
  3. realsense 或者安装 sudo apt-get install ros-kinetic-realsense2-camera,然后运行 roslaunch realsense2_camera rs_camera.launch align_depth:=true
  4. usb-cam配置下的校对命令:~/ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.25 image:=/usb_cam/image_raw camera:=/usb_cam
  5. rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.028 image:=/usb_cam/image_raw

标定好的Realsense D455参数
[[400.50715871 0. 313.03444875]
[ 0. 413.68114326 234.14594096]
[ 0. 0. 1. ]]

opencv 标定Realsense D455参数

cameraMatrix : [392.716970864628, 0, 243.0185503073266;
0, 387.129884776694, 215.7363588792927;
0, 0, 1]
distCoeffs : [0.06146982267847866, -0.05119212933712309, -0.007642430456467396, -0.05887116845433386, 0.009214258584880468]

从realsense本身api获取的结果

p[319.435 241.826] f[380.528 380.19]

ros_calibration 标定结果

390.989992 0.000000 291.088402
0.000000 386.367613 236.286866
0.000000 0.000000 1.000000

distortion -0.030756 0.135162 -0.006918 -0.015546 0.000000

rectification

1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000

projection

423.408600 0.000000 285.763055 0.000000
0.000000 418.590729 232.499668 0.000000
0.000000 0.000000 1.000000 0.000000

外参数标定

python camera_calibration_show_extrinsics.py --calibration camera.xml --scale_focal 20

通过对若干个图形的姿态确立,初始坐标一般确定为棋盘左上角,反向求解出相机在初始坐标系下的姿态。

参考链接:https://blog.csdn.net/jiaoyangwm/article/details/97752238

realsense 可视化界面

命令行输入:realsense-viewer
rgb相机 帧率最高 60, 画质424*240,帧率30,画质为640x480
深度相机 帧率最高90, 画质比较低, 画质会随着帧率的升高而降低

Realsense机械臂手眼标定

  1. 技术介绍 https://blog.csdn.net/yaked/article/details/77161160
  2. https://editor.csdn.net/md/?not_checkout=1&articleId=128649152
  3. https://zhuanlan.zhihu.com/p/576861119

手眼标定流程记录:

  1. aruco_ros等功能包

  2. easy_handeye功能包 Marker id: 6,大小: 5cm

  3. 改写 easy_hand_eye中的参数

技术教程

  1. Franka+realsense: https://zhuanlan.zhihu.com/p/576861119
  2. visp package: http://wiki.ros.org/visp_hand2eye_calibration
  3. Kinova hand-eye-calibration: https://blog.csdn.net/qq_39367282/article/details/89515338
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Realsense D455/435内参标定以及手眼标定 的相关文章

  • 路由器连接校园网并发WIFI:WR703N路由器安装OpenWRT并运行H3C客户端操作步骤(主要针对中山大学东校区)

    注意 xff1a 本文所有的最新更正请全部前往http blog reetsee com archives 227查看 本文主要目的在于让你的路由器能自动连接学校的校园网并且能发出WIFI让所有设备使用 要注意的是这篇作者呕心沥血写的超级傻
  • 教程:用OpenWRT进行WIFI接力——扩大WIFI覆盖范围

    因为准备去实习 xff0c 所以把宿舍很多东西都带回家了 xff0c 包括一个装了OpenWRT的路由器WR703N Step 0 为什么要这么做 在家里有一个地方不爽 xff0c 就是WIFI的信号覆盖不到我的房间 xff0c 所以我就想
  • 一个简单的开源PHP爬虫框架『Phpfetcher』

    这篇文章首发在吹水小镇 xff1a http blog reetsee com archives 366 要在手机或者电脑看到更好的图片或代码欢迎到博文原地址 也欢迎到博文原地址批评指正 转载请注明 xff1a 吹水小镇 reetsee c
  • 「更快!更爽!」吹水新闻2.0

    这篇文章首发在吹水小镇 xff1a http blog reetsee com archives 388 要在手机或者电脑看到更好的图片或代码欢迎到博文原地址 也欢迎到博文原地址批评指正 转载请注明 xff1a 吹水小镇 reetsee c
  • 如何对日志文件进行二分查找?开源文件二分查找工具『timecat』介绍

    这篇文章是我从自己的博客搬运过来的 转载请注明 xff1a 吹水小镇 reetsee com 原文链接地址 xff1a http blog reetsee com archives 502 要获得更好的阅读体验 xff0c 欢迎大家到这篇文
  • 阿里的电话面试是神马感觉

    感觉就是被问了个稀巴烂 xff0c 估计到不了下一轮 问了神马呢 xff0c 问了我的项目 xff0c 我描述了一阵子之后 xff0c 当他问到使用人数的时候 xff0c 我说是内部使用 没有发布 xff0c 只是一件比赛的作品的时候 xf
  • keil5 制作自己的pack

    转发自 xff1a http blog sina com cn s blog dc9571b90102vhqf html 以前都是用的keil5以下版本的keil xff0c 没有RTE这个功能 xff0c 后来安装了keil5以上的版本
  • 找出带环单向链表的环入口(交点)

    其实这个问题已经被问烂了 xff0c 但是之前没有想透 xff0c 今天算是解决得差不多 找环的入口这个问题 xff0c 其实是建立在另外一个问题之上的 判断单向链表是否有环 土方法很多 xff0c 但是比较好的目前就那么一个 xff1a
  • 关于我最近看的一本书——大名鼎鼎的APUE

    APUE xff0c Know as Unix环境高级编程 xff0c 我每天都在用自己的绳命去看 xff0c 每天都燃烧自己去看 什么样的书 xff0c 一看就是上乘之中的珍稀之品 xff1f 这本 不同于不少机械工业出版社的大部头 xf
  • 写博客加分不

    写第一篇博客 xff0c 就看看加分不 xff0c 这个网站分很重要 xff0c 不然下不了东西
  • 若在Ubantu中查询IP地址输入ifconfig时显示没找到该命令时怎么办?

    新手在学习Linux中想要查询IP地址输入ifconfig时却显示如下图 xff1a 这时我们只需要输入sudo apt install net tools 显示这下图时就证明已经安装好了 这时我们只需要 输入ifcogfig xff0c
  • 小觅相机深度版运行Vins-mono

    首先声明 xff0c 本人自己也是slam新手 xff0c 此贴只因为自己在用小觅相机深度版运行Vins的时候太过无助 xff0c 所以想写个自己运行出结果的完整过程 xff0c 仅供参考 xff0c 如有不对之处 xff0c 还望不吝指教
  • shell如何判定C/C++程序是否执行成功

    linux编程中经常遇到这样的问题 xff0c 即判断一个程序执行是否成功 xff0c 通常实现方法是通过进程的退出状态来判断 xff0c 当linux的一个进程执行完成后会返回一个进程的退出状态 xff0c 通过判断退出状态码 可以确定该
  • 删除数组中的指定元素或数组对象

    1 删除数组中的某个指定元素 1 xff09 首先获取元素下标 xff0c 用indexOf 函数找到他的位置index xff0c 如果没有找到这个元素那么index将会等于 1 xff1b 如下为找到元素2的下标 var array 6
  • stm32cubemx 配置FreeRTOS相关基础基础知识及串口接收中断实验

    本实验首先大家自身要有stm32cubemx基础配置 xff0c 比如GPIO 中断 串口 SPI等 xff0c FreeRTOS有相关的调用函数基础及调度任务的概念都需要提前理解 单独stm32cubemx或FreeRTOS网上很多 xf
  • select()

    select 简述 xff1a 确定一个或多个套接口的状态 xff0c 如需要则等待 include lt winsock h gt int PASCAL FAR select int nfds fd set FAR readfds fd
  • C#工控上位机开发

    对于电源软件开发者来说 xff0c 上位机的开发难度是远远小于下位机的 xff0c 之前几个月我一直在研究电力电子技术和下位机的控制算法 xff0c 也有了一点点的收获 xff0c 但说实话还是差的太远了 xff0c 而且人力物力资源非常稀
  • 虚拟机运行gazebo卡

    操作系统 xff1a ubuntu18 04 链接 B站链接 xff1a Autolabor初级教程 ROS机器人入门 问题 虚拟机gazebo卡的话 xff0c 可以试试在虚拟机设置里打开3d加速 xff0c 在每次启动gazebo前命令
  • 谨以此文献给才毕业一两年的朋友

    谨以此文献给才毕业一两年的朋友 选自同事信件 谨以此文献给才毕业一两年的朋友我们终于进入了这个社会 从此结束了被学校老师看管的生涯 xff0c 结束了做父母乖宝贝的日子 xff0c 也结束从父母兄长那里拿钱的幸福时光 我们从家里搬了出来 x
  • winform怎样设置comboBox默认值

    combox是开发winform常用的组件之一 xff0c 如何添加他的默认值呢 xff01 方法 步骤 新建一个windows窗体应用程序 xff0c 这里项目命名为test01 在默认打开的Form1中 xff0c 在左边的工具箱拖拉两

随机推荐

  • Internal server error 500 问题解决思路

    我们系统在一次升级之后 xff0c 生产环境大量出现Internal server error 500错误 xff0c 具体场景 xff1a 在APP上使用拍照功能后 xff0c APP通过Http协议上传压缩后的照片到服务端 xff0c
  • c# List集合类常用操作:二、增加

    所有操作基于以下类 class Employees public int Id get set public string Name get set public string City get set public DateTime Bi
  • 485通讯协议_终于有人把RS485通讯协议应用及缺点分析清楚了,看完收获多多

    RS 485是工业控制环境中常用的通信协议 xff0c 具有抗干扰能力强 传输距离长的特点 RS 485通信协议是对RS 232协议的改进 协议层不变 xff0c 但只有物理层得到了改进 xff0c 从而保留了串行通信协议应用简单的特点 R
  • 常用串口调试工具比较(详细)

    目前有许多免费的串口调试工具 xff0c 比较常用的有 xff1a 1 友善串口调试助手 xff08 v2 6 5 xff09 优点 xff1a 1 xff09 使用方便 xff0c 不丢包 xff1b 2 xff09 串口自动识别 xff
  • 请问在Delphi中用什么方式打开窗体能让它一直在最前面,而且还可以对其它窗体进行操作?

    将要打开的窗口FormStyle属性设置为 fsStayOnTop xff0c 然后再用show方法打开窗口
  • 微软Surface Pro 4/5平板如何重装Win10系统?教程分享

    重装Win10系统很多用户都会 xff0c 但是如果是平板 xff0c 那么操作起来和电脑可能会有不同 xff0c 毕竟平板需要触屏的支持 xff0c 今天我们要讲的是微软Surface Pro 4 5如何重装Win10系统 xff0c 主
  • C#发送16进制串口数据

    个困扰两天的问题 xff1a 需要通过串 向设备发送的数据 xff1a 0A010 7e 08 00 11 00 00 7e 76 7f 我先将每个16进制字符转换成10进制 xff0c 再将其转换成ASCII码对应的字符 lt summa
  • C# WinForm遍历窗体控件的3种方法

    这篇文章主要介绍了C WinForm遍历窗体控件的3种方法 xff0c 帮助大家更好的理解和使用c xff0c 感兴趣的朋友可以了解下 目录 1 循环遍历2 递归遍历3 使用反射 1 循环遍历 1 2 3 4 5 6 7 8 private
  • gazebo_ros:未找到命令

    操作系统 xff1a ubuntu18 04 链接 B站链接 xff1a Autolabor初级教程 ROS机器人入门 问题 gazebo ros xff1a 未找到命令 解决办法 sudo apt install ros span cla
  • 【深入学习51单片机】一、基于8051的RTOS内核任务切换堆栈过程剖析

    我一直在写裸机 xff0c 写的多了自然会对rtos产生浓厚兴趣 xff0c 最有意思的莫过于任务切换了 xff0c 可以在多个死循环里面跳转 xff0c 很神奇的样子 本文学习参考程序是网上一个基于8051的简易os xff0c 从哪里下
  • 如何使用网络调试助手调试UDP

    最近的一个项目需要使用UDP xff0c 在网上下载了一个网络调试助手的小工具进行调试 xff0c 非常方便 xff0c 在这里简单的向大家介绍一下它的使用方法 xff0c 仅供参考 xff0c 其他类似的调试工具都差不多 工具 原料 网络
  • Delphi 回调函数及例子

    Delphi回调函数 1 回调函数的概述 回调函数是这样一种机制 xff1a 调用者在初始化一个对象 xff08 这里的对象是泛指 xff0c 包括OOP中的对象 全局函数等 xff09 时 xff0c 将一些参数传递给对象 xff0c 同
  • 解决Window10连接共享目录 登录失败:未知的用户名或错误密码 的解决方法

    关于未知的用户名或错误密码 win10共享这个很多人还不知道 xff0c 今天菲菲来为大家解答以上的问题 xff0c 现在让我们一起来看看吧 xff01 1 按 Win 43 R 运行 执行 窗口 xff0c 输入 gpedit msc 命
  • 教您电脑电源短接哪两根线风扇转

    如果哦我们没有接电脑主板 xff0c 如何让电脑电源风扇转动 我们只有通过电脑电源线的短接来解决这个问题 xff0c 但是电脑电源线哪两跟线使风扇转动呢 一起跟小编来看看吧 电脑电源短接哪两根线风扇转 xff1a 1 电脑电源本身是一个供电
  • 编译PX4固件

    PX4编译 文章目录 PX4编译疑难杂症bug1bug2catkin build isolated 官方脚本Step1Step2 安装常用依赖Step3 创建并运行脚本Step4 补全代码子模块Step5 验证仿真 官方offboard 例
  • ubuntu18.04安装mavros并读取pixhawk飞控数据

    Mavros源码安装 最新mavros详细安装教程 xff08 亲测可行 xff09 启动mavros 上述步骤完成后 xff0c 启动px4 launch roslaunch mavros px4 launch 此时rostopic li
  • 相机标定:相机模型和畸变模型

    一 相机标定方案 相机内参标定是确定内参和畸变参数 equidistqant畸变模型 或者 radial tangential模型 的过程 本文首先介绍SLAM中常用的相机模型和畸变模型 xff0c 随后介绍我们采用的两种内参标定方案 xf
  • 新手入门Docker之Windows下如何使用Docker

    Docker是什么 xff1f Docker 将应用程序与该程序的依赖 xff0c 打包在一个文件里面 运行这个文件 xff0c 就会生成一个虚拟容器 程序在这个虚拟容器里运行 xff0c 就好像在真实的物理机上运行一样 有了 Docker
  • C/C++服务器开发常见面试题(一)

    C C 43 43 服务器开发常见面试题 转自 xff1a LinuxC C 43 43 服务器开发面试题 一 编程语言 1 根据熟悉的语言 xff0c 谈谈两种语言的区别 xff1f 主要浅谈下C C 43 43 和JAVA语言的区别 1
  • Realsense D455/435内参标定以及手眼标定

    相机的内外参 内参数 与相机自身特性有关的参数 xff0c 焦距 xff0c 像素大小外参数 xff0c 相机的位置 xff0c 旋转方向 为什么要内参标定 理想情况下 xff0c 镜头会将一个三维空间中的直线也映射成直线 xff08 即射