如何更新 PositionConstraint 的边界?
how to update bound of PositionConstraint?
我们想加快 IK 求解过程,所以我们想更新 IK 约束的边界,而不是每次求解 IK 问题时都创建约束。
我们注意到 set_bounds()
等 API 可以更新 BoundingBoxConstraint
、LinearConstraint
等中的边界。但是 PositionConstraint
的边界无法更新方式。
这是气馁,还是有一些方法可以更新 PositionConstraint
的边界?
谢谢!
PR #16631 刚刚合并到 Drake 中。现在您可以在 PositionConstraint 中使用 set_bounds、UpdateLowerBound 和 UpdateUpperBound。
PositionConstraint.set_bounds documentation
constraint = ik.PositionConstraint(
plant=variables.plant,
frameA=variables.body1_frame,
p_AQ_lower=[-0.1, -0.2, -0.3],
p_AQ_upper=[-0.05, -0.12, -0.28],
frameB=variables.body2_frame,
p_BQ=[0.2, 0.3, 0.5], plant_context=variables.plant_context)
constraint.UpdateLowerBound(new_lb=np.array([-2, -3, -0.5]))
constraint.UpdateUpperBound(new_ub=np.array([10., 0.5, 2.]))
constraint.set_bounds(new_lb=[-1, -2, -2.], new_ub=[1., 2., 3.])
我们想加快 IK 求解过程,所以我们想更新 IK 约束的边界,而不是每次求解 IK 问题时都创建约束。
我们注意到 set_bounds()
等 API 可以更新 BoundingBoxConstraint
、LinearConstraint
等中的边界。但是 PositionConstraint
的边界无法更新方式。
这是气馁,还是有一些方法可以更新 PositionConstraint
的边界?
谢谢!
PR #16631 刚刚合并到 Drake 中。现在您可以在 PositionConstraint 中使用 set_bounds、UpdateLowerBound 和 UpdateUpperBound。
PositionConstraint.set_bounds documentation
constraint = ik.PositionConstraint(
plant=variables.plant,
frameA=variables.body1_frame,
p_AQ_lower=[-0.1, -0.2, -0.3],
p_AQ_upper=[-0.05, -0.12, -0.28],
frameB=variables.body2_frame,
p_BQ=[0.2, 0.3, 0.5], plant_context=variables.plant_context)
constraint.UpdateLowerBound(new_lb=np.array([-2, -3, -0.5]))
constraint.UpdateUpperBound(new_ub=np.array([10., 0.5, 2.]))
constraint.set_bounds(new_lb=[-1, -2, -2.], new_ub=[1., 2., 3.])