微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

基本上,我需要定位附有单个 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 举报,一经查实,本站将立刻删除。