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

(四)3D视觉机器人的手眼标定(眼在手外)

内容

  • 1.背景介绍
    • 1.1 思路
    • T_target_to_cam求解
    • 公式求解
  • 2.操作流程

1.背景介绍

  3D视觉机器人指的是机器人通过3D相机提供的3D点云视觉信息,完成某些实际的功能。
  目标是将场景信息从相机坐标系变换至机械臂坐标系中,最终是获得相机到机械臂基座的空间变换矩阵。
  下面以眼在手外标定为例:

在这里插入图片描述
  上图中,相机④固定在工作空间中,标定板③被固定在机械臂末端②上,为了做手眼标定在末端上固定一个标定板。
  标定过程中标定板③机械臂末端②固定位姿不变,由上图可知,相机④机械臂基座①的相对位置不变,然后通过示教器控制机械臂带着标定板③在不同的位姿下进行拍照,拍照的过程中保存当前拍到的标定板图片以及记录图片对应示教器上的世界坐标。
  眼在手外标定的目的是求出相机④坐标系到机械臂基座标系①的变换矩阵。

1.1 思路

在这里插入图片描述
  眼在手外标定可以理解为上述坐标系转换的关系,其中③可由机械臂示教器上的数值直接获取,④由于是固定不变的,后面可通过计算进行消除。目标是求出相机相对于机械臂基座坐标系的位姿

T_target_to_cam求解

  T_target_to_cam可以理解是齐次矩阵,是由R_target_to_cam(旋转矩阵)和平移向量t_target_to_cam组成。
在这里插入图片描述
  其中R_target_to_cam(旋转矩阵)可以由三个单位向量来表示,下面需要建立这个单位向量。
在这里插入图片描述
  这里使用的标定板是棋盘格标定板,可以通过OpenCV中的函数寻找到棋盘格上的每个角点像素坐标系,以左上角第一个角点作为原点,和右上角的角点相连作为X轴正方向,和左下角的角点相连作为Y轴正方向,计算它们的单位向量VxVyVz可由Vx和Vy叉乘得到。
在这里插入图片描述

PS:这里选择右上角的角点和左下角的角点,和原点相连是为了提高精度。

  因为使用的是3D相机,可以知道左上角角点的像素坐标和深度信息,通过相机内参将像素坐标转换为实际物理坐标(相机坐标系下),则t_target_to_cam平移向量可以得到。

公式求解

在这里插入图片描述
  上面的公式中,①可以通过上面的方法求解,③是已知值,将等式两边左乘T_base_to_cam逆矩阵T_end_to_base逆矩阵,可以将T_target_to_end单独放在等式右边,输入两组值,由于目标(标定板相对于机械臂末端的位姿关系固定)T_target_to_end相等,可以将两组值直接相等,去除T_target_to_end

  剩下的就是AX = XB求解,输入多组值即可求出相机相对于机械臂基座坐标系的位姿,即T_cam_to_base

2.操作流程

操作流程基本和眼在手外标定流程相同,只是这里相机是不变的,需要将标定板固定到机械臂的末端,参考:https://blog.csdn.net/qq_45445740/article/details/123947559

上面提到的计算T_target_to_cam通过建立坐标系的方法进行求解,作为一个求解思路,OpenCV中有现成的函数直接进行求解,calibrateCamera,可以计算眼在手上和眼在手外,只是输入的参数不同。

感谢视频讲解:https://www.bilibili.com/video/BV1Rw411d7ch/?spm_id_from=333.880.my_history.page.click

http://www.lryc.cn/news/493721.html

相关文章:

  • 安达发|制造业APS智能优化排产软件的四类制造模型解决方案
  • 命令行使用ssh隧道连接远程mysql
  • 力扣第 71 题 简化路径
  • 使用ENSP实现OSPF
  • 分布式下怎么优化处理数据,怎么代替Join
  • 51单片机快速入门之中断的应用 2024/11/23 串口中断
  • [Java]微服务配置管理
  • c/c++ 用easyx图形库写一个射击游戏
  • Rust eyre 错误处理实战教程
  • 面试小札:JVM虚拟机
  • Docker扩容操作(docker总是空间不足)
  • 数字图像处理(4):FPGA中的定点数、浮点数
  • 毕昇入门学习
  • 2411C++,学习C++提示4
  • STM32-- 看门狗--介绍、使用场景、失效场景
  • 【赵渝强老师】PostgreSQL的数据库
  • linux安全管理-会话安全
  • Ubuntu监视显卡占用情况
  • 学成在线day06
  • Mac安装及合规无限使用Beyond Compare
  • 【青牛科技】2K02 电动工具专用调速电路芯片描述
  • 基于SpringBoot实现的民宿管理系统(代码+论文)
  • 安装QT6.8(MSVC MinGW)+QT webengine+QT5.15.2
  • MinIO常见操作及Python实现对象的增删改查
  • 网络编程中的字节序函数htonl()、htons()、ntohl()和ntohs()
  • 【dvwa靶场:File Upload系列】File Upload低-中-高级别,通关啦
  • RHCE NFS
  • 【数据结构】ArrayList与顺序表
  • 互联网基础
  • ffmpeg.js视频播放(转换)