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

计算原理

角度计算

  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

相关推荐
maplewen.3 小时前
C++ 内存对齐
开发语言·c++
柒儿吖3 小时前
三方库 Boost.Regex 在 OpenHarmony 的 lycium完整实践
c++·c#·openharmony
一只小小的芙厨3 小时前
寒假集训·子集枚举2
c++·笔记·算法·动态规划
kyle~3 小时前
ROS2----组件(Components)
开发语言·c++·机器人·ros2
阿猿收手吧!3 小时前
【C++】Ranges 工厂视图与投影机制
开发语言·c++
.小墨迹3 小时前
局部规划中的TEB,DWA,EGOplanner等算法在自动驾驶中应用?
开发语言·c++·人工智能·学习·算法·机器学习·自动驾驶
你的冰西瓜4 小时前
C++中的priority_queue容器详解
开发语言·c++·stl
柒儿吖4 小时前
三方库 Emoji Segmenter 在 OpenHarmony 的 lycium 适配与测试
c++·c#·openharmony
冬风诉4 小时前
cuda核函数
c++·cuda
㓗冽4 小时前
矩阵问题(二维数组)-基础题70th + 发牌(二维数组)-基础题71th + 数字金字塔(二维数组)-基础题72th
c++·算法·矩阵