在相机和机器人坐标系之间转换欧拉角

问题描述

我的问题很简单,但很困惑,因为我个人还没有角度和角度转换的经验。

基本上,我需要定位附有单个 AruCo 标记的对象的位置,然后将该对象(标记)的 3d 坐标和姿势发送给机器人。请注意,我使用的机器人模型是ABB制造的工业机器人,我发送的3d坐标已经转换为机器人坐标系。

撇开坐标问题,我用立体相机解决了这个问题。但是,我发现姿势问题是如此困难,尤其是在将 AruCo 标记 w.r.t 相机的姿势转换为机器人坐标系时。下面的图片代表了两个坐标系,一个是相机,一个是机器人。

Coordinate System

我从 AruCo Marker 收集的角度被转换成欧拉角,这些方法是从 OpenCV 库中应用的:

def PoseCalculate(rvec,tvec,marker):
    rmat = cv2.Rodrigues(rvec)[0]
    P = np.concatenate((rmat,np.reshape(tvec,(rmat.shape[0],1))),axis=1)
    euler = -cv2.decomposeProjectionMatrix(P)[6]
    eul = euler_angles_radians
    yaw = eul[1,0] 
    pitch = eul[0,0]
    roll = eul[2,0]
    return (pitch,yaw,roll)

结果是代表标记姿势的三个角度。 Pitch 表示标记围绕 X 轴(相机)旋转时的旋转,Y 轴(相机)的偏航和 Z 轴(相机)的滚动。 那么,如何将这三个角度转换为机器人坐标系?

Sample Angles Collected

感谢您阅读这么长的问题,并祝大家在 2021 年新的一年身体健康!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...