网站首页 > 博客文章 正文
3D视觉 | 机器人3D手眼标定实验
复现Cognex VisionPro 3D的大部分内容,涵盖眼在手外、眼在手上,包括相机标定、手眼标定、3D定位计算位移偏差。最后的位移偏差与Cognex的结果在1mm左右。
— Edited By Hugo
# 1
用python实现原型验证算法,再移植成C++编译为dll,供C#调用。
python的库主要用到:cv2、numpy。
C++的库主要用到:OpenCV、Eigen。
复现的VisionPro 3D函数:
封装成dll的函数接口:
函数接口:
1.void getMatsEth(int* other_info, char* point3d_str, char* point2d_str, char* robot_str, double* mtx33_l, double* mtx33_r, double* mtx44_l, double* mtx44_r)
2.void getMatsEih(int* other_info, char* point3d_str, char* point2d_str, char* robot_str, double* mtx33_l, double* mtx33_r, double* mtx44_l, double* mtx44_r)
3.void calc_ImageToWorld(double* _mtx44_cam3dToPhy3d_l, double* _mtx33_camIntrin_l, double* _mtx44_cam3dToPhy3d_r, double* _mtx33_camIntrin_r, double* _Point_Cl, double* _Point_Cr, double* params)
4.void calc_Excursion(int pointNum, double* _Point_Model_3D, double* _Point_Now_3D, double* _res_excursion)
# 2
总体步骤:
1.相机标定
2.手眼标定
3.计算偏移
坐标系转换:
1.左右相机通过特征提取,得到Raw2D下的特征点坐,通过相机内参,将特征点转到Camera2D下。
2.把未知高度作为未知数,将特征点转到Camera3D下,通过手眼矩阵,将特征点转到Hand3D下
3.通过示教器读取的机械手位姿,将特征点转到RobotBase3D下
# 3
方程求解,代入数据:
最终共有6个方程,即左右相机各3个方程(x、y、z),但6个方程中只有5个未知数,即RobotBase3D下的X、Y、Z、Camera3D下的左右相机的z,一般做法,用优化方法解超定方程即可。
3D视觉基础知识:
位姿,刚体在坐标系中用位姿描述,位姿 = 位置(position) + 姿态(orientation)。
一般地,位置和姿态各用3个值表示,位置用x、y、z表示偏移,姿态用rx、ry、rz表示欧拉角旋转。
标定板:
工业常用标定板分两大类:实心圆阵列(Halcon)、棋盘格(VisionPro、OpenCV、Matlab),非精确制造的标定板会导致不好的标定结果,比如激光/喷墨打印机打印的标定板。
康耐视的棋盘格(Cognex checkerboard)包含标准的基准标识,能够做到不必在一张图片内拍摄整张棋盘格。
篇幅有限,下一篇继续分享:
1.相机标定
2.姿态评估
3.手眼标定
猜你喜欢
- 2024-10-14 “互联网+”大赛华软学院参赛项目风采|疲劳驾驶预警系统
- 2024-10-14 双目视觉在机械臂抓取中的应用(3D locate)
- 2024-10-14 翻译文章二:项目说明及四旋翼直升机的动力学原理
- 2024-10-14 基于TOF相机的靶标识别与位姿测量系统设计
- 2024-10-14 ANSYS Fluent中的动态网格模型理论介绍
- 2024-10-14 基于VANET的车辆相对定位技术(gps相对定位常用的组合方法有)
- 2024-10-14 研究员为HoloLens 2 AR引导操作提出鲁棒性更强的姿态追踪
- 2024-10-14 基于全球卫星导航信号的极化阵列平台姿态估计
- 2024-10-14 使用OpenCV和Dlib的头部姿态估计(opencv 姿态估计)
- 2024-10-14 乒乓球13种拍形与击球部位的关系(乒乓球13种拍形与击球部位的关系是)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)