手机拍照转机器人末端坐标(九点标定法)

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

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

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

3.手机拍照(固定点)

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

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

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

import cv2
import numpy as npinput_img='/home/cheni/Downloads/xyz.jpeg'
image = cv2.imread(input_img)
#让图片可以缩写拉伸
cv2.namedWindow('Harris', cv2.WINDOW_NORMAL | cv2.WINDOW_KEEPRATIO)
cv2.imshow('Harris',image)if cv2.waitKey(0) & 0xff == 27:cv2.destroyAllWindows()

效果如下:

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

5.标定矩阵计算加验证

验证算法如下:

import numpy as np
import cv2
robot_end_xy=np.array([[-316,-611.4],[-359.7,-589.3],[-296.4,-573.2],[-372.3,-558.7],[-293.8,-530],[-343.4,-522.7],[-222.8,-510],[-329.6,-486.6],[-288.1,-472.4],
])
phone_image_xy=np.array([[1371,923],[1912,965],[1367,1479],[1764,1423],[1555,1890],[2115,1702],[930,2490],[2150,2175],[1799,2520],])
#计算两组坐标之间的仿射矩阵
m, _ = cv2.estimateAffine2D(phone_image_xy, robot_end_xy)
print (m)
def get_points_robot(x_camera, y_camera):robot_x = (m[0][0] * x_camera) + (m[0][1] * y_camera) + m[0][2]robot_y = (m[1][0] * x_camera) + (m[1][1] * y_camera) + m[1][2]return robot_x, robot_y
#验证其中一个点,倒数第三个(930,2490)像素坐标转换机器人坐标
x,y= get_points_robot(930,2490)
print(x,y)

运行后结果分析:

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

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

6.参考文章

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/109645.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JUC】读写锁

读写锁 文章目录 读写锁1. ReentrantReadWriteLock概述2. 编码演示2.1 ReentrantLock实现2.2 ReentrantReadWriteLock实现 3. ReentrantReadWriteLock3.1 锁降级3.2 锁降级的必要性3.3 饥饿问题 4. StampedLock(邮戳锁也叫票据锁)4.1 特点4.2 三种访问模…

2023年全网最新 Windows10 搭建 Python 环境教程

目录 一、查看计算机操作系统的位数二、安装Python2.1 下载Python安装包2.2 在Windows 64位系统中安装Python2.3 测试Python是否安装成功 三、Windows环境下安装第2个Python(不同版本) ----不需要安装多个Python版本的读者此小节可以忽略 一、查看计算机操作系统的位数 目前&a…

【脉冲通信】用于空间应用的飞秒脉冲通信的符号误码率模型研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Android 第三方app https 抓包

工具选择 Charles 或 Fiddler 都可以 在PC上安装工具并进行设置 Charles Fiddler 设置按官网说明设置一下好。 Charles设置 Fiddler设置 Android Api Level > 24 SSL特殊设置 当Android 的 Api Level > 24时需要修改一下app的一起配置 1.在项目中添加 Android/src/…

【C++笔记】多态的原理、单继承和多继承关系的虚函数表、 override 和 final、抽象类、重载、覆盖(重写)、隐藏(重定义)的对比

1.final关键字 引出:设计一个不能被继承的类。有如下方法: class A { private:A(int a0):_a(a){} public:static A CreateOBj(int a0){return A(a);} protected:int _a; } //简介限制,子类构成函数无法调用父类构造函数初始化 //子类的构造…

IDEA如何拉取gitee项目?

1.登录gitee 说明:打开idea,在设置上面搜索框输入gitee,然后登录gitee注册的账号。 2. 创建gitee仓库 说明:创建idea中的gitee仓库。 3.寻找项目文件 说明:为需要添加gitee仓库的项目进行添加。 4.项目右键 说明&a…

el-tree 获取功率后的树结构

正常来说element框架应该返回的,但实际上没有,只能自己处理了 递归处理,思路就是赋值,如果是自己过滤到的数据就push进去,不是就不要 let newCheckTree [] let tree get_tree(treeData,newCheckTree); //获取过滤…

IPIDEA代理IP如何帮助企业采集市场信息

在当今数字化的时代,市场信息对于企业的发展至关重要。然而,如何高效地收集市场信息成为了每个企业都需要面对的问题。爬虫技术的出现为企业提供了一种高效、便捷的信息采集方式。然而,由于爬虫的请求频率较高,目标网站可能会将频…

