Hi, On Tue, Oct 12, 2010 at 11:08 AM, Andrew Mor wrote: > Could you explain the calling order for the four different propagate* > functions when running with gazebo?  What calls which functions when? The simulation creates TWO copies of the transmissions. The "real" ones and "fake" ones which translate the actuator values back into joint values. I've illustrated the full picture here: http://www.ros.org/wiki/pr2_mechanism_model?action=AttachFile&do=get&target=mechanism_model.png In simulation, the calls happen like this: 1. Gazebo writes joint state (position, velocity, ...) into the fake joints. 2. FakeTransmissions.propagatePositionBackwards() translates fake joint states into actuator states 3. RealTransmissions.propagatePosition() translates actuator states into joint states 4. Controllers read the joint states and write joint efforts 5. RealTransmissions.propagateEffort() translates joint efforts into actuator efforts 6. FakeTransmissions.propagateEffortBackwards() translates actuator efforts into fake joint efforts 7. Gazebo applies the fake joint efforts. Yes, we are "needlessly" translating joints->actuators->joints when we could skip that step. We do the translation so that the transmissions get tested out in simulation. By simulating the hardware interface we match code that runs in simulation more closely to the code that runs on the robot and increase the likelihood of finding bugs in simulation. -Stu > > Thanks > > Andrew > > On Tue, Oct 12, 2010 at 1:57 PM, Stuart Glaser > wrote: >> >> Hi Andrew, >> >> Yes, a custom transmission sounds like exactly what you need.  There >> shouldn't be any non-obvious tricks; just work off the simple >> transmission and the wrist transmission and you should be fine. >> >> -Stu >> >> On Tue, Oct 12, 2010 at 7:45 AM, Andrew Mor wrote: >> > I'm looking to simulate two joints in a finger actuated by a single >> > motor, >> > where the outer link rotates at a different rate than the inner link. >> > It >> > looks like a custom transmission is the best method for doing this.  Is >> > this >> > correct, and if so, are there any non-obvious tricks for coding up a >> > custom >> > transmission?  I've looked through the 3 transmissions in >> > pr2_mechanism_model. >> > >> > Thanks >> > >> > Andrew Mor >> > >> > _______________________________________________ >> > ros-users mailing list >> > ros-users@code.ros.org >> > https://code.ros.org/mailman/listinfo/ros-users >> > >> > >> >> >> >> -- >> Stuart Glaser >> sglaser -at- willowgarage -dot- com >> www.willowgarage.com >> _______________________________________________ >> ros-users mailing list >> ros-users@code.ros.org >> https://code.ros.org/mailman/listinfo/ros-users > > > _______________________________________________ > ros-users mailing list > ros-users@code.ros.org > https://code.ros.org/mailman/listinfo/ros-users > > -- Stuart Glaser sglaser -at- willowgarage -dot- com www.willowgarage.com