这是阅读本文后的后续内容:
我想知道如何改变网格的几何形状,以实现感知和插图角色。有人提到,可以更深入地了解
SceneGraph
对象并操纵对象。
但是,我无法找到适当的 API 调用来检索和设置几何图形。
在我正在处理的示例中,我想更新链接的网格作为多体植物的一部分。
更具体地说,我有一个与代表粗糙地形的网格的固定链接。我想可视化网格上每个顶点的某种任意变化并移动它们。 (有点类似于可变形体,但明确地移动点而不是涉及力)
上下文旁注: 这些是我集成土壤模拟器进行地形力学模拟的早期步骤。
我是 Drake 新手用户,感谢您的帮助和支持。
我加载了带有
.dae
网格文件的 SDF 模型,并成功创建了正确的计划和场景。然而,我不知道如何在模拟运行时更改网格。
因此,您唯一的办法就是重新定义与几何图形关联的shape。我们目前没有任何机制可以扰乱特定的顶点位置。工作流程看起来像这样:
Mesh
形状添加到 SceneGraph
。您需要它的 GeometryId
和(当前)使用的 SourceId
。最有可能的是,如果您从 sdf/urdf 文件解析它,它会使用 MultibodyPlant
的源 ID (MultibodyPlant::get_source_id()
) 进行注册。ground1.obj
。SceneGraph::ChangeShape()
通行证,您提供引用 Mesh
的 ground1.obj
。
ChangeShape()
版本的第一个参数是您当前的 Context
。就是这样。这很麻烦(必须转到磁盘),但是目前,这是我们更改几何图形的唯一机制。幸运的是,
MultibodyPlant
对身体的视觉(插图/感知)表示不敏感,因此它不会干扰这些动作。