python旋转矩阵_python将四元数变换为旋转矩阵

2023-11-07

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 world1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

自己写的话

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_matrixPose formats1

2

3

4

5

6

7

8

9

10

11

12

13

14

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python旋转矩阵_python将四元数变换为旋转矩阵 的相关文章

  • Java RMI 解析

    1 什么是RMI Java RMI 即 远程方法调用 Remote Method Invocation 一种用于实现远程过程调用 RPC Remote procedure call 的Java API 能直接传输序列化后的Java对象和分布
  • GD32替换STM32后 写片上闪存(flash)失败的解决方法

    目录 型号 问题 解决办法 下载gd的fmc操作库 修改fmc文件 使用 擦除一页 写一页 型号 使用的GD32C103CB等引脚替换STM32F103CB 问题 使用hal库的flash操作接口 片上flash可以正常擦除 但是无法写入
  • Flash Player 10 中的RTMFP协议(实现P2P技术)

    RTMFP是Adobe公司开发的一套新的通信协议 该协议可以让使用Adobe Flash Player的终端用户之间进行直接通信 用Adobe AIR框架开发的程序也可以用此协议来发布直播 实时信息 通过使用RTMFP 那些以来直播 实时通
  • 03多线程之间通讯

    线程之间的通信 一 为什么要线程通信 1 多个线程并发执行时 在默认情况下CPU是随机切换线程的 当我们需要多个线程来共同完成一件任务 并且我们希望他们有规律的执行 那么多线程之间需要一些协调通信 以此来帮我们达到多线程共同操作一份数据 2
  • linux内存文件系统

    写文件时 太耗内存的话 可以使用dma拷贝 或者使用内存文件系统的方式 但首先要搞清楚一点 正常的文件操作 多久会真正保存到磁盘中去呢 参考 浅谈Linux系统写磁盘机制 http blog sina com cn s blog 96757
  • mybatis通用mapper的Example查询

    mybatis的通用mapper 多用于单表查询 接口内部为我们提供了单表查询的基础查询语法 可以极大地帮助我们简化编程 接下来让我们动手试一试 我建的是springboot项目 先导依赖
  • 词云下载jieba成功后仍然报错

    下载jieba终端 pip install i https pypi tuna tsinghua edu cn simple jieba 成功下载后仍然报错 TransposedFont object has no attribute ge
  • 牛顿-拉夫逊法潮流计算matlab程序,牛顿—拉夫逊法潮流计算MATLAB程序.doc

    牛顿 拉夫逊法潮流计算程序By Yuluo 牛顿 拉夫逊法进行潮流计算 n input 请输入节点数 n n1 input 请输入支路数 n1 isb input 请输入平衡母线节点号 isb pr input 请输入误差精度 pr B1
  • python之struct详解

    python之struct详解 醉小义的博客 CSDN博客 python struct 尊重原创
  • Unity中,在按钮的处理事件中,显示UI(Panel)的一些问题

    问题来源 自己遇到的 32条消息 Unity SetActive True 滞后严重 游戏 CSDN问答 简单概括就是 点击按钮 开始处理某个事件 这个事件需要花费较长时间 我的想法是加入一个加载中界面 方便告知用户当前程序没有卡住 在完成
  • kodi刮削器 中文_手把手教你用Kodi,搭建最强私人娱乐/学习中心!(小白篇)...

    喜欢本篇内容请给我们点个在看 什么是KODI 简单的说 Kodi 就是一个功能强大且免费的媒体播放器 支持全平台 如Windows Linux iOS Android Xbox 以及树莓派等 可播放电影 电视剧 音乐 电视直播 电台等等 特
  • JS逆向解析---某知名小说网站内容加密

    该小说网站的全部内容都是经过一个JS的加密 要想爬取这个网站那么将其内容解析是不可避免的 本文将讲解如何对其进行JS的逆向解析 网站 shuqi 随便点开一本书 打开浏览器自带的抓包工具 点击第一个包 但是在这里找不到我们想要的数据 说明不
  • 实现ListView中每行显示进度条,并且各自显示自己的进度

    package com sagaware process list import java util ArrayList import java util HashMap import java util List import java
  • Web2.0网站一些通用业务采用NoSql的解决方案

    首先理解NoSql的划分 Often NoSQL databases are categorized according to the way they store the data and fall under categories su
  • MySQL生产环境高可用架构实战

    分布式技术MongoDB 1 MySQL高可用集群介绍 1 1 数据库主从架构与分库分表 1 2 MySQL主从同步原理 2 动手搭建MySQL主从集群 2 1 基础环境搭建 2 2 安装MySQL服务 2 2 1 初始化MySQL 2 2
  • 仿射密码 affine

    参考链接 https www cnblogs com 0yst3r 2046 p 12172757 html 仿射加密法 在仿射加密法中 字母表的字母被赋予一个数字 例如 a 0 b 1 c 2 z 25 仿射加密法的密钥为0 25直接的数
  • Incorrect integer value: '' for column 'id' at row 1 错误解决办法

    最近一个项目 在本地php环境里一切正常 ftp上传到虚拟空间后 当执行更新操作 我的目的是为了设置id为空 set id 时提示 Incorrect integer value for column id at row 1 解决办法 方法
  • 广工人福利,openwrt+gduth3c通过inode认证,妈妈再也不用担心我要用电脑开wifi了

    刚开校园网的时候 天天都只能用电脑开wifi 用类似于360wifi 猎豹wifi之类的软件要经常开着电脑 而且电脑网卡发射功率又小 上个厕所wifi就断了 睡觉前在床上还没wifi用 超级不爽 于是从家里面拿来了放在自己房间挂迅雷百度云的
  • x86下的C函数调用惯例

    1 从汇编到C 1 1 汇编语言的局限性 汇编语言是一种符号化了的机器语言 machine code 即用指令助记符 符号地址 标号等符号书写程序的语言 汇编语句与机器语句一一对应 它只是把每条指令及数据用便于记忆的符号书写而已 汇编语言

