UR5机器人的旋转向量转换到四元数,再从四元数转换到旋转向量python代码

能够通过接口获得UR5机器人末端在基坐标系下的位姿,姿态表示方法是用旋转向量表示的,一般会涉及到四元数和旋转向量之间的转换。

1、方法一

python 复制代码
import numpy as np
from pytransform3d import rotations as pr
import copy
# 输入旋转向量
quaternion2 = np.array([-2.8382432375984954, 1.2909992654084241, -0.012174449591830415])
# 转换为四元数
ro_angle = np.linalg.norm(quaternion2) #向量模长为转角
ro_vector = quaternion2 / ro_angle   #转轴
axis_angle = np.append(ro_vector,ro_angle)
Y = pr.quaternion_from_axis_angle(axis_angle)  #结果是w,x,y,z
# 四元数转换回旋转向量
learn_axis_angle = pr.axis_angle_from_quaternion(Y)
dmp_pose = learn_axis_angle[0:3]*learn_axis_angle[3]

print("初始向量:", quaternion2)
print("最终向量:", dmp_pose)

2、方法二

python 复制代码
from scipy.spatial.transform import Rotation
import numpy as np
import copy
# 输入旋转向量
quaternion2 = np.array([-2.8382432375984954, 1.2909992654084241, -0.012174449591830415])
# 转换为四元数
qua = Rotation.from_rotvec(quaternion2).as_quat() #结果是x,y,z,w
# 四元数转换回旋转向量
dmp_pose = Rotation.from_quat(qua).as_rotvec() #转换为旋转向量

print("初始向量:", quaternion2)
print("最终向量:", dmp_pose)
相关推荐
E_ICEBLUE2 分钟前
PDF vs PDF/A:区别、场景与常用转换方法(2025 全面解读)
python·pdf
二狗哈7 分钟前
Cesium快速入门15:图元Primitive创建图像物体
开发语言·javascript·3d·webgl·cesium·地图可视化
lljss202018 分钟前
C# 定时器类实现1s定时器更新UI
开发语言·c#
白杨攻城狮20 分钟前
C# 关于 barierr 心得
开发语言·c#
zhglhy22 分钟前
Jaccard相似度算法原理及Java实现
java·开发语言·算法
catchadmin28 分钟前
PHP 8.5 容器化实战指南
开发语言·php
nono牛29 分钟前
完整bash语法教程:从零到专家
开发语言·chrome·bash
岁月宁静31 分钟前
🐍 Python 核心知识点:从零开始快速构建 Python 知识体系
python
啥都不懂的小小白34 分钟前
Java日志篇3:Logback 配置全解析与生产环境最佳实践
java·开发语言·logback
江沉晚呤时35 分钟前
延迟加载(Lazy Loading)详解及在 C# 中的应用
java·开发语言·microsoft·c#