vue使用pdf-dist实现pdf预览以及水印

vue使用pdf-dist实现pdf预览以及水印 一.使用pdf-dist插件将PDF文件转换为一张张canvas图片 npm install pdf-dist二.页面引入插件 const pdfJS require("pdfjs-dist"); pdfJS.GlobalWorkerOptions.workerSrc require("pdfjs-dist/build/pdf.worker.entry&…

浅谈云原生

目录 1. 云原生是什么? 2. 云原生四要素 2.1 微服务 2.2 容器化 2.3 DevOps 2.4 持续交付 3. 具体的云原生技术有哪些? 3.1 容器 (Containers) 3.2 微服务 (Microservices) 3.3 服务网格 (Service Meshes) 3.4 不可变基础设施 (Immutable Inf…

支持PC端、手机端、数据大屏端的Spring Cloud智慧工地云平台源码

技术架构:微服务JavaSpring Cloud VueUniApp MySql 智慧建筑工地云平台主要利用大数据、物联网等技术,整合工地信息、材料信息、工程进度等,实现对建筑项目的全程管理。它可以实现实时监测和控制,有效解决施工中的问题&#xff0c…

使用docker搭建drogon windows10,linux,mac下开发环境

2023年10月13日14:52:26 本机环境 Windows 10 专业版 22H2 操作内核19045.2965 如果直接在windows,linux,mac上直接搭建环境确实有一点难度,之前drogon官方并未提供官方镜像,现在有了docker镜像确实方便了,其实我是最…

软件考试学习笔记(希赛)

软考学习笔记-软件设计师 1. 软考基本介绍1.1 软考分数制1.2软考考试分类介绍1.3软件考试报名网站1.4考试内容1.4.1上午考试内容-综合知识1.4.2下午考试内容-软件设计 2.数据的表示2.1进制转换2.1.1R进制------》十进制转换2.1.2十进制-----》R进制转换2.1.3二进制与八进制与16…

网络通信协议-HTTP、WebSocket、MQTT的比较与应用

在今天的数字化世界中,各种通信协议起着关键的作用,以确保信息的传递和交换。HTTP、WebSocket 和 MQTT 是三种常用的网络通信协议,它们各自适用于不同的应用场景。本文将比较这三种协议,并探讨它们的主要应用领域。 HTTP&#xff…

CC2540和CC2541的区别简单解析

CC2541理论上是CC2540的精简版,去除了USB接口,增加了1个HW1C接口。 CC2540集成了2.4GHz射频收发器,是一款完全兼容8051内核的无线射频单片机,它与蓝牙低功耗协议栈共同构成高性价比、低功耗的片上系统(SOC&#xff09…

Gazebo仿真 【ROS: noetic】

参考链接:《ROS机器人开发实践》_胡春旭 目标: 了解如何使用URDF文件创建一个机器人模型,然后使用xacro文件优化该模型,并且放置到rvizArbotiX或Gazebo仿真环境中,以实现丰富的ROS功能。 4.5 Gazebo仿真环境 1&#x…

《动手学深度学习 Pytorch版》 9.1 门控循环单元(GRU)

我们可能会遇到这样的情况: 早期观测值对预测所有未来观测值具有非常重要的意义。 考虑一个极端情况,其中第一个观测值包含一个校验和,目标是在序列的末尾辨别校验和是否正确。在这种情况下,第一个词元的影响至关重要。我们希望有…

PS修改背景色,线框底图

1、打开图片,ctrlj复制一层 2、图像-调整-反相 3、ctrll调整色阶,将中间的色块向右移,灰色线和字体的会变黑

游戏类app有哪些变现方式?

游戏类app有多变现策略,一些是一些主要的方式:#APP广告变现# AdSet官方资讯-上海神蓍信息科技有限公司 一、游戏销售 一次性购买:玩家支付一次性费用购买游戏,之后可以免费游玩。这种模式常见于主机游戏和PC游戏。 游戏包&…

TrustZone以及ARMv8相关知识链接汇总

介绍TrustZone相关知识:https://blog.csdn.net/guyongqiangx/article/details/78020257ATF相关的 代码解析:https://blog.csdn.net/puyoupuyou/article/details/85046544Firmware Design: https://trustedfirmware-a.readthedocs.io/en/latest/design/firmware-desi…