Open hongkai-dai opened 2 years ago
For approach 1, one question is how to compute the binary variable values from q
. We have two ideas
q
, then in GlobalInverseKinematics, add constraints to lock each rotation/position variable to that pose, and then solve the global IK to find the binary variables. I think solving this problem should be quick, since each rotation matrix uniquely determines the binary variable values.I'll report the most interesting results of my experiments here using homecart (bimanual) as a benchmark.
I implemented a SetInitialGuess(q)
which calls gurobi with constraints assigning the translation and rotation variables to solve for the integer variables, and then set the solution of that program as an initial guess for the normal problem. For a global IK that has only a posture cost (+ joint limits from the constructor) with the default options, on this machine the solve times are:
That's pretty encouraging. Note that no nonlinear IK program was required for this particular experiment.
The gurobi solve inside SetInitialGuess takes ~ 0.18 seconds.
We consider to combine GlobalInverseKinematics (which solves a mixed-integer program) with nonlinear IK in two ways
q
. We can then solve global IK starting from this binary variable values.