p_WC与p_WCa、p_WCb区别及静平衡力矩计算适用接触点咨询
接触点含义与静平衡力矩计算解答
前置定义
PenetrationAsPointPair模式下生成的接触点对是碰撞检测阶段输出的、两个未形变刚体上的最深穿透点:
- p_WCa:世界坐标系下,蓝色刚体(物体A)碰撞几何上的接触点,是属于物体A的固有几何点
- p_WCb:世界坐标系下,绿色刚体(物体B)碰撞几何上的接触点,是属于物体B的固有几何点
contact_point()返回的p_WC含义
Drake接触结果API中,contact_results.point_pair_contact_info(cidx).contact_point()返回的p_WC是点对碰撞的公共接触参考点,默认取p_WCa和p_WCb的中点,仅作为接触位置的通用展示/计算参考,不直接对应任何一个刚体上的实际受力作用点,不适合直接用于单刚体的力矩计算。
静平衡计算的接触点选择
力矩计算的核心规则是:计算哪个刚体的受力平衡,就选用该刚体上的固有接触点作为力的作用点
- 若计算蓝色刚体A的静平衡:B对A施加的作用力为
F_AB_W,作用点为A上的接触点p_WCa,对A质心的力矩为(p_WCa - p_WcmA).cross(F_AB_W),其中p_WcmA为A的质心在世界坐标系下的坐标 - 若计算绿色刚体B的静平衡:A对B施加的反作用力为
F_BA_W = -F_AB_W,作用点为B上的接触点p_WCb,对B质心的力矩为(p_WCb - p_WcmB).cross(F_BA_W),其中p_WcmB为B的质心在世界坐标系下的坐标
你的判断是正确的:F_AB_W(B对A的作用力)确实和p_WCa直接关联,作为作用在A上的力的作用点。如果需要获取两个刚体各自的接触点,建议调用contact_results.point_pair_contact_info(cidx).point_pair().contact_point_A()和contact_point_B()分别获取p_WCa和p_WCb,不要使用通用参考点p_WC进行力矩计算。
内容的提问来源于stack exchange,提问作者EpsilonGreedy
相关产品推荐
相关产品推荐

