改变焊缝姿势

问题描述

我用两个对象构建了一个 MBP,A(焊接到世界)和 B(未焊接)。 B 位于 A 之上。在模拟了一段时间后,我想移除 A(或以其他方式禁用接触)以让 B 开始下降。

看来我应该能够通过 (1) 动态更改碰撞过滤或 (2) 更改焊接接头的姿势来做到这一点。还没有调查 (1),但 (2) 似乎已经结束——似乎没有办法在施工后改变焊缝的姿势。真的?如果是真的,为什么不呢?

解决方法

目前,您可以通过将焊接接头的其中一个框架设为 FixedOffsetFrame 并修改其参数来实现此目的。这是一个带有示例的片段:

// Weld body B to body A and move body B.

// Original transform for the weld between body_A and body_B
math::RigidTransform<double> X_AB(...);

const FixedOffsetFrame<double>& frame_on_A = plant->AddFrame(
    std::make_unique<FixedOffsetFrame<double>>(body_A.body_frame(),X_AB));

plant->WeldFrames(frame_on_A,body_B.body_frame());

// ... create a context and simulate ...

// New transform for the weld between body_A and body_B
math::RigidTransform<double> X_AB_new(...)

frame_on_A.SetPoseInBodyFrame(context,X_AB_new);

我将在 #13520 上工作,通过更改焊接接头本身的参数来使这更方便。

,

我们还没有修改焊接接头姿势的能力。 请参阅问题 #13520

,

也许可以考虑使用 LinearBushingRollPitchYaw 并将平移和旋转刚度/阻尼从刚度值更改为 0。

关于如何选择值来模拟焊缝: https://drake.mit.edu/doxygen_cxx/classdrake_1_1multibody_1_1_linear_bushing_roll_pitch_yaw.html#Basic_bushing_torque_stiffness_and_damping

Joe Masterjohn 可能知道是否有方法举例说明如何对套管进行参数化。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...