随机推荐

  • 用自己的数据增量训练预训练语言模型

    预训练模型给各类NLP任务的性能带来了巨大的提升 预训练模型通常是在通用领域的大规模文本上进行训练的 而很多场景下 使用预训练语言模型的下游任务是某些特定场景 如金融 法律等 这是如果可以用这些垂直领域的语料继续训练原始的预训练模型 对于下
  • spring配置文件解读——applicationContext.xml

    spring的配置文件 applicationContext xml 听着晴天看星晴的博客 CSDN博客
  • binutils internal struct

    http fossies org dox binutils 2 23 2 structelf internal sym html dl iterate phdr REPAIR RAX inline hook
  • [动态规划] leetcode 416. 分割等和子集

    问题描述 分割等和子集 给你一个只包含正整数的非空数组 nums 请你判断是否可以将这个数组分割成两个子集 使得两个子集的元素和相等 例子 输入nums 1 5 11 5 输出true 动态规划求解 这是一个0 1背包问题的变种 也就是每种
  • Idea工具使用经典总结

    安装教程 下载地址 https www jetbrains com idea download section windows 准备idea ideaIU 2017 2 3 exe 软件与激活包 JetbrainsCrack 2 6 9 r
  • 设备节点如何与设备驱动关联

    1 上层应用如何调用设备驱动 1 在linux中一切皆是文件 设备驱动程序对上层应用程序来说和普通文件没什么差异 2 上层应用程序通过设备节点来访问驱动程序 在驱动程序注册到内核后 用申请到的主次设备号来创建设备节点 2 向内核注册字符驱动
  • 【已解决】Error: Unable to access jarfile .\xxxx.jar

    报错类型 Error Unable to access jarfile xxxx jar 复现工具的时候 通过命令 java jar xxxx jar 运行 jar 包报了这个错误 报错原因是 在命令行中出现的路径下找不到 xxxx jar
  • micro-app在vue-element-admin中一些使用研究

    1 简述 本文承接上一篇micro app在vue element admi中的搭建 对micro app在vue element admin中的一些平时开发中常用的功能做了一些研究 本文代码 2 路由 关于路由 这边从两方面进行研究 一方
  • ass字幕格式

    ssa ass字幕格式全解析 内容 一 概述 二 文件各个部分解析 三 各种类型的行 四 Script Info 部分的标题行 五 v4 Styles 部分的风格行Style 六 Events 事件部分的对话行Dialogue 七 Even
  • 高通功耗调试18之Tsensor中断频繁触发导致低温下待机功耗高的问题

    问题背景 在内核4 9及之后的版本 低于5C环境温度下待机 由于触发了Tsensor的低温保护机制 可能会遇到较频繁 的tsens中断 11 22 07 12 27 914969 0 0 W GICv3 gic show resume ir
  • [echarts]柱状图的点击事件

    先来一段简洁的写echarts图表的代码 这样获取echarts的dom节点是因为 如果将柱状图封装成了一个组件 在一个页面中多次使用 若还是按常规获取dom节点 会报一个警告 let charts echarts getInstanceB
  • Linux驱动开发(应用程序如何调用驱动)

    1 添加读写接口 1 在应用代码中 2 在驱动代码中 2 应用和驱动之间的数据交换 1 copy from user 用来将数据从用户空间复制到内核空间 2 copy to user 用来将数据从内核空间复制到用户空间 3 write和re
  • DAPM之一:概述

    DAPM Dynamic Audio Power Management 对应结构体是snd soc dapm widget和snd soc dapm route 对应的操作函数是snd soc dapm new controls snd s
  • C++对象模型和this指针

    C 对象模型和this指针 成员变量和成员函数分开存储 在C 中 类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 include
  • 逐梦C++补遗篇之一:cout与cerr的区分

    逐梦C 补遗篇之一 cout与cerr的区分 1 从定义看区别 cout 标准输出流 带缓冲 默认输出目的地为屏幕 可以被重定向 cerr 标准错误输出 不带缓冲 输出目的地为屏幕 一般不被重定向 缓冲 带缓冲 就是系统会为你分配一个缓冲区
  • 精彩观点一览

    7月20日下午 大模型的发展路径论坛于北京成功举办 大模型的发展路径论坛作为2023中国互联网大会的分论坛之一 由中国互联网协会人工智能工作委员会承办 中国信通院云计算与大数据研究所 华为云大数据与AI业务协办 并得到阿里云 北京智源研究院
  • 理解什么是 JMM

    理解什么是 JMM 本文已收录至 GitHub https github com yifanzheng java notes Java 虚拟机是一个完整的计算机的一个模型 因此这个模型自然也包含一个内存模型 Java 内存模型 也就是说 J
  • 最短路算法——Dijkstra

    Dijkstra 在大多数最短路径问题中 Dijkstra 算法是最常用 效率最高的 它是一种 单源 最短路径算法 一次计算能得到从一个起点 s 到其他所有点的最短距离长度 最短路径的途径点 一 Dijkstra的算法思想 Dijkstra
  • Upload LABS Pass-6

    第六关在后端使用了黑名单 并过滤了大小写和点 但未过滤空格 我们使用代理抓包在后缀名中添加空格 即可绕过黑名单 准备一个 6 php 文件 内容为一句话木马 上传 6 php 文件 并开启代理 此处使用 Burp Suite 拦截请求 在文
  • python旋转矩阵_python将四元数变换为旋转矩阵

    import numpy as np from autolab core import RigidTransform 写上用四元数表示的orientation和xyz表示的position orientation y 0 697127881