I am compiling Drake from source to use Gurobi.
I am able to have bilinear non-convex quadratic costs due to it being supported in Gurobi 9.0: https://www.gurobi.com/wp-content/uploads/2019/12/Gurobi-9.0-Overview-Webinar-Slides-1.pdf
However, I cannot have bilinear constraints, even though it is supposed to be supported.
def cross_prod_2d(vec1, vec2):
a, b, c = vec1[0], 0., vec1[1]
d, e, f = vec2[0], 0., vec2[1]
return -(a*f - c*d)
net_torque += cross_prod_2d(lever_arm, signed_contact_force)
net_torque_slack = prog.NewContinuousVariables(1)
prog.AddConstraint(np.asscalar(net_torque_slack) >= net_torque)
ValueError: GurobiSolver is unable to solve because a GenericConstraint was declared but is not supported.
Is the binding just not available? Can we make it available?