Laelaps  2.3.5
RoadNarrows Robotics Small Outdoor Mobile Robot Project
laelaps::LaeKinAction Class Reference

Laelaps kinematics base action class. More...

#include <laeKin.h>

Inheritance diagram for laelaps::LaeKinAction:
laelaps::LaeKinActionDutyCycle laelaps::LaeKinActionTwist laelaps::LaeKinActionVelocity

Public Types

enum  ActionType {
  ActionTypeIdle,
  ActionTypeVelocity,
  ActionTypeDutyCycle,
  ActionTypeTwist,
  ActionTypeNavForDist,
  ActionTypeNavToPos
}
 Supported kinematic extended actions. More...
 
enum  ActionState {
  ActionStateIdle,
  ActionStateUpdate,
  ActionStatePlan,
  ActionStateExecute,
  ActionStateTerminated
}
 Action states. More...
 

Public Member Functions

 LaeKinAction (LaeKinematics &kin, ActionType eActionType=ActionTypeIdle)
 Default intialization constructor. More...
 
virtual ~LaeKinAction ()
 Destructor.
 
virtual int plan ()
 Plan next execution. More...
 
virtual int execute ()
 Execution [sub]action. More...
 
virtual int terminate ()
 Terminate action. More...
 
virtual bool isIdle ()
 Test if action is idle. More...
 
virtual bool isPlanningRequired ()
 Test if action requires (re)planning. More...
 
virtual bool isExecutionRequired () const
 Test if more action requires (more) execution. More...
 
virtual bool hasTerminated () const
 Test if action has been terminated. More...
 
virtual ActionType getActionType () const
 Get the action type for this class. More...
 
virtual ActionState getActionState () const
 Get the action state. More...
 

Static Public Member Functions

static LaeKinActionnewAction (LaeKinematics &kin, const ActionType eActionType)
 Archetype constructor to create action type instance. More...
 
static LaeKinActionreplaceAction (LaeKinematics &kin, LaeKinAction *pAction, const ActionType eNewActionType)
 Archetype constructor to replace action type instance. More...
 

Protected Attributes

LaeKinematicsm_kin
 bound kinematics driver
 
ActionType m_eActionType
 action type enum
 
ActionState m_eActionState
 action state.
 

Detailed Description

Laelaps kinematics base action class.

An action spans multiple kinematic control cycles. For example, navigating to a goal position.

The base class has no action.

Definition at line 774 of file laeKin.h.

Member Enumeration Documentation

enum laelaps::LaeKinAction::ActionState

Action states.

Enumerator
ActionStateIdle 

no action

ActionStateUpdate 

update action specific data

ActionStatePlan 

plan action

ActionStateExecute 

execute action

ActionStateTerminated 

action terminated

Definition at line 793 of file laeKin.h.

794  {
795  ActionStateIdle, ///< no action
796  ActionStateUpdate, ///< update action specific data
797  ActionStatePlan, ///< plan action
798  ActionStateExecute, ///< execute action
799  ActionStateTerminated ///< action terminated
800  };
update action specific data
Definition: laeKin.h:796
enum laelaps::LaeKinAction::ActionType

Supported kinematic extended actions.

Enumerator
ActionTypeIdle 

idle action

ActionTypeVelocity 

move by angular velocities

ActionTypeDutyCycle 

move by motor duty cycles

ActionTypeTwist 

move robot by twist values

ActionTypeNavForDist 

navigate for distances

ActionTypeNavToPos 

navigate to positions

Definition at line 780 of file laeKin.h.

781  {
782  ActionTypeIdle, ///< idle action
783  ActionTypeVelocity, ///< move by angular velocities
784  ActionTypeDutyCycle, ///< move by motor duty cycles
785  ActionTypeTwist, ///< move robot by twist values
786  ActionTypeNavForDist, ///< navigate for distances
787  ActionTypeNavToPos ///< navigate to positions
788  };
move robot by twist values
Definition: laeKin.h:785
move by motor duty cycles
Definition: laeKin.h:784
move by angular velocities
Definition: laeKin.h:783

