当前位置: 首页 > news >正文

在Isaac-sim中弧度转四元数以及四元数转弧度的问题

问题:

在Isaac-sim中如果采用set_world_pose()和get_world_pose()得到的都是四元数,如何将弧度转四元数,或者将四元数转为弧度是需要解决的一个问题,
这里的弧度是以x轴为0度,y轴为90度,逆时针方向逐渐增大;

解决方案:

采用scipy.spatial.transform中的Rotation库,进行转换;
在转换的时候涉及到角度的变换,
即如果直接采用Rotation.from_euler(‘x’, angle_rad2, degrees=False)进行转换,得到的是以x轴负方向为0度,y轴为90度,顺时针方向逐渐增大;
因此需要在rad_to_quaternion函数中通过angle_rad2 = -angle_rad + math.pi方法进行转换,同样的在quaternion_to_angle函数中通过angle_rad = -angle_rad + math.pi将转换回来。

import math
from scipy.spatial.transform import Rotation
import torchdef rad_to_quaternion(angle_rad):if angle_rad > math.pi:angle_rad -= 2 * math.pielif angle_rad < -math.pi:angle_rad += 2 * math.piangle_rad2 = -angle_rad + math.pirotation = Rotation.from_euler('x', angle_rad2, degrees=False)# print("rotation.as_quat()=%s" % (str(rotation.as_quat())))quaternion = rotation.as_quat()[:]  # 将旋转矩阵转换为四元数return quaternion, angle_rad, angle_rad2def quaternion_to_angle(quaternion):rotation = Rotation.from_quat(quaternion)euler_angles = rotation.as_euler('xyz')angle_rad = euler_angles[0]angle_rad = -angle_rad + math.piif angle_rad > math.pi:angle_rad -= 2 * math.pielif angle_rad < -math.pi:angle_rad += 2 * math.pireturn angle_radfor i in range(361):rad = math.radians(i)quaternion, rad_ori, rad_new = rad_to_quaternion(rad)rad_bak = quaternion_to_angle(quaternion)theta0 = math.degrees(rad_ori)theta1 = math.degrees(rad_new)theta2 = math.degrees(rad_bak)print("原始角度为%s,经过变换后角度为%s,转换后的角度为%s"%(str(round(theta0)), str(round(theta1)), str(round(theta2))))# rad_new = math.floor(rad_new * 10000) / 10000# rad_bak = math.floor(rad_bak * 10000) / 10000# if rad_new != rad_bak:#     print("出错了rad_new=%s, rad_bak=%s"%(str(rad_new), str(rad_bak)))# print("rad=%.4f, rad_bak=%.4f"%(rad, rad_bak))

相关文章:

在Isaac-sim中弧度转四元数以及四元数转弧度的问题

问题&#xff1a; 在Isaac-sim中如果采用set_world_pose()和get_world_pose()得到的都是四元数&#xff0c;如何将弧度转四元数&#xff0c;或者将四元数转为弧度是需要解决的一个问题&#xff0c; 这里的弧度是以x轴为0度&#xff0c;y轴为90度&#xff0c;逆时针方向逐渐增大…...

【计算机网络】高级IO模型

高级IO模型 一、 理解 IO二、认识五种高级 IO 模型1. 阻塞 IO2. 非阻塞IO3. 信号驱动 IO4. IO 多路转接5. 异步 IO 三、高级 IO 重要概念1. 阻塞和非阻塞2. 同步通信和异步通信 四、非阻塞 IOfcntl 一、 理解 IO 当我们调用系统接口 write、read 的时候&#xff0c;本质是把数…...

LabVIEW电动汽车直流充电桩监控系统

LabVIEW电动汽车直流充电桩监控系统 随着电动汽车的普及&#xff0c;充电桩的安全运行成为重要议题。通过集成传感器监测、单片机技术与LabVIEW开发平台&#xff0c;设计了一套电动汽车直流充电桩监控系统&#xff0c;能实时监测充电桩的温度、电压和电流&#xff0c;并进行数…...

前端学习<二>CSS基础——08-CSS属性:定位属性

CSS的定位属性有三种&#xff0c;分别是绝对定位、相对定位、固定定位。 position: absolute; <!-- 绝对定位 -->​position: relative; <!-- 相对定位 -->​position: fixed; <!-- 固定定位 -->​ 下面逐一介绍。 相对定位 相对定位&#xff1a;让…...

88. 合并两个有序数组(javascript)

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a;最终&#xff0c;合并后数组…...

机器学习_集成学习_梯度提升_回归_决策树_XGBoost相关概念

目录 1. 机器学习 使用监督吗&#xff1f;什么又是监督学习&#xff1f; 2. 与XGBoost 类似的机器学习方法有哪些&#xff1f; 3. 随机森林方法 和 梯度提升方法 有什么区别&#xff1f; 分别应用于什么场景&#xff1f; 4. 决策树回归方法 和 Gradient Boosting类回归方法…...

ABAP 字段类型不一样导致相加之后金额错误

