Skip to content

Commit

Permalink
Fix RobotLocomotion#13 by syncing frames within Atlas.
Browse files Browse the repository at this point in the history
The problem was that `pdcontrol` looks for the state frame of the
`RigidBodyManipulator` in the output frame of the
`TimeSteppingRigidBodyManipulator`. Since `Atlas` resets it's state, input, and
output frames to Atlas specific versions, that lookup failed. I've resolved
this by having the `Atlas` constructor reset the state, input, and output
frames of the `RigidBodyManipulator` as well.

Note: This setup will need some tweaking when we want to add sensors to `Atlas`
objects. The approach we've used up to this point (resetting frames with
Atlas specific ones) will clobber the changes made to those frames by the
addition of the sensor. I'll create an issue for this.
  • Loading branch information
avalenzu committed Jan 30, 2014
1 parent e1a7960 commit 97e2a50
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions examples/Atlas/Atlas.m
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,12 @@
state_frame = AtlasState(obj);
obj = obj.setStateFrame(state_frame);
obj = obj.setOutputFrame(state_frame);
obj.manip = obj.manip.setStateFrame(state_frame);
obj.manip = obj.manip.setOutputFrame(state_frame);

input_frame = AtlasInput(obj);
obj = obj.setInputFrame(input_frame);
obj.manip = obj.manip.setInputFrame(input_frame);
end

function obj = setInitialState(obj,x0)
Expand Down

0 comments on commit 97e2a50

Please sign in to comment.