RobotLocomotion/drake — pull request #336 by tkoolen (2014-08-20 22:56:52+00:00)
Title: Separate numPositions and numVelocities

Basically the smallest pull request I could manage to produce while still introducing the difference between num_positions and num_velocities and maintaining functionality.

* got rid of Manipulator <-- SecondOrderSystem inheritance
* num_positions, num_velocities in Manipulator
* position_num, velocity_num in RigidBody
* nq/nv, getNumDoF/getNumPositions/getNumVelocities, num_q/num_positions/num_velocities changes throughout
* Manipulator: add vToqdot, qdotToV
* RigidBodyManipulator: add qdotToV, vToqdot
ies throughout in both Matlab and C++
* RBM: compile: compute num_q / num_v
* RBM: update constructStateFrame
* RigidBodyJointSensor: state_mask

warnOnce in Manipulator.getNumDOF and Manipulator.setNumDOF for now. I changed all calls to getNumDOF and setNumDOF in Drake though.

Everything except Manipulator.dynamics still assumes that qd == v, which will of course be fixed in an upcoming pull request. Existing functionality (rpy dynamics) should still work as it used to.

I'm sorry about getting the credit for some of Russ' changes. I had to pull a few commits apart.