文章目录 ABAP 字段类型不一样导致相加之后金额错误写在前面的总结示例程序1汇总MSEG表和MLDOC表 ABAP 字段类型不一样导致相加之后金额错误 写在前面的总结 如果需要不同底表的字段相加的值&#xff0c;那么最好是根据条件去分别算出那些值放在临时内表里面&#xff0c;再去…...

【L1距离和L2距离】Manhattan Distance Euclidean Distance 解释和计算公式

距离度量 特征空间中两个实例点的距离可以反映出两个实力点之间的相似性程度&#xff0c;使用的距离可以是欧式距离&#xff0c;也可以是其他距离。 欧氏距离(L2距离)&#xff1a;最常见的两点之间或多点之间的距离表示法&#xff0c;又称之为欧几里得度量&#xff0c;它定义于…...

自动发卡平台源码优化版,支持个人免签支付

源码下载地址&#xff1a;自动发卡平台源码优化版.zip 环境要求&#xff1a; php 8.0 v1.2.6◂ 1.修复店铺共享连接时异常问题 2024-03-13 23:54:20 v1.2.5 1.[新增]用户界面硬币增款扣款操作 2.[新增]前台对接库存信息显示 3.[新增]文件缓存工具类[FileCache] 4.[新增]库存同…...

如何使用固定公网地址远程连接Python编译器并将运行结果返回到Pycharm

文章目录 一、前期准备1. 检查IDE版本是否支持2. 服务器需要开通SSH服务 二、Pycharm本地链接服务器测试1. 配置服务器python解释器 三、使用内网穿透实现异地链接服务器开发1. 服务器安装Cpolar2. 创建远程连接公网地址 四、使用固定TCP地址远程开发 本文主要介绍如何使用Pych…...

Java设计模式—备忘录模式(快照模式)

定义 备忘录模式提供了一种状态恢复的实现机制&#xff0c;使得用户可以方便地回到一个特定的历史步骤&#xff0c;当新的状态无效或者存在问题时&#xff0c;可以使用暂时存储起来的备忘录将状态复原&#xff0c;很多软件都提供了撤销&#xff08;Undo&#xff09;操作&#…...

没学数模电可以玩单片机吗?

我们首先来看一下数电模电在单片机中的应用。数电知识在单片机中主要解决各种数字信号的处理、运算&#xff0c;如数制转换、数据运算等。模电知识在单片机中主要解决各种模拟信号的处理问题&#xff0c;如采集光照强度、声音的分贝、温度等模拟信号。而数电、模电的相互转换就…...

FlinkSQL之Flink SQL Join二三事

​ Flink SQL支持对动态表进行复杂而灵活的连接操作。 为了处理不同的场景&#xff0c;需要多种查询语义&#xff0c;因此有几种不同类型的 Join。默认情况下&#xff0c;joins 的顺序是没有优化的。表的 join 顺序是在 FROM 从句指定的。可以通过把更新频率最低的表放在第一个…...

某某消消乐增加步数漏洞分析

一、漏洞简介 1&#xff09; 漏洞所属游戏名及基本介绍&#xff1a;某某消消乐&#xff0c;三消游戏&#xff0c;类似爱消除。 2&#xff09; 漏洞对应游戏版本及平台&#xff1a;某某消消乐Android 1.22.22。 3&#xff09; 漏洞功能&#xff1a;增加游戏步数。 4&#xf…...

SpringBoot动态数据源实现

一、背景 一个应用难免需要连接多个数据库&#xff0c;像我们系统起码连接了5个以上数据库&#xff0c;AWS RDS主库&#xff0c;ECS自搭MySQL从库&#xff0c;工厂系统三个SQLServer数据库&#xff0c;在线网站MySQL数据库&#xff0c;记得很早以前是用SessionFactory配置&…...

计算机网络常见题(持续更新中~)

1 描述一下HTTP和HTTPS的区别 2 Cookie和Session有什么区别 3 如果没有Cookie,Session还能进行身份验证吗&#xff1f; 4 BOI,NIO,AIO分别是什么 5 Netty的线程模型是怎么样的 6 Netty是什么&#xff1f;和Tomcat有什么区别&#xff0c;特点是什么&#xff1f; 7 TCP的三次…...

富格林:可信招数揭发防备暗箱陷阱

富格林悉知&#xff0c;在风云变幻的金融市场中&#xff0c;炒贵金属是一项具有高收益潜力的投资方式。但投资是风险与收益共存的&#xff0c;因此我们在做单投资过程中需总结可信招数揭发暗箱陷阱&#xff0c;防备受害亏损。以下总结几点可信的投资技巧&#xff0c;希望能够帮…...

获取高德安全码SHA1

高德开发者平台上给的三种方法 获取安全码SHA1&#xff0c;这里我自己使用的是第三种方法。 1、通过Eclipse编译器获取SHA1 使用 adt 22 以上版本&#xff0c;可以在 eclipse 中直接查看。 Windows&#xff1a;依次在 eclipse 中打开 Window -> Preferances -> Androi…...

关于RPC

