HeadPointerMC Class Reference#include <HeadPointerMC.h>
Inheritance diagram for HeadPointerMC:
[legend]List of all members.
Detailed Description
This class gives some quick and easy functions to point the head at things.
Definition at line 11 of file HeadPointerMC.h.
|
Public Member Functions |
| HeadPointerMC () |
| Constructor, defaults to all joints to current value in state.
|
virtual | ~HeadPointerMC () |
| Destructor.
|
virtual void | setHold (bool h=true) |
| 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.
|
virtual bool | getHold () |
| return hold
|
virtual void | setTolerance (float t) |
| sets tolerance
|
virtual float | getTolerance () |
| returns tolerance
|
virtual void | setTimeout (unsigned int delay) |
| sets timeout
|
virtual unsigned int | getTimeout () |
| returns timeout
|
|
void | noMaxSpeed () |
| Sets maxSpeed to 0 (no maximum).
|
void | defaultMaxSpeed (float x=1) |
| Restores maxSpeed to default settings from Config::Motion_Config.
|
void | setMaxSpeed (unsigned int i, float x) |
| Sets maxSpeed in rad/sec.
|
float | getMaxSpeed (unsigned int i) |
| Returns maxSpeed in rad/sec.
|
|
void | setWeight (float w) |
| Sets the weight values for all the neck joints.
|
void | setJoints (float j1, float j2, float j3) |
| Directly sets the neck values (all values in radians).
|
void | setJointValue (unsigned int i, float value) |
| Directly set a single neck joint value.
|
float | getJointValue (unsigned int i) const |
| 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.
|
bool | lookAtPoint (float x, float y, float z) |
| Centers the camera on a point in space, attempting to keep the camera as far away from the point as possible.
|
bool | lookAtPoint (float x, float y, float z, float d) |
| Centers the camera on a point in space, attempting to move the camera d millimeters away from the point.
|
bool | lookInDirection (float x, float y, float z) |
| Points the camera in a given direction.
|
|
virtual int | updateOutputs () |
| Updates where the head is looking.
|
virtual int | isDirty () |
| true if a change has been made since the last updateJointCmds() and we're active
|
virtual int | isAlive () |
| Alive while target is not reached.
|
virtual void | DoStart () |
| marks this as dirty each time it is added
|
Protected Member Functions |
void | markDirty () |
| if targetReached, reassigns headCmds from MotionManager::getOutputCmd(), then sets dirty to true and targetReached to false
|
Static Protected Member Functions |
static float | normalizeAngle (float x) |
| puts x in the range (-pi,pi)
|
static 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
|
static bool | ensureValidJoint (unsigned int &i) |
| 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.
|
Protected Attributes |
bool | dirty |
| true if a change has been made since last call to updateJointCmds()
|
bool | hold |
| 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()
|
float | tolerance |
| 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.01 (5.7 degree error)
|
bool | targetReached |
| false if the head is still moving towards its target
|
unsigned int | targetTimestamp |
| time at which the targetReached flag was set
|
unsigned int | timeout |
| number of milliseconds to wait before giving up on a target that should have already been reached, a value of -1U will try forever
|
float | headTargets [NumHeadJoints] |
| stores the target value of each joint
|
OutputCmd | headCmds [NumHeadJoints] |
| stores the last values we sent from updateOutputs
|
float | maxSpeed [NumHeadJoints] |
| initialized from Config::motion_config, but can be overridden by setMaxSpeed(); rad per frame
|
ROBOOP::Robot | headkin |
| provides kinematics computations
|
Constructor & Destructor Documentation
HeadPointerMC::HeadPointerMC |
( |
|
) |
|
|
virtual HeadPointerMC::~HeadPointerMC |
( |
|
) |
[inline, virtual] |
|
Member Function Documentation
static float HeadPointerMC::clipAngularRange |
( |
unsigned int |
i, |
|
|
float |
x |
|
) |
[inline, static, protected] |
|
void HeadPointerMC::defaultMaxSpeed |
( |
float |
x = 1 |
) |
|
|
|
Restores maxSpeed to default settings from Config::Motion_Config.
- Parameters:
-
| x | ratio of the max speed to use; so 0.5 would limit motion to half the recommended upper limit |
Definition at line 20 of file HeadPointerMC.cc.
Referenced by HeadPointerMC(). |
virtual void HeadPointerMC::DoStart |
( |
|
) |
[inline, virtual] |
|
bool HeadPointerMC::ensureValidJoint |
( |
unsigned int & |
i |
) |
[static, protected] |
|
|
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.
- Parameters:
-
[in] | i | joint offset relative to either HeadOffset (i.e. one of TPROffset_t) or 0 |
[out] | i | joint offset relative to HeadOffset (i.e. one of TPROffset_t) |
- Returns:
- true if the intended joint could be ascertained, false otherwise
Definition at line 149 of file HeadPointerMC.cc.
Referenced by getJointValue(), and setJointValue(). |
virtual bool HeadPointerMC::getHold |
( |
|
) |
[inline, virtual] |
|
float HeadPointerMC::getJointValue |
( |
unsigned int |
i |
) |
const [inline] |
|
|
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.
- Parameters:
-
| i | joint offset relative to HeadOffset (i.e. one of TPROffset_t) |
Definition at line 72 of file HeadPointerMC.h. |
float HeadPointerMC::getMaxSpeed |
( |
unsigned int |
i |
) |
[inline] |
|
|
Returns maxSpeed in rad/sec.
- Parameters:
-
| i | joint offset relative to HeadOffset (i.e. one of TPROffset_t) |
- Returns:
- the maximum speed of joint i in radians per second
Definition at line 45 of file HeadPointerMC.h. |
virtual unsigned int HeadPointerMC::getTimeout |
( |
|
) |
[inline, virtual] |
|
virtual float HeadPointerMC::getTolerance |
( |
|
) |
[inline, virtual] |
|
int HeadPointerMC::isAlive |
( |
|
) |
[virtual] |
|
virtual int HeadPointerMC::isDirty |
( |
|
) |
[inline, virtual] |
|
bool HeadPointerMC::lookAtPoint |
( |
float |
x, |
|
|
float |
y, |
|
|
float |
z, |
|
|
float |
d |
|
) |
|
|
|
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) - Parameters:
-
| x | location in millimeters |
| y | location in millimeters |
| z | location in millimeters |
| d | target distance from point in millimeters |
Definition at line 66 of file HeadPointerMC.cc. |
bool HeadPointerMC::lookAtPoint |
( |
float |
x, |
|
|
float |
y, |
|
|
float |
z |
|
) |
|
|
|
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) - Parameters:
-
| x | location in millimeters |
| y | location in millimeters |
| z | location in millimeters |
- Todo:
- this method is an approximation, could be more precise, and perhaps faster, although this is pretty good.
Definition at line 39 of file HeadPointerMC.cc. |
bool HeadPointerMC::lookInDirection |
( |
float |
x, |
|
|
float |
y, |
|
|
float |
z |
|
) |
|
|
|
Points the camera in a given direction.
Vector should be relative to the body reference frame (see BaseFrameOffset) - Parameters:
-
| x | component of the direction vector |
| y | component of the direction vector |
| z | component of the direction vector |
Definition at line 77 of file HeadPointerMC.cc. |
void HeadPointerMC::markDirty |
( |
|
) |
[protected] |
|
void HeadPointerMC::noMaxSpeed |
( |
|
) |
[inline] |
|
static float HeadPointerMC::normalizeAngle |
( |
float |
x |
) |
[inline, static, protected] |
|
virtual void HeadPointerMC::setHold |
( |
bool |
h = true |
) |
[inline, virtual] |
|
|
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 20 of file HeadPointerMC.h. |
void HeadPointerMC::setJoints |
( |
float |
j1, |
|
|
float |
j2, |
|
|
float |
j3 |
|
) |
|
|
void HeadPointerMC::setJointValue |
( |
unsigned int |
i, |
|
|
float |
value |
|
) |
[inline] |
|
|
Directly set a single neck joint value.
- Parameters:
-
| i | joint offset relative to HeadOffset (i.e. one of TPROffset_t) |
| value | the value to be assigned to join i, in radians |
Definition at line 63 of file HeadPointerMC.h.
Referenced by lookAtPoint(), and lookInDirection(). |
void HeadPointerMC::setMaxSpeed |
( |
unsigned int |
i, |
|
|
float |
x |
|
) |
[inline] |
|
|
Sets maxSpeed in rad/sec.
- Parameters:
-
| i | joint offset relative to HeadOffset (i.e. one of TPROffset_t) |
| x | maximum radians per second to move |
Definition at line 40 of file HeadPointerMC.h. |
virtual void HeadPointerMC::setTimeout |
( |
unsigned int |
delay |
) |
[inline, virtual] |
|
virtual void HeadPointerMC::setTolerance |
( |
float |
t |
) |
[inline, virtual] |
|
void HeadPointerMC::setWeight |
( |
float |
w |
) |
|
|
int HeadPointerMC::updateOutputs |
( |
|
) |
[virtual] |
|
Member Data Documentation
The documentation for this class was generated from the following files:
|