Skip to content

踩坑GitHub isaac-sim/IsaacLab5 天前

IsaacLab UsdFrameView读取float3 scale时触发TypeError ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:[Bug] UsdFrameView rejects legal float3 xformOp:scale values(GitHub isaac-sim/IsaacLab #7400)

状态:已解决

问题 ​

在IsaacLab中调用FrameView.get_local_scales()或初始化FabricFrameView时,若USD prim的xformOp:scale属性为Gf.Vec3f或Gf.Vec3h类型,内部_get_local_scales_impl()尝试将其赋值给Vt.Vec3dArray会因缺乏隐式类型转换而抛出TypeError,导致无法获取局部缩放或世界位姿。

环境 ​

IsaacLab commit 5c34c4246f7e263d67191ab7c12a37ed9bf4a73e (develop分支),涉及USD Python bindings与PhysX FabricFrameView初始化路径。

解决办法 ​

  1. 升级IsaacLab至包含PR #7385的版本(main分支或release/3.0.0及以上),该修复已合入并通过回归测试。
  2. 若暂无法升级,需在读取scale属性后显式将Gf.Vec3f或Gf.Vec3h转换为Gf.Vec3d再赋值给Vt.Vec3dArray,避免依赖USD绑定的隐式转换。
  3. 验证修复:对含PrecisionFloat scale的prim创建FrameView并调用get_local_scales(),确认不再抛出TypeError且返回正确FP32结果。

讨论原作者:@NeoZng 等,版权归原作者所有。

来源

本页事实对应的公开页面,以原文为准。

  1. GitHub isaac-sim/IsaacLab #7400:[Bug] UsdFrameView rejects legal float3 xformOp:scale values访问 2026-10-26