You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取可变形体与刚体交互时的ContactResults对象?

获取可变形体与刚体交互的ContactResults对象

你遇到的问题是因为MultibodyPlant的ContactResults输出端口仅负责刚体间的接触数据,可变形体的接触信息由DeformablePlant单独管理,报错里的GeometryId属于可变形体的几何实体,MultibodyPlant并未注册它,所以会抛出识别失败的错误。

要获取可变形体和刚体交互的ContactResults,需要从DeformablePlant的输出端口读取,具体步骤如下:

  • 从MultibodyPlant中获取已注册的DeformablePlant实例
  • 调用DeformablePlant的contact_results_output_port()来获取包含可变形体接触数据的结果

修改后的代码示例:

// 从MultibodyPlant中获取DeformablePlant子系统
const auto& deformable_plant = plant.GetSubsystemByName<drake::multibody::DeformablePlant<double>>("DeformablePlant");
// 评估DeformablePlant的接触结果输出端口
const auto& contact_results = deformable_plant.contact_results_output_port().Eval<drake::multibody::ContactResults<double>>(plant_context);

这样就能正确获取可变形体与刚体交互时的ContactResults对象,不会再出现GeometryId未识别的错误。

内容的提问来源于stack exchange,提问作者Mark Van der Merwe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 06:58:39