Tekkotsu Homepage | Demos | Overview | Downloads | Dev. Resources | Reference | Credits |
HeadPointerMC Class Reference#include <HeadPointerMC.h>
Inheritance diagram for HeadPointerMC:
![]() Detailed DescriptionThis class gives some quick and easy functions to point the head at things.Definition at line 12 of file HeadPointerMC.h.
Constructor & Destructor Documentation
Constructor, defaults to all joints to current value in state (i.e. calls takeSnapshot() automatically).
Definition at line 12 of file HeadPointerMC.cc.
Member Function Documentation
Sets hold - if this is set to false, it will allow a persistent motion to behave the same as a pruned motion, without being pruned.
Definition at line 21 of file HeadPointerMC.h.
sets the target to last sent commands, and dirty to false; essentially freezes motion in place This is very similar to takeSnapshot(), but will do the "right thing" (retain current position) when motion blending is involved. A status event will be generated if/when the joints reach the currently commanded position. Probably should use freezeMotion() if you want to stop a motion underway, but takeSnapshot() if you want to reset/intialize to the current joint positions. Definition at line 22 of file HeadPointerMC.cc.
sets the target joint positions to current sensor values Similar to freezeMotion() when a motion is underway, but only if no other MotionCommands are using neck joints. A status event will not be generated unless a motion was already underway. Probably should use freezeMotion() if you want to stop a motion underway, but takeSnapshot() if you want to reset/intialize to the current joint positions. Definition at line 30 of file HeadPointerMC.cc. Referenced by HeadPointerMC().
Restores maxSpeed to default settings from Config::Motion_Config.
Definition at line 38 of file HeadPointerMC.cc. Referenced by HeadPointerMC().
Sets maxSpeed in rad/sec.
Definition at line 52 of file HeadPointerMC.h.
Returns maxSpeed in rad/sec.
Definition at line 57 of file HeadPointerMC.h.
Sets the weight values for all the neck joints.
Definition at line 59 of file HeadPointerMC.cc. Referenced by HeadPointerMC().
Request a set of neck joint values. Originally this corresponded directly to the neck joints of the aibo, however on other platforms it will use capabilties mapping to try to set correspnding joints if available. (we're not doing kinematics here, trying to set joint values directly. If your want a more generic/abstract interface, use lookAtPoint()/lookInDirection(). Note that for a "pan-tilt" camera, you actually want to set the last two parameters, not the first two!
Definition at line 67 of file HeadPointerMC.cc.
Directly set a single neck joint value.
Definition at line 85 of file HeadPointerMC.h. Referenced by lookAtPoint().
Returns the target value of joint i. Use this if you want to know the current commanded joint value; To get the current joint position, look in WorldState::outputs.
Definition at line 96 of file HeadPointerMC.h.
Centers the camera on a point in space, attempting to keep the camera as far away from the point as possible. Point should be relative to the body reference frame (see BaseFrameOffset). Returns true if the target is reachable.
Definition at line 91 of file HeadPointerMC.cc.
Centers the camera on a point in space, attempting to move the camera d millimeters away from the point. Point should be relative to the body reference frame (see BaseFrameOffset). Returns true if the target is reachable.
Definition at line 127 of file HeadPointerMC.cc.
Points the camera in a given direction. Vector should be relative to the body reference frame (see BaseFrameOffset). Returns true if the target is reachable.
Definition at line 142 of file HeadPointerMC.cc.
Updates where the head is looking.
Implements MotionCommand. Definition at line 158 of file HeadPointerMC.cc.
true if a change has been made since the last updateJointCmds() and we're active
Implements MotionCommand. Definition at line 134 of file HeadPointerMC.h.
Alive while target is not reached.
Implements MotionCommand. Definition at line 197 of file HeadPointerMC.cc.
marks this as dirty each time it is added
Reimplemented from MotionCommand. Definition at line 136 of file HeadPointerMC.h.
checks if target point or direction is actually reachable
Definition at line 141 of file HeadPointerMC.h. Referenced by lookAtPoint().
puts x in the range (-pi,pi)
Definition at line 149 of file HeadPointerMC.h. Referenced by clipAngularRange().
if x is outside of the range of joint i, it is set to either the min or the max, whichever is closer
Definition at line 152 of file HeadPointerMC.h. Referenced by setJoints(), and setJointValue().
if targetReached, reassigns headCmds from MotionManager::getOutputCmd(), then sets dirty to true and targetReached to false should be called each time a joint value gets modified in case the head isn't where it's supposed to be, it won't jerk around MotionManager::getOutputCmd() is called instead of WorldState::outputs[] because if this is being called rapidly (i.e. after every sensor reading) using the sensor values will cause problems with very slow acceleration due to sensor lag continually resetting the current position. Using the last value sent by the MotionManager fixes this. Definition at line 217 of file HeadPointerMC.cc. Referenced by DoStart(), setJoints(), setJointValue(), and setWeight().
Makes sure i is in the range (0,NumHeadJoints). If it is instead in the range (HeadOffset,HeadOffset+NumHeadJoints), output a warning and reset i to the obviously intended value.
Definition at line 226 of file HeadPointerMC.cc. Referenced by getJointValue(), and setJointValue().
Member Data Documentation
true if a change has been made since last call to updateJointCmds()
Definition at line 183 of file HeadPointerMC.h. Referenced by freezeMotion(), isDirty(), and takeSnapshot().
if set to true, the posture will be kept active; otherwise joints will be marked unused after each posture is achieved (as if the posture was pruned); set through setHold()
Definition at line 184 of file HeadPointerMC.h.
when autopruning, if the maxdiff() of this posture and the robot's current position is below this value, isAlive() will be false, defaults to 0.05 radian (2.86 degree error)
Definition at line 185 of file HeadPointerMC.h. Referenced by getTolerance(), and setTolerance().
false if the head is still moving towards its target
Definition at line 186 of file HeadPointerMC.h. Referenced by isDirty().
number of milliseconds to wait before giving up on a target that should have already been reached, a value of -1U will try forever
Definition at line 188 of file HeadPointerMC.h. Referenced by getTimeout(), and setTimeout().
stores the target value of each joint
Definition at line 189 of file HeadPointerMC.h. Referenced by freezeMotion(), getJointValue(), setJoints(), setJointValue(), and takeSnapshot().
stores the last values we sent from updateOutputs
Definition at line 190 of file HeadPointerMC.h. Referenced by freezeMotion(), setWeight(), and takeSnapshot().
initialized from Config::motion_config, but can be overridden by setMaxSpeed(); rad per frame
Definition at line 191 of file HeadPointerMC.h. Referenced by defaultMaxSpeed(), getMaxSpeed(), noMaxSpeed(), and setMaxSpeed().
provides kinematics computations, there's a small leak and safety issue here because ROBOOP::Robot contains pointers, and those pointers typically aren't freed because MotionCommand destructor isn't called when detaching shared region
Definition at line 192 of file HeadPointerMC.h. Referenced by isReachable(), and lookAtPoint().
The documentation for this class was generated from the following files: |
Tekkotsu v4.0 |
Generated Thu Nov 22 00:58:26 2007 by Doxygen 1.5.4 |