PPL API Reference |
|
---|
Public Member Functions | |
Construction | |
ICreateController (Robot *const _r, const double _gain, const double _max=std::numeric_limits< double >::infinity()) | |
ICreateController (Robot *const _r, XMLNode &_node) | |
ICreateController (Robot *const _r, const ICreateController &_c) | |
virtual std::unique_ptr< ControllerMethod > | Clone (Robot *const _r) const |
virtual | ~ICreateController () |
Interface | |
virtual Control | operator() (const Cfg &_current, const Cfg &_target, const double _dt) |
virtual Control | GetRandomControl (const Cfg &_current, const double _dt) const noexcept |
ControlSet * | GetControlSet () noexcept |
void | SetControlSet (ControlSet *const _c) noexcept |
Static Public Member Functions | |
Construction | |
static std::unique_ptr< ControllerMethod > | Factory (Robot *const _r, XMLNode &_node) |
Protected Member Functions | |
Control Selection Overrides | |
virtual std::vector< double > | ComputeDesiredForce (const Cfg &_current, const Cfg &_target, const double _dt) override |
Control Selection | |
virtual Control | ComputeNearestControl (const Cfg &_current, std::vector< double > &&_force) |
virtual Control | ComputeNearestContinuousControl (const Cfg &_current, std::vector< double > &&_force) |
virtual Control | ComputeNearestDiscreteControl (const Cfg &_current, std::vector< double > &&_force) |
Protected Attributes | |
Internal State | |
Robot *const | m_robot |
The owning robot object. | |
ControlSet * | m_controls {nullptr} |
The discrete controls, if any. | |
bool | m_debug {false} |
Show debug messages? | |
Selects controls that require an iCreate-like robot to first turn towards its target and then translate in the desired direction.
ICreateController::ICreateController | ( | Robot *const | _r, |
const double | _gain, | ||
const double | _max = std::numeric_limits<double>::infinity() |
||
) |
Construct a simple controller.
[in] | _r | The robot to control. |
[in] | _gain | The direct error gain. |
[in] | _max | The maximum force to request. |
Construct a simple controller from an XML node.
[in] | _r | The robot to control. |
[in] | _node | The XML node to parse. |
ICreateController::ICreateController | ( | Robot *const | _r, |
const ICreateController & | _c | ||
) |
Copy a controller for another robot.
_r | The destination robot. |
_c | The controller to copy. |
|
virtual |
Create a copy of this controller for another robot. This is provided so that we can copy controllers without knowing their derived type.
_r | The robot receiving the cloned controller. |
Implements ControllerMethod.
|
overrideprotectedvirtual |
Compute the desired generalized force (or velocity) in the robot's local frame to move from the current position to the target.
_current | The current configuration. |
_target | The target configuration. |
_dt | The timestep length. |
Implements ControllerMethod.
|
staticinherited |
Create a dynamically-allocated controller from an XML node.
_r | The robot to control. |
_node | The XML node to read parameters from. |
|
virtualinherited |
Find the best available control to steer a robot from a starting configuration to a target configuration.
_current | The current configuration. |
_target | The target configuration. |
_dt | The timestep length. |
Reimplemented in PIDFeedback, and MatlabNeedleController.
|
virtualnoexceptinherited |
Find a random control.
_current | The current configuration. |
_dt | The timestep length. |
Reimplemented in CarlikeNeedleController, and MatlabNeedleController.
|
noexceptinherited |
Get the discrete set of controls that this controller can use, if any.
|
noexceptinherited |
Set a discrete set of controls for this controller to use. This limits the controller to a subset of all possible controls accepted by a robot's actuators.
_c | The control set to use. |
|
protectedvirtualinherited |
Compute the control that produces the closest force to the ideal.
_current | The current configuration. |
_force | The desired force in the robot's local frame. |
|
protectedvirtualinherited |
Compute the continuous control that produces the closest force to the ideal.
_current | The current configuration. |
_force | The desired force in the robot's local frame. |
Reimplemented in CarlikeNeedleController.
|
protectedvirtualinherited |
Compute the discrete control that produces the closest force to the ideal.
_current | The current configuration. |
_force | The desired force in the robot's local frame. |