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

坐标变换介绍与机器人九点标定的原理

 【备注】本文的C#代码在下面链接中可以下载:Opencv的C#九点标定代码资源-CSDN文库

https://download.csdn.net/download/qq_34047402/90452336

一、坐标变换的介绍

1.绕原点旋转的坐标变换

       一个点(x,y)绕原点旋转u度,其旋转后的坐标(x1,y1)如何计算?

2.绕任意点的坐标变换

一个点(x,y)绕任意一点(x0,y0)旋转u度,其旋转后的坐标(x1,y1)如何计算?

3.产品实际位置与示教位置有差异,求新的旋转中心的位置

下图所示,机器人示教抓取产品时,旋转中心在(x0,y0);

实际拍照后,发现产品偏移了dx,dy,du, 那么旋转中心到什么位置可以正确的抓取到产品?

public void GetOffsetRotate(double x0,double y0, double x1,double y1, double dx,double dy, double du, out double offsetX, out double offsetY, out double offsetU)

        {

            //先绕(x0,y0)旋转du度,看得到的新点坐标;

//然后把新点坐标平移到(x1+dx,y1+dy)所需的偏移量就是offsetX,offsetY.

            double RotateX, RotateY;

            double angle = du * Math.PI / 180.0;

            RotateX = x0 + (x1 - x0) * Math.Cos(angle) - (y1 - y0) * Math.Sin(angle);

            RotateY = y0 + (x1 - x0) * Math.Sin(angle) + (y1 - y0) * Math.Cos(angle);

            offsetX = x1 + dx - RotateX;

            offsetY = y1 + dy - RotateY;

            offsetU = du;

        }

4. 坐标系变换后,同一点坐标的关系

a. 仅坐标系旋转,同一个点在两个坐标系中的转换关系。

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

相关文章:

  • 串口调试助手Alien v5.198新版发布
  • 解锁Android RemoteViews:跨进程UI更新的奥秘
  • 编译可以在Android手机上运行的ffmpeg程序
  • Verilog学习方法—基础入门篇(一)
  • 本地jar包添加到 maven
  • C# Unity 唐老狮 No.6 模拟面试题
  • 项目工坊 | Python驱动淘宝信息爬虫
  • Java8-Stream流介绍和使用案例
  • setlocale()的参数,“zh_CN.UTF-8“, “chs“, “chinese-simplified“的差异。
  • docker 安装达梦数据库(离线)
  • FastGPT 引申:如何基于 LLM 判断知识库的好坏
  • 关于2023新版PyCharm的使用
  • Leetcode 112: 路径总和
  • 华为云IAM 用户名和IAM ID
  • Compose Multiplatform+Kotlin Multiplatfrom 第四弹跨平台
  • 【Proteus仿真】【STM32单片机】全自动养护智能生态雨林缸
  • GBT32960 协议编解码器的设计与实现
  • SolidWorks 转 PDF3D 技术详解
  • OpenMCU(二):GD32E23xx FreeRTOS移植
  • Codeforces Round 835 (Div. 4)题解ABCDEFG
  • NO1.C++语言基础|四种智能指针|内存分配情况|指针传擦和引用传参|const和static|c和c++的区别
  • SQLite Having 子句详解
  • Python数据分析面试题及参考答案
  • Spring Boot 3 整合 MinIO 实现分布式文件存储
  • ubuntu20 安装python2
  • 2025.3.3总结
  • 多线程-JUC源码
  • ICLR 2025|香港浸会大学可信机器学习和推理课题组专场
  • docker引擎备份及解决拉取失败的问题
  • Django项目实战