通过旋转机械臂,将机械臂上相机拍摄图像的任意点移动至图像中心的方法

计算原理

角度计算

  1. 相机CCD大小固定,即相机成像平面大小固定,相机视场角(FOV)仅由相机焦距F决定;

    • 因此,定焦相机的FOV大小固定,通过上图可以看出相机视场角的计算公式为:

    FOV = 2*atan(w/2f)

    • 注意,这里w/2f代表的是w/2除以f;
  2. 因此,要想获取图像上任意点(x0,x0)到图像中心的旋转角度,只需求出任意点在成像画面中与图像中心(x1,x2)在x、y方向上的距离差作为新的w即可,但需注意x轴方向的差对应的是y轴的旋转角度,其余类似,如下式:

α_y=2*atan((x_1-x_0)/2f_x) α_x=2*atan((y_1-y_0)/2f_x)

机械臂位姿计算

  1. 已知两个旋转角度,将其转化为旋转矩阵R_x、R_y;
  2. 左乘机械臂当前位姿矩阵,即可获取机械臂到达中心点的机械臂位姿即:

targetPose = currPose * R_x * R_y

相关推荐
大土豆的bug记录2 分钟前
鸿蒙实现自定义类似活体检测功能
数码相机·华为·harmonyos·鸿蒙
闻缺陷则喜何志丹8 分钟前
【组合数学】P9418 [POI 2021/2022 R1] Impreza krasnali|普及+
c++·数学·组合数学
晨曦夜月30 分钟前
头文件与目标文件的关系
linux·开发语言·c++
刃神太酷啦34 分钟前
C++ list 容器全解析:从构造到模拟实现的深度探索----《Hello C++ Wrold!》(16)--(C/C++)
java·c语言·c++·qt·算法·leetcode·list
有点。1 小时前
C++ ⼀级 2023 年09 ⽉
c++
LXS_3571 小时前
Day 16 C++提高之模板
开发语言·c++·笔记·学习方法
wyw00001 小时前
鸿蒙开发-如何将C++侧接收的PixelMap转换成cv::mat格式
c++·华为·harmonyos
liulilittle1 小时前
C++ CRTP 替代虚函数
数据结构·c++·算法
buyue__2 小时前
C++实现数据结构——队列
数据结构·c++
NZT-482 小时前
C++基础笔记(二)队列deque,queue和堆priority_queue
java·c++·笔记