Constructor & Destructor Documentation

laelaps::LaeKinAction::LaeKinAction ( LaeKinematics kin,
ActionType  eActionType = ActionTypeIdle 
)
inline

Default intialization constructor.

Parameters
kinBound kinemeatics driver.
eActionAction type.

Definition at line 808 of file laeKin.h.

808  :
809  m_kin(kin), m_eActionType(eActionType)
810  {
812  }
LaeKinematics & m_kin
bound kinematics driver
Definition: laeKin.h:948
ActionType m_eActionType
action type enum
Definition: laeKin.h:949
ActionState m_eActionState
action state.
Definition: laeKin.h:950

Member Function Documentation

virtual int laelaps::LaeKinAction::execute ( )
inlinevirtual

Execution [sub]action.

Hardware is updated as needed.

Returns
On success, OK(0) is returned.
On error, RC_ERROR(-1) is returned.

Reimplemented in laelaps::LaeKinActionTwist, laelaps::LaeKinActionDutyCycle, and laelaps::LaeKinActionVelocity.

Definition at line 866 of file laeKin.h.

References laelaps::LAE_OK.

Referenced by laelaps::LaeKinActionVelocity::execute(), laelaps::LaeKinActionDutyCycle::execute(), and laelaps::LaeKinActionTwist::execute().

867  {
868  return LAE_OK;
869  }
static const int LAE_OK
not an error, success
Definition: laelaps.h:71
virtual ActionState laelaps::LaeKinAction::getActionState ( ) const
inlinevirtual

Get the action state.

Returns
Action state enum.

Definition at line 942 of file laeKin.h.

943  {
944  return m_eActionState;
945  }
ActionState m_eActionState
action state.
Definition: laeKin.h:950
virtual ActionType laelaps::LaeKinAction::getActionType ( ) const
inlinevirtual

Get the action type for this class.

Returns
Action type enum.

Definition at line 932 of file laeKin.h.

933  {
934  return m_eActionType;
935  }
ActionType m_eActionType
action type enum
Definition: laeKin.h:949
virtual bool laelaps::LaeKinAction::hasTerminated ( ) const
inlinevirtual

Test if action has been terminated.

Note
An action may not have any more tasks to perform, but has NOT been terminated.
Returns
Returns true or false.

Definition at line 922 of file laeKin.h.

Referenced by laelaps::LaeKinActionVelocity::terminate(), laelaps::LaeKinActionDutyCycle::terminate(), and laelaps::LaeKinActionTwist::terminate().

923  {
925  }
ActionState m_eActionState
action state.
Definition: laeKin.h:950
virtual bool laelaps::LaeKinAction::isExecutionRequired ( ) const
inlinevirtual
virtual bool laelaps::LaeKinAction::isIdle ( )
inlinevirtual

Test if action is idle.

Returns
Returns true or false.

Definition at line 889 of file laeKin.h.

890  {
892  }
ActionState m_eActionState
action state.
Definition: laeKin.h:950
virtual bool laelaps::LaeKinAction::isPlanningRequired ( )
inlinevirtual

Test if action requires (re)planning.

Returns
Returns true or false.

Definition at line 899 of file laeKin.h.

Referenced by laelaps::LaeKinActionVelocity::plan(), laelaps::LaeKinActionTwist::plan(), laelaps::LaeKinematics::setGoalDutyCycles(), laelaps::LaeKinematics::setGoalTwist(), and laelaps::LaeKinematics::setGoalVelocities().

900  {
902  }
ActionState m_eActionState
action state.
Definition: laeKin.h:950
LaeKinAction * LaeKinAction::newAction ( LaeKinematics kin,
const ActionType  eActionType 
)
static

Archetype constructor to create action type instance.

