多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

机械臂usd如何调整结构、添加属性、创建关节点,从而转urdf

机械臂usd如何调整结构、添加属性、创建关节点,从而转urdf 问题对于这种结构的usd如何创建节点添加碰撞体和刚体属性能否在最高层级xform设置还是要一个一个设置然后要把bas_01下面除了base_02下级的mesh与base_02下面的mesh设置关节该如何设置答可以按“一个运动部件 一个 link”的方式创建。你现在的层级需要先调整Root Xform Articulation Root ├── base_01 Xform Rigid Body │ ├── mesh21 │ ├── mesh22 │ └── 其他属于 base_01 的 Mesh ├── base_02 Xform Rigid Body │ └── base_02 下的 Mesh └── base_03 Xform Rigid Body关键点Root只作为总容器和 Articulation Root通常不要添加 Rigid Body。base_01/base_02/base_03每个 Xform 添加一个 Rigid Body。Mesh每个 Mesh 添加 Collision。可以一次多选同一 link 下的所有 Mesh 批量添加不需要逐个手动操作。不要给每个 Mesh 添加 Rigid Body否则会形成大量相互嵌套的刚体。如果base_02现在位于base_01下面应先把base_02移到Root下成为base_01的兄弟节点并选择保持世界坐标。你描述的“base_01下的 Mesh 与base_02下的 Mesh 设置关节”实际应该是Joint_base01_base02 body0 /Root/base_01 body1 /Root/base_02 type Revolute不要把 Mesh 和 Mesh 直接连接关节。base_01下所有相对固定的 Mesh 都属于同一个 link不需要相互添加关节。关节连接的是两个刚体 Xform。在 Isaac Sim 中大致操作重新整理base_01、base_02、base_03为 Root 的直接子节点。选中每个 link 下的 Mesh执行Physics/Colliders/Add。选中base_01、base_02、base_03分别添加Rigid Body。给Root添加Articulation Root。创建Revolute Joint。设置body0父 link例如base_01body1子 link例如base_02local pose 0/1对齐关节位置axis对齐旋转轴lower/upper limit设置角度范围如果base_01与base_02之间只是固定连接则使用Fixed Joint不要使用 Revolute Joint。最终导出前应检查 URDFlink namebase_01/ link namebase_02/ joint namejoint_base01_base02 typerevolute parent linkbase_01/ child linkbase_02/ /joint你现在的 USD 导出成只有一个Rootlink说明需要先完成上述刚体和关节结构不能只添加碰撞体就解决。
返回列表