OldHeadPointerMC Class Reference#include <OldHeadPointerMC.h>
Inheritance diagram for OldHeadPointerMC:
[legend]List of all members.
Detailed Description
This class gives some quick and easy functions to point the head at things.
Definition at line 10 of file OldHeadPointerMC.h.
|
Public Types |
| enum | CoordFrame_t { BodyRelative,
GravityRelative
} |
| | Various modes the head can be in. In the future may want to add ability to explicitly track an object or point in the world model. More...
|
Public Member Functions |
| | OldHeadPointerMC () |
| | constructor, defaults to active, BodyRelative, all joints at 0
|
| virtual | ~OldHeadPointerMC () |
| | destructor
|
| void | setWeight (double w) |
| | sets the weight values for all the neck joints
|
| void | setWeight (RobotInfo::TPROffset_t i, double weight) |
| | set a specific head joint weight, pass one of RobotInfo::TPROffset_t, not a full offset!
|
| void | setActive (bool a) |
| | sets active flag; see isDirty()
|
| bool | getActive () const |
| | returns active flag, see isDirty()
|
| void | noMaxSpeed () |
| | sets maxSpeed to 0 (no maximum)
|
| void | defaultMaxSpeed () |
| | restores maxSpeed to default settings from Config::Motion_Config
|
| void | setMaxSpeed (TPROffset_t i, float x) |
| | sets maxSpeed in rad/sec
|
| float | getMaxSpeed (TPROffset_t i) |
| | returns maxSpeed in rad/sec
|
| double | convert (RobotInfo::TPROffset_t i, double v, CoordFrame_t srcmode, CoordFrame_t tgtmode) const |
| | converts a value v in srcmode to a value in tgtmode that would leave the joint angle for joint i constant (you probably won't need to call this directly)
|
|
Note that none of these are virtual, so you don't have to checkout to use them, you should be able to use MotionManager::peekMotion() |
| void | setJoints (double tilt, double pan, double roll) |
| | Directly sets the neck values (radians), uses current mode.
|
| void | setMode (CoordFrame_t m, bool convert=true) |
| | sets all the joints to the given mode, will convert the values to the new mode if convert is true
|
| void | setJointMode (RobotInfo::TPROffset_t i, CoordFrame_t m, bool convert=true) |
| | sets a specific head joint's mode; will convert from previous mode's value to next mode's value if convert is true. Pass one of RobotInfo::TPROffset_t, not a full offset!
|
| void | setJointValue (RobotInfo::TPROffset_t i, double value) |
| | set a specific head joint's value (in radians, for whatever mode it's in), pass one of RobotInfo::TPROffset_t, not a full offset!
|
| void | setJointValueAndMode (RobotInfo::TPROffset_t i, double value, CoordFrame_t m) |
| | set a specific head joint (in radians), pass one of RobotInfo::TPROffset_t, not a full offset!
|
| void | setJointValueFromMode (RobotInfo::TPROffset_t i, double value, CoordFrame_t m) |
| | set a specific head joint (in radians) auto converting value from mode m to the current mode, pass one of RobotInfo::TPROffset_t, not a full offset!
|
| CoordFrame_t | getJointMode (RobotInfo::TPROffset_t i) const |
| | returns the current mode for joint i (use RobotInfo::TPROffset_t, not global offset)
|
| double | getJointValue (RobotInfo::TPROffset_t i) const |
| | returns the target value (relative to the current mode) of joint i. Use getOutputCmd() if you want to know the current commanded joint value; To get the current joint position, look in WorldState
|
|
| virtual int | updateOutputs () |
| | Updates where the head is looking.
|
| virtual const OutputCmd & | getOutputCmd (unsigned int i) |
| | returns one of the #headJoints entries or ::unusedJoint if not a head joint
|
| virtual int | isDirty () |
| | true if a change has been made since the last updateJointCmds() and we're active
|
| virtual int | isAlive () |
| | Updates where the head is looking.
|
| virtual void | DoStart () |
| | Updates where the head is looking.
|
Protected Member Functions |
| double | convToBodyRelative (TPROffset_t i, double v, CoordFrame_t mode) const |
| | converts to a body relative measurement for joint i
|
| double | convFromBodyRelative (TPROffset_t i, double v, CoordFrame_t mode) const |
| | converts from a body relative measurement for joint i
|
Static Protected Member Functions |
| float | normalizeAngle (float x) |
| float | clipAngularRange (unsigned int i, float x) |
| | if x is outside of the range of joint i, it is set to either the min or the max, whichever is closer
|
Protected Attributes |
| bool | dirty |
| | true if a change has been made since last call to updateJointCmds()
|
| bool | active |
| | set by accessor functions, defaults to true
|
| bool | targetReached |
| | false if the head is still moving towards its target
|
| OutputCmd | headCmds [NumHeadJoints] |
| | stores the last values we sent from updateOutputs
|
| float | headTargets [NumHeadJoints] |
| | stores the target value of each joint, relative to headModes
|
| CoordFrame_t | headModes [NumHeadJoints] |
| | stores the current mode of each joint, for instance so tilt can be GravityRelative while pan is static
|
| float | maxSpeed [NumHeadJoints] |
| | initialized from Config::motion_config, but can be overridden by setMaxSpeed(); rad per frame
|
Member Enumeration Documentation
|
|
Various modes the head can be in. In the future may want to add ability to explicitly track an object or point in the world model.
- Enumeration values:
-
| BodyRelative |
holds neck at a specified position, like a PostureEngine, but neck specific |
| GravityRelative |
uses accelerometers to keep a level head, doesn't apply for pan joint, but in future could use localization for pan |
Definition at line 19 of file OldHeadPointerMC.h.
Referenced by getJointMode(). |
Constructor & Destructor Documentation
| OldHeadPointerMC::OldHeadPointerMC |
( |
|
) |
|
|
|
|
constructor, defaults to active, BodyRelative, all joints at 0
Definition at line 8 of file OldHeadPointerMC.cc. |
Member Function Documentation
| float OldHeadPointerMC::clipAngularRange |
( |
unsigned int |
i, |
|
|
float |
x |
|
) |
[inline, static, protected] |
|
|
|
converts from a body relative measurement for joint i
- Todo:
- this is perhaps a bit amateurish - could be more accurate
Definition at line 140 of file OldHeadPointerMC.cc.
Referenced by convert(). |
| void OldHeadPointerMC::defaultMaxSpeed |
( |
|
) |
|
|
| virtual void OldHeadPointerMC::DoStart |
( |
|
) |
[inline, virtual] |
|
| bool OldHeadPointerMC::getActive |
( |
|
) |
const [inline] |
|
|
|
returns the target value (relative to the current mode) of joint i. Use getOutputCmd() if you want to know the current commanded joint value; To get the current joint position, look in WorldState
Definition at line 74 of file OldHeadPointerMC.h. |
| float OldHeadPointerMC::getMaxSpeed |
( |
TPROffset_t |
i |
) |
[inline] |
|
| const OutputCmd & OldHeadPointerMC::getOutputCmd |
( |
unsigned int |
i |
) |
[virtual] |
|
|
|
returns one of the #headJoints entries or ::unusedJoint if not a head joint
Definition at line 97 of file OldHeadPointerMC.cc. |
| virtual int OldHeadPointerMC::isAlive |
( |
|
) |
[inline, virtual] |
|
| virtual int OldHeadPointerMC::isDirty |
( |
|
) |
[inline, virtual] |
|
| void OldHeadPointerMC::noMaxSpeed |
( |
|
) |
[inline] |
|
| float OldHeadPointerMC::normalizeAngle |
( |
float |
x |
) |
[inline, static, protected] |
|
| void OldHeadPointerMC::setActive |
( |
bool |
a |
) |
[inline] |
|
| void OldHeadPointerMC::setJoints |
( |
double |
tilt, |
|
|
double |
pan, |
|
|
double |
roll |
|
) |
|
|
|
|
Directly sets the neck values (radians), uses current mode.
Definition at line 19 of file OldHeadPointerMC.cc. |
| void OldHeadPointerMC::setMaxSpeed |
( |
TPROffset_t |
i, |
|
|
float |
x |
|
) |
[inline] |
|
|
|
sets all the joints to the given mode, will convert the values to the new mode if convert is true
Definition at line 37 of file OldHeadPointerMC.cc. |
| void OldHeadPointerMC::setWeight |
( |
double |
w |
) |
|
|
| int OldHeadPointerMC::updateOutputs |
( |
|
) |
[virtual] |
|
Member Data Documentation
The documentation for this class was generated from the following files:
|