Isaac Sim知识小解(4):Transformation

1. 三维刚体的空间表示

假设空间中的一个物体是刚体。换句话来说,这个物体在空间中不会因为任何的力的作用而产生任何的形变,这使得我们可以简单地将这个物体拆分成两个部分,一个是物体的形状信息,一个是物体的位置信息

形状信息 :在 Isaac Sim 里面通常以 Prim 进行表示,并且以 Mesh 的方式进行储存,即一些通过一系列的点,以及一些多元组表示的面组成的信息。

作为一个例子,在大多数的 Mesh 中,面均以三角形存储,如一个 Mesh 可以被表示为 [(0, 0, 0), (1, 1, 0), (1, 1, 1)] 以及 [(0, 1, 2)] 来表示,前者表示这个 Mesh 的三个顶点在空间中的坐标,而后者则表示仅存在一个面,这个面由序号 0, 1, 2 的三个顶点组成。

位置信息 :通过两个变量来组成,即 position 和 orientation。

  • 平移

  • 旋转:欧拉角、旋转矩阵、四元数

对于四元数,在 Isaac Sim 中,默认使用的是 scalar_first 的形式,也就是 [w, x, y, z] 的形式,而我们最常使用的旋转库,scipy.spatial.transform.Rotation 默认使用的是 vector_first 的形式,也就是 [x, y, z, w] 的形式。

博客:欧拉角、quat四元组和旋转矩阵的关系

2. World Frame

  • World Frame

一般来说,任何一个坐标系都可以通过关于另一个坐标系的平移和旋转来表示。事实上这种通过相对关系来进行的表示并不方便,而是存在一个绝对的基准,这样只维护不同坐标系相对于这个绝对的基准的变换关系。

这里合理的,因此给出定义,World Frame,为世界坐标系,是某个空间内绝对的静止的坐标系。

在 Isaac Sim 中,我们认为 Root,即 get_prim_at_path("/") 所获得的 Prim 表示的坐标系为世界坐标系

  • Local Frame

同时,我们也存在另一种需求,诸如我们想要将一个 Camera 和 Franka hand 进行固连,即让 Camera 随着 Franka hand 而运动,似乎我们只能定义一个 Camera 相对于 Franka hand 的变换,从而使得这个变换为固定值。实际中,我们只需要将 Camera 放置在 Franka hand 的 prim_path 下方,就可以确保 franka hand 在变换的过程中使得 Camera 一起变换。

因此在计算 World Frame 的变换的过程中,事实上是通过链式进行传播,将若干 Local Frame 的变换组合在一起而得到的。

3. Isaac Sim 的 API

Isaac Sim 在提供了仿真平台的同时,大概还是给出了一些比较不错的接口的,即之前事实上提到过的,Isaac Sim XFormPrim。在这里给出程序示例:

python 复制代码
from omni.isaac.core.prims import XFormPrim
from scipy.spatial.transform import Rotation as R

object_xform = XFormPrim("/World/object")
position, orientation = object_xform.get_world_pose()

position[2] += 2.0

orientation_R = R.from_quat(orientation[[1, 2, 3, 0]]) * R.from_euler("xyz", np.array([90,0,0]), degrees=True)
orientation = orientation_R.as_quat()[[3, 0, 1, 2]]

object_xform.set_world_pose(position=position, orientation=orientation)
相关推荐
某林2121 小时前
从 Isaac Lab API 踩坑到硬件 MVP 的全链路实战破局
python·机器人·人机交互·ros2
Deepoch1 小时前
VLA多模态架构赋能无人机 拓展全域智能巡检应用
人工智能·机器人·无人机·具身模型·deepoc
工业机器人销售服务1 小时前
法奥精密治具底座自动找平打磨,统一平面精度,保障工装定位稳定性
机器人·自动化
「、皓子~1 小时前
海狸IM 2.0 开放能力说明:OAuth2 接入与群推送机器人
人工智能·架构·electron·机器人·开源·交友·im
大鱼>2 小时前
ROS2+AIoT:机器人操作系统的物联网化演进
物联网·机器人
百度智能云技术站3 小时前
上海交大 × 百度百舸,新型异步 WAM 模型破解机器人落地难题
机器人
ZacMa4 小时前
kuka机器人时间同步
机器人
jinxindeep4 小时前
ω-EVA:基于隐变量交互式世界模型的机器人动作生成新范式(星源智)
人工智能·机器人
格兰芬多呼神护卫4 小时前
人形机器人系统架构与调度—笔记2
机器人