RobotLocomotion/drake — pull request #593 by rdeits (2014-12-03 23:42:02+00:00)
Title: add a very basic implementation of mixed LCP as an MILP in gurobi

This gurobi lcp implementation can be dropped in as a replacement for pathlcp in TimeSteppingRigidBodyManipulator.m/solveLCP() by changing:

```
z(active) = pathlcp(M(active,active),w(active),lb(active));
```

to

```
z(active) = gurobi_lcp(M(active,active),w(active),lb(active));
```

It's generally anywhere from 2 to 10X slower than pathlcp, and it occasionally takes substantially longer, but it's still interesting to have an alternative available. I've added very basic warm-starting using the previous integer optimal solution, but unfortunately gurobi doesn't support more complex warm-starts for mixed-integer models, as far as I can tell.