0

我正在努力从碰撞中恢复。我有碰撞中的物体的名称以及与它们关联的框架,现在我想移动更靠近末端执行器的物体/框架以摆脱碰撞,但我找不到一种直接的方法来获取这些信息从一个MultiBodyPlant。我可以构建图表的另一种表示并通过它进行搜索,但我想知道是否有可能从中得到这个drake

问题是有时机器人最终会与自身或环境发生碰撞,我想制定一个恢复它的计划。从 中QueryObject,我能够得到一个vector<SignedDistancePair>给我对象实例碰撞的几何 ID,以及指向碰撞深度增加最快的方向的单位向量然后我使用 aSceneGraphInspector来获取相应的帧 ID,然后使用帧 ID 来让物体发生碰撞 现在我假设只有两个物体发生碰撞 现在我有两个物体发生碰撞,我想找到一个更靠近末端执行器的物体,因此更容易脱离碰撞

4

1 回答 1

1

哇。我认为你是对的,我们没有让这件事变得容易(但我们应该)。

现在,我认为你可以调用MultibodyPlant::GetJointIndices()然后循环关节通过MultibodyPlant::get_joint()找到关节Joint::child_body() == collision_body,然后使用Joint::parent_body()。如果避免(小?)线性搜索变得重要,我们可以打开一个问题吗?

于 2021-06-14T16:07:06.603 回答