python将四元数变换为旋转矩阵的实例


Posted in Python onDecember 04, 2019

如下所示:

import numpy as np
from autolab_core import RigidTransform

# 写上用四元数表示的orientation和xyz表示的position
orientation = {'y': -0.6971278819736084, 'x': -0.716556549511624, 'z': -0.010016582945017661, 'w': 0.02142651612120239}
position = {'y': -0.26022684372145516, 'x': 0.6453529828252734, 'z': 1.179122068068349}

rotation_quaternion = np.asarray([orientation['w'], orientation['x'], orientation['y'], orientation['z']])
translation = np.asarray([position['x'], position['y'], position['z']])
# 这里用的是UC Berkeley的autolab_core,比较方便吧,当然可以自己写一个fuction来计算,计算公式在https://www.cnblogs.com/flyinggod/p/8144100.html
T_qua2rota = RigidTransform(rotation_quaternion, translation)

print(T_qua2rota)
 
# 以下是打印的结果
Tra: [ 0.64535298 -0.26022684 1.17912207]
   Rot: [[ 0.02782477 0.99949234 -0.01551915]
   [ 0.99863386 -0.02710724 0.0446723 ]
   [ 0.04422894 -0.01674094 -0.99888114]]
   Qtn: [-0.02142652 0.71655655 0.69712788 0.01001658]
   from unassigned to world

自己写的话

def quaternion_to_rotation_matrix(quat):
  q = quat.copy()
  n = np.dot(q, q)
  if n < np.finfo(q.dtype).eps:
    return np.identity(4)
  q = q * np.sqrt(2.0 / n)
  q = np.outer(q, q)
  rot_matrix = np.array(
    [[1.0 - q[2, 2] - q[3, 3], q[1, 2] + q[3, 0], q[1, 3] - q[2, 0], 0.0],
     [q[1, 2] - q[3, 0], 1.0 - q[1, 1] - q[3, 3], q[2, 3] + q[1, 0], 0.0],
     [q[1, 3] + q[2, 0], q[2, 3] - q[1, 0], 1.0 - q[1, 1] - q[2, 2], 0.0],
     [0.0, 0.0, 0.0, 1.0]],
    dtype=q.dtype)
  return rot_matrix

描述有两种方式,即XYZABC和XYZ+quaternion:

https://doc.rc-visard.com/latest/de/pose_formats.html?highlight=format

以上这篇python将四元数变换为旋转矩阵的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python操作列表之List.insert()方法的使用
May 20 Python
windows下安装Python和pip终极图文教程
Mar 05 Python
python中urllib.unquote乱码的原因与解决方法
Apr 24 Python
利用python批量给云主机配置安全组的方法教程
Jun 21 Python
python中子类调用父类函数的方法示例
Aug 18 Python
python 通过logging写入日志到文件和控制台的实例
Apr 28 Python
python实现屏保计时器的示例代码
Aug 08 Python
python实现彩色图转换成灰度图
Jan 15 Python
PyCharm 在Windows的有用快捷键详解
Apr 07 Python
部署Django到阿里云服务器教程示例
Jun 03 Python
详解Python GUI编程之PyQt5入门到实战
Dec 10 Python
python爬虫爬取某网站视频的示例代码
Feb 20 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
Dec 04 #Python
python实现一个点绕另一个点旋转后的坐标
Dec 04 #Python
Django配置文件代码说明
Dec 04 #Python
python实现回旋矩阵方式(旋转矩阵)
Dec 04 #Python
在Django下创建项目以及设置settings.py教程
Dec 03 #Python
Django自带的加密算法及加密模块详解
Dec 03 #Python
python Opencv计算图像相似度过程解析
Dec 03 #Python
You might like
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
PHP 第二节 数据类型之数值型
2012/04/28 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
基于JavaScript实现自动更新倒计时效果
2016/12/19 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
详解Vue-axios 设置请求头问题
2018/12/06 Javascript
使用Vue.observable()进行状态管理的实例代码详解
2019/05/26 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
JavaScript WeakMap使用详解
2021/02/05 Javascript
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
基于Django的ModelForm组件(详解)
2017/12/07 Python
Python数据结构之双向链表的定义与使用方法示例
2018/01/16 Python
python中的turtle库函数简单使用教程
2018/07/23 Python
用Python解决x的n次方问题
2019/02/08 Python
Python中使用gflags实例及原理解析
2019/12/13 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
方正Java笔试题
2014/07/03 面试题
商务英语本科生的自我评价分享
2013/11/15 职场文书
学生会主席竞聘书
2014/03/31 职场文书
慈善晚会策划方案
2014/05/14 职场文书
服务承诺书怎么写
2014/05/24 职场文书
应届生求职信范文
2014/05/26 职场文书
员工试用期自我评价
2014/09/18 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
党的群众路线教育实践活动批评与自我批评发言稿
2014/10/16 职场文书
干部考察材料范文
2014/12/24 职场文书
活动费用申请报告
2015/05/15 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
2015年学校总务工作总结
2015/07/20 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书