This is intended to be called through a boost::bind.  Using boost::bind with references requires boost::ref() or boost::cref() to pass by value.  For const parameters forgetting boost::cref() just means inefficiency.  For non-const parameters forgetting boost::ref() would mean incorrect behavior with no compiler warning.  I prefer to leave these all as pointers for this reason.

The return value I could be convinced to change.  But this function is intended to be callable through the LockedRobotState::modifyState() function, and that takes a function object with void return.  I could make that function return a bool, but it was unclear to me what a bool return value should mean.  Does it mean the function failed to set the state?  Or (as when using setStateFromIK) does it mean it succeeded in setting the state but the state is somehow invalid?  

Do you think the LockedRobotState::modifyState() method should have a return value?  If so,  what comment would you use to describe the meaning of the return value (it would be the same as the return value of RobotInteraction::updateState() and GenericInteraction's ProcessFeedbackFn callback -- what comment would you use to describe those return values?)