初识RPC RPC VS REST HTTP Dubbo Dubbo 特性&#xff1a; 基于接口动态代理的远程方法调用 Dubbo对开发者屏蔽了底层的调用细节&#xff0c;在实际代码中调用远程服务就像调用一个本地接口类一样方便。这个功能和Fegin很类似&#xff0c;但是Dubbo用起来比Fegin还要简单很多&a…...

pulsar: kafka on pulsar之把pulsar当kafka用

一、下载协议包&#xff08;要和pulsar版本比较一致&#xff09; https://github.com/streamnative/kop/releases?q2.8.0&expandedtrue二、在pulsar的根目录创建一个protocols目录&#xff0c;将上述包放到这个目录里 三、编辑broker.conf(如果是集群)或者standalone.con…...

DeOldify性能基准测试:不同GPU配置下的处理速度对比

DeOldify性能基准测试&#xff1a;不同GPU配置下的处理速度对比 最近在折腾老照片修复&#xff0c;用上了DeOldify这个工具。效果确实惊艳&#xff0c;能把黑白照片变得色彩鲜活。但有个问题一直困扰我&#xff1a;处理速度。一张照片等几分钟还能接受&#xff0c;要是批量处理…...

【05-log-+-diff:看懂你改了什么、历史是什么】

第五篇&#xff1a;log diff&#xff1a;看懂你改了什么、历史是什么会提交只是第一步&#xff0c;会"读"历史才是真的用上了 Git。这篇教你把 log 和 diff 玩出花来。git log&#xff1a;查看提交历史 git log默认输出太详细&#xff0c;通常用这些参数来精简&…...

TranslucentTB 架构深度解析:Windows 任务栏透明化技术实现与工程化实践

TranslucentTB 架构深度解析&#xff1a;Windows 任务栏透明化技术实现与工程化实践 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB Tran…...

告别手动记录:清音听真语音识别系统快速部署,中英文混合转录一键搞定

告别手动记录&#xff1a;清音听真语音识别系统快速部署&#xff0c;中英文混合转录一键搞定 1. 系统概述与核心优势 清音听真语音识别系统搭载了Qwen3-ASR-1.7B旗舰引擎&#xff0c;是专为复杂语音场景设计的高精度转录解决方案。相比前代0.6B版本&#xff0c;1.7B参数模型在…...

PlugY终极指南:暗黑破坏神2单机模式完全解放方案

PlugY终极指南&#xff1a;暗黑破坏神2单机模式完全解放方案 【免费下载链接】PlugY PlugY, The Survival Kit - Plug-in for Diablo II Lord of Destruction 项目地址: https://gitcode.com/gh_mirrors/pl/PlugY 还在为暗黑破坏神2单机模式的储物箱空间不足而烦恼吗&am…...

2026 年电子邮件认证部署缺陷与安全风险治理研究

摘要 电子邮件作为网络攻击最主要入口&#xff0c;域名伪造与商业邮件欺诈&#xff08;BEC&#xff09;持续威胁机构安全。SPF、DKIM、DMARC 作为抵御邮件伪造的核心协议已提出十余年&#xff0c;但大量组织仍存在认知不足、配置错误、长期停留在监控模式等问题&#xff0c;导致…...

深度学习篇---全局平均池化(Global Average Pooling, GAP)

全局平均池化是深度学习中一个优雅而强大的操作&#xff0c;它通过极简的设计解决了全连接层参数量爆炸的问题&#xff0c;同时增强了模型的泛化能力。 一、什么是全局平均池化&#xff1f; 1. 基本定义 全局平均池化是对每个特征通道的所有空间位置取平均值&#xff0c;将三…...

Graphormer一键部署与运维监控实战

Graphormer一键部署与运维监控实战 1. 企业级AI模型运维挑战 在AI技术快速落地的今天&#xff0c;Graphormer作为图神经网络领域的先进模型&#xff0c;已经在推荐系统、分子属性预测等场景展现出强大能力。但很多企业在实际部署后常常面临运维难题&#xff1a;服务突然崩溃找…...

FLUX.1-dev像素生成模型部署教程:免配置镜像快速搭建像素艺术创作环境

FLUX.1-dev像素生成模型部署教程&#xff1a;免配置镜像快速搭建像素艺术创作环境 1. 像素幻梦工坊简介 Pixel Dream Workshop&#xff08;像素幻梦工坊&#xff09;是基于FLUX.1-dev扩散模型构建的专业像素艺术生成工具。它采用独特的16-bit像素风格界面设计&#xff0c;为创…...

OpenClaw自动化视频处理:Qwen2.5-VL-7B分析关键帧生成视频摘要

OpenClaw自动化视频处理&#xff1a;Qwen2.5-VL-7B分析关键帧生成视频摘要 1. 为什么需要自动化视频摘要 作为一个经常需要处理大量视频素材的自媒体创作者&#xff0c;我长期被一个痛点困扰&#xff1a;如何快速了解长视频的核心内容。传统方法要么是手动拖动进度条随机查看…...