未强制执行棱柱关节限制

PrismaticJoint limits not enforced

我正在创建一个主体系统,该系统具有与 PrismaticJoints 连接的径向扩展主体,并发现尽管我用关节位置限制初始化了每个关节,但由于重力等外力,关节很容易超过这些限制。这是一个图表,显示了一些关节随时间的平移,以显示它们如何通过 3.5 和 4.2 的下限和上限:

我错过了什么?我创建关节的调用如下所示:

const multibody::Joint<double>& joint = plant_->AddJoint<drake::multibody::PrismaticJoint>(
        shpere_name + "_joint",
        center_body, std::nullopt,
        connect_body, std::nullopt,
        unitVlist()[j], r_low, r_upp, 0);

哪里

目前 Drake 中的关节限制仅由离散求解器强制执行,也就是说,如果您在 MultibodyPlant 构造函数中提供时间步长,您将得到什么。我们的持续集成商还没有看到极限。我们知道这一点,但我实际上找不到抱怨它的 GitHub 问题——你介意提交一个吗?你可以做到 here (select "New Issue").