Parameters
kinBound kinemeatics driver.
eActionAction type to create.
Returns
Pointer to new allocated instance.

Definition at line 1638 of file laeKin.cxx.

1640 {
1641  switch( eActionType )
1642  {
1643  case ActionTypeVelocity:
1644  return new LaeKinActionVelocity(kin);
1645  case ActionTypeDutyCycle:
1646  return new LaeKinActionDutyCycle(kin);
1647  case ActionTypeTwist:
1648  return new LaeKinActionTwist(kin);
1649  case ActionTypeNavForDist: // future
1650  case ActionTypeNavToPos: // future
1651  return new LaeKinAction(kin);
1652  case ActionTypeIdle:
1653  return new LaeKinAction(kin);
1654  default:
1655  return new LaeKinAction(kin);
1656  }
1657 }
move robot by twist values
Definition: laeKin.h:785
Laelaps kinematics duty cycle action class.
Definition: laeKin.h:1042
Laelaps kinematics velocity action class.
Definition: laeKin.h:1108
move by motor duty cycles
Definition: laeKin.h:784
move by angular velocities
Definition: laeKin.h:783
LaeKinAction(LaeKinematics &kin, ActionType eActionType=ActionTypeIdle)
Default intialization constructor.
Definition: laeKin.h:808
Laelaps kinematics velocity action class.
Definition: laeKin.h:966
virtual int laelaps::LaeKinAction::plan ( )
inlinevirtual

Plan next execution.

No hardware is touched.

Returns
On success, OK(0) is returned.
On error, RC_ERROR(-1) is returned.

Reimplemented in laelaps::LaeKinActionTwist, and laelaps::LaeKinActionVelocity.

Definition at line 854 of file laeKin.h.

References laelaps::LAE_OK.

Referenced by laelaps::LaeKinActionVelocity::plan(), laelaps::LaeKinActionTwist::plan(), and laelaps::LaeKinematics::setGoalDutyCycles().

855  {
856  return LAE_OK;
857  }
static const int LAE_OK
not an error, success
Definition: laelaps.h:71
LaeKinAction * LaeKinAction::replaceAction ( LaeKinematics kin,
LaeKinAction pAction,
const ActionType  eNewActionType 
)
static

Archetype constructor to replace action type instance.

Parameters
kinBound kinemeatics driver.
pActionPointer to current action to be terminated and deleted. The pointer is no long valid after this function returns.
eActionNew action type to create.
Returns
Pointer to new allocated instance.

Definition at line 1659 of file laeKin.cxx.

References terminate().

1662 {
1663  if( pAction != NULL )
1664  {
1665  pAction->terminate();
1666  delete pAction;
1667  }
1668 
1669  return newAction(kin, eNewActionType);
1670 }
static LaeKinAction * newAction(LaeKinematics &kin, const ActionType eActionType)
Archetype constructor to create action type instance.
Definition: laeKin.cxx:1638
virtual int terminate()
Terminate action.
Definition: laeKin.h:878
virtual int laelaps::LaeKinAction::terminate ( )
inlinevirtual

Terminate action.

Hardware is updated as needed. The robot should be stopped.

Returns
On success, OK(0) is returned.
On error, RC_ERROR(-1) is returned.

Reimplemented in laelaps::LaeKinActionTwist, laelaps::LaeKinActionDutyCycle, and laelaps::LaeKinActionVelocity.

Definition at line 878 of file laeKin.h.

References laelaps::LAE_OK.

Referenced by replaceAction(), laelaps::LaeKinActionVelocity::terminate(), laelaps::LaeKinActionDutyCycle::terminate(), and laelaps::LaeKinActionTwist::terminate().

879  {
881  return LAE_OK;
882  }
ActionState m_eActionState
action state.
Definition: laeKin.h:950
static const int LAE_OK
not an error, success
Definition: laelaps.h:71

The documentation for this class was generated from the following files: