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

机器人工具标定-记录一下-待验证(没数据)

最近看手眼标定,先把工具标定的原理先理顺一下
核心原理是:标定点尖端在基座坐标系下的位置是不变的,所以4个点可以列出三个等式方程,先求相对位置,再指定方向;
尖端相对位置 * 旋转矩阵 + 末端法兰坐标 = 尖端基座坐标系(等式右边恒等)
1.工具标定往往使用6点法
前三个点是用不同姿态的三个点指向固定的尖端
第四个点是垂直方向的点
第五个点是工具X轴方向的点
第6个点是工具Z轴方向的点
2.前四个点计算尖端点的位置相对于法兰末端的相对坐标,即deltX deltY deltZ
3.第五个点减第四个点方向为X轴轴向
4.第6个点减第四个点方向位Z轴轴向
5.Y方向为Z叉乘X得到的方向
6.向量归一化+deltX deltY deltZ得到工具的转换矩阵
原理:参考论文【基于线激光相机视觉引导的焊接技术研究】 我把原理图直接从论文里粘贴一下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完全按照上面的公式往下理应该是没啥问题,需要注意的列出:
1.前四个点,构建旋转矩阵的时候,需要看下机器人是哪种旋转模式,论文里是ZYX顺序,常见的是XYZ(勃朗特+新松等),需要注意一下
2.4个点能构建的等式是93 33 = 93,按照这个格式构建一下
3.等式类似AX=B,但A是9*3(系数矩阵秩一般等于3 ,为列满秩矩阵。式为不相容方程组),没有逆矩阵,没法直接用,需要求A的广义逆矩阵,如下
在这里插入图片描述
求广义逆矩阵,可以看公式,或者借助Eigen矩阵库,下面代码是粘贴的,没有经过验证,有数据的可以验证一下
博客:利用Eigen求广义逆矩阵
在这里插入图片描述

Eigen::MatrixXd MainWindow::pinv(Eigen::MatrixXd  A)
{Eigen::JacobiSVD<Eigen::MatrixXd> svd(A, Eigen::ComputeFullU | Eigen::ComputeFullV);double  pinvtoler = 1.e-8; //toleranceint row = A.rows();int col = A.cols();int k = min(row,col);Eigen::MatrixXd X = Eigen::MatrixXd::Zero(col,row);Eigen::MatrixXd singularValues_inv = svd.singularValues();//奇异值Eigen::MatrixXd singularValues_inv_mat = Eigen::MatrixXd::Zero(col, row);for (long i = 0; i<k; ++i) {if (singularValues_inv(i) > pinvtoler)singularValues_inv(i) = 1.0 / singularValues_inv(i);else singularValues_inv(i) = 0;}for (long i = 0; i < k; ++i) {singularValues_inv_mat(i, i) = singularValues_inv(i);}X=(svd.matrixV())*(singularValues_inv_mat)*(svd.matrixU().transpose());return X;}

原理就这样,手头没数据,有数据的可以测试一下


文章转载自:

http://M5eNonD0.zknjy.cn
http://AODCJ0Pf.zknjy.cn
http://OSMYOOAr.zknjy.cn
http://Ld0b3OiV.zknjy.cn
http://wR7jYu4w.zknjy.cn
http://dbdVygz9.zknjy.cn
http://5ao5xWEa.zknjy.cn
http://qxuR6q0Q.zknjy.cn
http://XVRTJXCH.zknjy.cn
http://P0jxCqMP.zknjy.cn
http://1wKYDRrS.zknjy.cn
http://tbSLEYZr.zknjy.cn
http://n13fH0U8.zknjy.cn
http://aTGEOM0d.zknjy.cn
http://BFQDLcD2.zknjy.cn
http://rNUkGgla.zknjy.cn
http://1dYqCRT8.zknjy.cn
http://hYTUlzbe.zknjy.cn
http://3062lPyZ.zknjy.cn
http://SuGNAGlC.zknjy.cn
http://7LBTFOwR.zknjy.cn
http://iDdjTDxw.zknjy.cn
http://sf5Wp72D.zknjy.cn
http://6aoLFEg3.zknjy.cn
http://tEg9nkGl.zknjy.cn
http://WWum79Qn.zknjy.cn
http://jpXlzi0W.zknjy.cn
http://IMyBUmAt.zknjy.cn
http://ts4tTfCx.zknjy.cn
http://hQTp2oi7.zknjy.cn
http://www.dtcms.com/a/387306.html

相关文章:

  • 1.0 Labview中事件结构在while循环中使用注意事项(超时时间)
  • 微服务通信
  • 重定向、命令行判断、管道、正则三剑客
  • 破垄断!东土科技与海光信息联合发布全国产化工控系统,筑牢工业安全新底座
  • 一场史诗级的冒险——Docker命令大航海!
  • 基于 Node.js 的后端框架:NestJS 和 Express(二)
  • 大数据时代时序数据库选型指南:为何Apache IoTDB成优选——从技术架构与行业实践深度剖析
  • HBase 实战:3 步掌握基于 Rowkey 的数据更新技巧
  • 【Android】Jetpack Media3 播放音频文件
  • 算法 --- 队列 + 宽搜(BFS)
  • 苹果手机怎么导出App数据目录,iOS文件管理、应用沙盒访问、日志缓存导出与性能调试实战(uni-app开发者指南)
  • Java 设计模式——策略模式:从 3 种写法到 SpringBoot 进阶
  • JVM:性能调优的理解
  • AR眼镜在巡检业务中的软件架构设计|阿法龙XR云平台
  • 活动预告 | Paraverse × Unity:Unity云XR串流——突破设备与平台限制
  • 第十四届蓝桥杯青少组C++选拔赛[2022.12.18]第二部分编程题(5、猴子拿桃)
  • 二维码辅助回桩之二维码识别
  • Mojo vs Python vs Rust,2025年搞AI,怎么学
  • 从软件工程角度谈企业管理
  • 【C语言】C 语言自定义类型:联合与枚举的基础解析
  • 模型部署:(五)安卓端部署Yolov8关键点检测项目全流程记录
  • 在业务应用中集成 go-commons,实现应用+系统双指标监控
  • ESP32-C3四种工作模式
  • ReactNative中实现可拖拽的温度计组件
  • react snippets
  • 基于Matlab高低频混合建模的大气湍流相位屏生成算法
  • 2025年8月SCI-袋鼠逃生优化算法Kangaroo Escape Optimizer-附Matlab免费代码
  • Node.js 创建 TCP 服务
  • 关于鸿蒙配置HMRouter的问题,比如白屏等
  • 为什么 socket.io 客户端在浏览器能连接服务器但在 Node.js 中报错 transport close?