zoukankan      html  css  js  c++  java
  • 【ABB】机械臂欧拉角转四元数

    背景

    我们最近搞机械臂+机器视觉实现机械臂的引导、定位和抓取操作。

    我们的机械臂是ABB的,ABB的机械臂默认采用四元数的方式表示空间坐标,但是这个东西非常不便于理解,其他厂家的机械臂一般使用欧拉角表示空间位置和姿态。

    关于如何将四元数与欧拉角之间进行转换,我们调研了很长时间,现在总结出一个方法,供大家参考。

    欧拉角:

    使用到的库

    https://github.com/cgohlke/transformations

    使用方式

    import transformations
    import numpy

    def euler(roll, pitch, yaw, axes='rxyz'): yaw = float(yaw) / 180 * numpy.pi pitch = float(pitch) / 180 * numpy.pi roll = float(roll) / 180 * numpy.pi return list(transformations.quaternion_from_euler(roll, pitch, yaw, axes=axes))


    roll = 180
    pitch = 0
    raw = 0
    quaternion = euler(roll, pitch, raw)

    重要说明:

    axes表示机械臂运动时的绕轴顺序,默认xyz没有问题,最关键的在于前面的

    r:表示基于夹爪(自身)的坐标系进行运动

    s:表示基于机械臂的基坐标的坐标系进行运动。

    绝大部分情况,推荐使用r模式,更容易让人理解,是相对于夹爪的位置进行的运动。

    另外,这个库的quaternion_from_euler函数,传入角度不是我们认知的0-360度,而是根据pi进行转换,pi表示180度。

    原创作者:郑立赛


    邮箱:zhenglisai@qq.com


    欢迎关注我们的公众号获取最新文章:运维自动化开发


    公众号
    公众号
  • 相关阅读:
    Flex布局
    【北京法院网上立案工作办法】
    欢迎注册北京法院电子诉讼平台账号
    授权书范本
    拷贝构造函数与移动构造函数
    力扣刷题计划-字符串-最长公共前缀
    多节点树结构
    WPF的TreeView添加鼠标双击事件MouseDoubleClick执行两次
    力扣刷题计划-动态规划-整数拆分
    Java解决字节流乱码问题
  • 原文地址:https://www.cnblogs.com/zhenglisai/p/15774242.html
Copyright © 2011-2022 走看看