问题四、如何解决模型轴配置问题

问题描述:
举一个简单的例子

资产位置:

  • 未装配叉车:Samples>Rigging>Forklift>forklift_b_unrigged_cm.usd
  • 装配叉车:Samples>Rigging>Forklift>forklift_b_rigged_cm.usd

用openfile打开为配置的forklift_b_unrigged_cm.usd文件
在这里插入图片描述## 1 识别关节
装配机器人的第一步是识别机器人上的关节,包括驱动关节和非驱动关节。关节决定了所有网格组件的组织方式,识别关节类型及其自由度 (DOF) 是确保机器人装配后按预期运动的关键。

对于叉车来说一共有7个关节:

  • 叉车前方有4个较小的滚轮。它们具有非驱动的旋转关节,每个关节都有一个绕单轴旋转的自由度。
    在这里插入图片描述
  • 当叉车的叉子上下移动以拾取堆放的物体时,叉子相对于叉车主体具有线性运动,这意味着叉子和主体之间有一个线性驱动关节。

在这里插入图片描述

  • 后端较大的车轮负责推动叉车并使其转向。与该车轮相关的驱动有两个:
    • 旋转接头使车轮绕其中心轴旋转,从而提供向前和向后的运动。
    • 车轮和叉车车身之间的旋转接头,提供叉车的转动。
      在这里插入图片描述

2 层次结构配置

初始状态查看右侧树结构处于完全被打乱的情况:
在这里插入图片描述
我们将这些mesh归类,放到几个大节点中,方便理解及移动。
分别建立名为bodyliftback_wheelback_wheel_swivelroller_front_rightroller_back_leftroller_back_rightroller_front_left 8个大的Xform类型的节点。每个节点包含的mesh如下:

  • bodyLooks节点到SM_Forklift_BodyGlass_B01_01节点的所有Mesh

  • liftLooks节点之前的所有Mesh

  • back_wheelSM_Forklift_BackWheel_B01_01

  • back_wheel_swivelSM_Forklift_BackWheelbase_B01_01

  • roller_front_rightSM_Forklift_LeadWheelsFrontRight_B01_01

  • roller_back_leftSM_Forklift_LeadWheelsBackLeft_B01_01

  • roller_back_rightSM_Forklift_LeadWheelsBackRight_B01_01

  • roller_front_leftSM_Forklift_LeadWheelsFrontLeft_B01_01
    在这里插入图片描述重点:

  • Translate

    • 表示物体相对于其父级坐标系的位置偏移。
    • 例如:若父级坐标系原点在 (0,0,0),Translate=(1,0,0) 表示物体位于父级坐标系的 (1,0,0) 处。
  • Translate:pivot

    • 定义物体的 局部变换中心(Pivot),即旋转、缩放的基准点。
    • 例如:若 Translate:pivot=(0,0,1),物体将绕其局部坐标的 (0,0,1) 点旋转。
  • Xform 的作用

    • Xform 是一个变换节点,可以组合多个变换操作(平移、旋转、缩放)。
    • 通过创建新的 Xform 并设置其变换,可以重新定义物体的坐标系层级。

所以假设车轮网格(Mesh)的初始属性为:

	Translate = T = (x1, y1, z1)
	Translate:pivot = P = (x2, y2, z2)

步骤 1:合并 Translate 和 Translate:pivot 到新 Xform
新建一个 Xform,其变换应设为 T + P,即:

new_Xform.transform = T + P = (x1+x2, y1+y2, z1+z2)

步骤 2:重置车轮网格的 Translate
将车轮网格的 Translate 设为 -P(即 Translate:pivot 的逆):

mesh.Translate = -P = (-x2, -y2, -z2)

这一步的目的是 抵消 Translate:pivot 的影响,确保车轮几何体的顶点坐标相对于新 Xform 的原点正确。
注:第一步完成后实际上会发现Xform下的网格位置变化,第二步之后网格又回到原来的位置,这样建立joint的时候xform下的所有mesh网格会根据Xform的坐标进行旋转。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值