码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 手机拍照转机器人末端坐标(九点标定法)


    1.打印标定纸,随机九个点

    2.让UR机器人末端分别走到P1-P9九个点

    在图示位置读取九个点的X,Y坐标

    3.手机拍照(固定点)

    测试可以随机拍一张,实用的话需要固定手机的拍照位置,得到的图片如下:

    4.OpenCV取值这九个点的像素坐标

     实用如下代码显示这个图片,用鼠标悬停取抄写坐标

    1. import cv2
    2. import numpy as np
    3. input_img='/home/cheni/Downloads/xyz.jpeg'
    4. image = cv2.imread(input_img)
    5. #让图片可以缩写拉伸
    6. cv2.namedWindow('Harris', cv2.WINDOW_NORMAL | cv2.WINDOW_KEEPRATIO)
    7. cv2.imshow('Harris',image)
    8. if cv2.waitKey(0) & 0xff == 27:
    9. cv2.destroyAllWindows()

    效果如下:

    鼠标悬停在P1上,在左下角就可以读取这个像素坐标值了。

    5.标定矩阵计算加验证

    验证算法如下:

    1. import numpy as np
    2. import cv2
    3. robot_end_xy=np.array([
    4. [-316,-611.4],
    5. [-359.7,-589.3],
    6. [-296.4,-573.2],
    7. [-372.3,-558.7],
    8. [-293.8,-530],
    9. [-343.4,-522.7],
    10. [-222.8,-510],
    11. [-329.6,-486.6],
    12. [-288.1,-472.4],
    13. ])
    14. phone_image_xy=np.array([
    15. [1371,923],
    16. [1912,965],
    17. [1367,1479],
    18. [1764,1423],
    19. [1555,1890],
    20. [2115,1702],
    21. [930,2490],
    22. [2150,2175],
    23. [1799,2520],
    24. ])
    25. #计算两组坐标之间的仿射矩阵
    26. m, _ = cv2.estimateAffine2D(phone_image_xy, robot_end_xy)
    27. print (m)
    28. def get_points_robot(x_camera, y_camera):
    29. robot_x = (m[0][0] * x_camera) + (m[0][1] * y_camera) + m[0][2]
    30. robot_y = (m[1][0] * x_camera) + (m[1][1] * y_camera) + m[1][2]
    31. return robot_x, robot_y
    32. #验证其中一个点,倒数第三个(930,2490)像素坐标转换机器人坐标
    33. x,y= get_points_robot(930,2490)
    34. print(x,y)

    运行后结果分析:

    1. cheni@yuchen:~$ /bin/python3 /home/cheni/Desktop/suanfa.py
    2. [[-7.71668805e-02 3.77840943e-02 -2.45046408e+02]
    3. [ 3.92542458e-02 7.59681698e-02 -7.35221624e+02]]
    4. -222.7292116274272 -509.55443216333356
    5. cheni@yuchen:~$ ^C

    1是计算的仿射矩阵,2是验证倒数第三个点,可以看到误差不是太大。 

    6.参考文章

     Python-opencv 手眼标定(九点定位)_opencv设置视觉抓取点怎么确定-CSDN博客

    基于OpenCv的机器人手眼标定(九点标定法)《转载》_qt opencv 九点标定_hehedadaq的博客-CSDN博客

  • 相关阅读:
    "高绩效"指南
    番外8.2---配置/管理硬盘
    vscode中提升效率的插件扩展——待更新
    图像处理学习笔记-04-频率域滤波01-基本知识
    DDR电源硬件设计要点
    电脑系统重装后如何开启Win11实时辅助字幕
    Maven中央仓库地址配置大全
    谷粒商城--整合SpringCloud Alibaba
    64 ---- 平面与直线的位置关系
    ADB 安装 + 打驱动全教程
  • 原文地址:https://blog.csdn.net/xiaoding_ding/article/details/133888371
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号