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)
相关推荐
Csvn9 小时前
🌟 LangChain 30 天保姆级教程 · Day 13|OutputParser 进阶!让 AI 输出自动转为结构化对象,并支持自动重试!
python·langchain
Wenweno0o9 小时前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
chenjingming6669 小时前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
cch891810 小时前
Python主流框架全解析
开发语言·python
不爱吃炸鸡柳10 小时前
C++ STL list 超详细解析:从接口使用到模拟实现
开发语言·c++·list
十五年专注C++开发10 小时前
RTTR: 一款MIT 协议开源的 C++ 运行时反射库
开发语言·c++·反射
Momentary_SixthSense10 小时前
设计模式之工厂模式
java·开发语言·设计模式
sg_knight10 小时前
设计模式实战:状态模式(State)
python·ui·设计模式·状态模式·state
水文摸鱼怪10 小时前
HHU校园网自动连接监控系统(钉钉机器人版)操作说明书
机器人·钉钉
好运的阿财10 小时前
process 工具与子agent管理机制详解
网络·人工智能·python·程序人生·ai编程