【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
欢迎关注我们的公众号获取最新文章:运维自动化开发


【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)