Fawkes API
Fawkes Development Version
|
This is the base class which calculates drive modes. More...
#include <>>
Public Member Functions | |
AbstractDriveMode (Logger *logger, Configuration *config) | |
Constructor. More... | |
virtual | ~AbstractDriveMode () |
Desctructor. More... | |
void | set_current_target (float x, float y, float ori) |
Sets the current target. More... | |
void | set_current_robo_pos (float x, float y, float ori) |
Sets the current robo position. More... | |
void | set_current_robo_speed (float x, float y, float rot) |
Sets the current robo speed. More... | |
void | set_current_colli_mode (NavigatorInterface::OrientationMode orient, bool stop) |
Set the colli mode values for each drive mode. More... | |
void | set_local_target (float x, float y) |
Set the local targetpoint found by the search. More... | |
void | set_local_trajec (float x, float y) |
Set the local trajectory point found by the search. More... | |
NavigatorInterface::DriveMode | get_drive_mode_name () |
Returns the drive modes name. More... | |
virtual void | update ()=0 |
Calculate the proposed settings which are asked for afterwards. More... | |
float | get_proposed_trans_x () |
Returns the proposed x translation. More... | |
float | get_proposed_trans_y () |
Returns the proposed y translation. More... | |
float | get_proposed_rot () |
Returns the proposed rotatio. More... | |
Protected Member Functions | |
float | lin_interpol (float x, float left, float right, float bot, float top) |
Perform linear interpolation. More... | |
float | guarantee_trans_stop (float distance, float current_trans, float desired_trans) |
Get velocity that guarantees a stop for a given distance. More... | |
Protected Attributes | |
field_pos_t | target_ |
current target More... | |
field_pos_t | robot_ |
current robot pos More... | |
colli_trans_rot_t | robot_vel_ |
current robot velocity More... | |
float | robot_speed_ |
current robo translation velocity More... | |
cart_coord_2d_t | local_target_ |
local target More... | |
cart_coord_2d_t | local_trajec_ |
local trajectory More... | |
NavigatorInterface::OrientationMode | orient_mode_ |
orient mode of nav if More... | |
bool | stop_at_target_ |
flag if stopping on or after target More... | |
colli_trans_rot_t | proposed_ |
proposed translation and rotation for next timestep More... | |
NavigatorInterface::DriveMode | drive_mode_ |
the drive mode name More... | |
Logger * | logger_ |
The fawkes logger. More... | |
Configuration * | config_ |
The fawkes configuration. More... | |
float | max_trans_ |
The maximum translation speed. More... | |
float | max_rot_ |
The maximum rotation speed. More... | |
This is the base class which calculates drive modes.
Drive modes are the proposed settings for the drive-realization out of the found search things.
Definition at line 44 of file abstract_drive_mode.h.
|
inline |
Constructor.
logger | The fawkes logger |
config | The fawkes configuration |
Definition at line 138 of file abstract_drive_mode.h.
References config_, drive_mode_, fawkes::Configuration::get_float(), fawkes::Configuration::get_int(), fawkes::Logger::log_debug(), logger_, fawkes::NavigatorInterface::MovingNotAllowed, proposed_, fawkes::colli_trans_rot_t::rot, fawkes::colli_trans_rot_t::x, and fawkes::colli_trans_rot_t::y.
|
inlinevirtual |
Desctructor.
Definition at line 164 of file abstract_drive_mode.h.
References fawkes::Logger::log_debug(), and logger_.
|
inline |
Returns the drive modes name.
Get the drive mode.
Has to be set in the constructor of your drive mode!
Definition at line 289 of file abstract_drive_mode.h.
References drive_mode_.
|
inline |
Returns the proposed rotatio.
Returns the proposed rotation which was calculated previously in 'update()' which has to be implemented!
Definition at line 196 of file abstract_drive_mode.h.
References proposed_, and fawkes::colli_trans_rot_t::rot.
Referenced by fawkes::BiwardDriveModule::update(), and fawkes::SelectDriveMode::update().
|
inline |
Returns the proposed x translation.
Returns the proposed x translation which was calculated previously in 'update()' which has to be implemented!
Definition at line 176 of file abstract_drive_mode.h.
References proposed_, and fawkes::colli_trans_rot_t::x.
Referenced by fawkes::BiwardDriveModule::update(), and fawkes::SelectDriveMode::update().
|
inline |
Returns the proposed y translation.
Returns the proposed y translation which was calculated previously in 'update()' which has to be implemented!
Definition at line 186 of file abstract_drive_mode.h.
References proposed_, and fawkes::colli_trans_rot_t::y.
Referenced by fawkes::SelectDriveMode::update().
|
inlineprotected |
Get velocity that guarantees a stop for a given distance.
distance | The distance to stop at |
current_trans | Robot's current translation velocity |
desired_trans | Robot's currently desired translation velocity |
Definition at line 316 of file abstract_drive_mode.h.
Referenced by fawkes::ForwardOmniDriveModule::update(), fawkes::BackwardDriveModule::~BackwardDriveModule(), and fawkes::ForwardDriveModule::~ForwardDriveModule().
|
inlineprotected |
Perform linear interpolation.
Performs linear interpolation.
x | x |
x1 | x1 |
x2 | x2 |
y1 | y1 |
y2 | y2 |
Definition at line 303 of file abstract_drive_mode.h.
Referenced by fawkes::BackwardDriveModule::~BackwardDriveModule(), and fawkes::ForwardDriveModule::~ForwardDriveModule().
|
inline |
Set the colli mode values for each drive mode.
Has to be set before update!
orient | Orient at target after target position reached? |
stop | Stop at target position? |
Definition at line 253 of file abstract_drive_mode.h.
References orient_mode_, and stop_at_target_.
Referenced by fawkes::BiwardDriveModule::update(), and fawkes::SelectDriveMode::update().
|
inline |
Sets the current robo position.
Has to be set before update!
x | The robot x position |
y | The robot y position |
ori | The robot orientation |
Definition at line 223 of file abstract_drive_mode.h.
References fawkes::field_pos_t::ori, robot_, fawkes::field_pos_t::x, and fawkes::field_pos_t::y.
Referenced by fawkes::BiwardDriveModule::update(), and fawkes::SelectDriveMode::update().
|
inline |
Sets the current robo speed.
Has to be set before update!
x | The robot translation velocity in x-direction only |
y | The robot translation velocity in y-direction only |
rot | The robot rotation velocity |
Definition at line 237 of file abstract_drive_mode.h.
References robot_speed_, robot_vel_, fawkes::colli_trans_rot_t::rot, fawkes::colli_trans_rot_t::x, and fawkes::colli_trans_rot_t::y.
Referenced by fawkes::BiwardDriveModule::update(), and fawkes::SelectDriveMode::update().
|
inline |
Sets the current target.
Has to be set before update!
x | The target x position |
y | The target y position |
ori | The target orientation |
Definition at line 209 of file abstract_drive_mode.h.
References fawkes::field_pos_t::ori, target_, fawkes::field_pos_t::x, and fawkes::field_pos_t::y.
Referenced by fawkes::BiwardDriveModule::update(), and fawkes::SelectDriveMode::update().
|
inline |
Set the local targetpoint found by the search.
Has to be set before update!
x | The local target x position |
y | The local target y position |
Definition at line 266 of file abstract_drive_mode.h.
References local_target_, fawkes::cart_coord_2d_struct::x, and fawkes::cart_coord_2d_struct::y.
Referenced by fawkes::BiwardDriveModule::update(), and fawkes::SelectDriveMode::update().
|
inline |
Set the local trajectory point found by the search.
Has to be set before update!
x | The local target x trajectory |
y | The local target y trajectory |
Definition at line 278 of file abstract_drive_mode.h.
References local_trajec_, fawkes::cart_coord_2d_struct::x, and fawkes::cart_coord_2d_struct::y.
Referenced by fawkes::BiwardDriveModule::update(), and fawkes::SelectDriveMode::update().
|
pure virtual |
Calculate the proposed settings which are asked for afterwards.
Implemented in fawkes::EscapeDriveModule, fawkes::BiwardDriveModule, fawkes::EscapePotentialFieldDriveModule, fawkes::EscapePotentialFieldOmniDriveModule, fawkes::BackwardDriveModule, fawkes::ForwardDriveModule, fawkes::StopDriveModule, and fawkes::ForwardOmniDriveModule.
Referenced by fawkes::BiwardDriveModule::update(), and fawkes::SelectDriveMode::update().
|
protected |
The fawkes configuration.
Definition at line 110 of file abstract_drive_mode.h.
Referenced by AbstractDriveMode(), fawkes::BackwardDriveModule::BackwardDriveModule(), fawkes::BiwardDriveModule::BiwardDriveModule(), fawkes::EscapeDriveModule::EscapeDriveModule(), fawkes::EscapePotentialFieldDriveModule::EscapePotentialFieldDriveModule(), fawkes::EscapePotentialFieldOmniDriveModule::EscapePotentialFieldOmniDriveModule(), fawkes::ForwardDriveModule::ForwardDriveModule(), and fawkes::ForwardOmniDriveModule::ForwardOmniDriveModule().
|
protected |
the drive mode name
Definition at line 107 of file abstract_drive_mode.h.
Referenced by AbstractDriveMode(), fawkes::BackwardDriveModule::BackwardDriveModule(), fawkes::BiwardDriveModule::BiwardDriveModule(), fawkes::EscapeDriveModule::EscapeDriveModule(), fawkes::EscapePotentialFieldDriveModule::EscapePotentialFieldDriveModule(), fawkes::EscapePotentialFieldOmniDriveModule::EscapePotentialFieldOmniDriveModule(), fawkes::ForwardDriveModule::ForwardDriveModule(), fawkes::ForwardOmniDriveModule::ForwardOmniDriveModule(), get_drive_mode_name(), fawkes::StopDriveModule::StopDriveModule(), fawkes::BackwardDriveModule::~BackwardDriveModule(), fawkes::ForwardDriveModule::~ForwardDriveModule(), and fawkes::ForwardOmniDriveModule::~ForwardOmniDriveModule().
|
protected |
local target
Definition at line 99 of file abstract_drive_mode.h.
Referenced by set_local_target(), fawkes::ForwardOmniDriveModule::update(), fawkes::BackwardDriveModule::update(), fawkes::ForwardDriveModule::update(), fawkes::BiwardDriveModule::update(), fawkes::EscapeDriveModule::update(), and fawkes::ForwardOmniDriveModule::~ForwardOmniDriveModule().
|
protected |
local trajectory
Definition at line 100 of file abstract_drive_mode.h.
Referenced by set_local_trajec(), fawkes::ForwardDriveModule::update(), fawkes::BackwardDriveModule::update(), and fawkes::BiwardDriveModule::update().
|
protected |
The fawkes logger.
Definition at line 109 of file abstract_drive_mode.h.
Referenced by AbstractDriveMode(), fawkes::BackwardDriveModule::BackwardDriveModule(), fawkes::BiwardDriveModule::BiwardDriveModule(), fawkes::EscapeDriveModule::EscapeDriveModule(), fawkes::EscapePotentialFieldDriveModule::EscapePotentialFieldDriveModule(), fawkes::EscapePotentialFieldOmniDriveModule::EscapePotentialFieldOmniDriveModule(), fawkes::ForwardDriveModule::ForwardDriveModule(), fawkes::ForwardOmniDriveModule::ForwardOmniDriveModule(), fawkes::EscapeDriveModule::set_laser_data(), fawkes::StopDriveModule::StopDriveModule(), fawkes::EscapePotentialFieldOmniDriveModule::update(), fawkes::EscapePotentialFieldDriveModule::update(), fawkes::BiwardDriveModule::update(), fawkes::EscapeDriveModule::update(), ~AbstractDriveMode(), fawkes::BackwardDriveModule::~BackwardDriveModule(), fawkes::BiwardDriveModule::~BiwardDriveModule(), fawkes::EscapeDriveModule::~EscapeDriveModule(), fawkes::EscapePotentialFieldDriveModule::~EscapePotentialFieldDriveModule(), fawkes::EscapePotentialFieldOmniDriveModule::~EscapePotentialFieldOmniDriveModule(), fawkes::ForwardDriveModule::~ForwardDriveModule(), fawkes::ForwardOmniDriveModule::~ForwardOmniDriveModule(), and fawkes::StopDriveModule::~StopDriveModule().
|
protected |
The maximum rotation speed.
Definition at line 113 of file abstract_drive_mode.h.
Referenced by fawkes::BackwardDriveModule::BackwardDriveModule(), fawkes::BiwardDriveModule::BiwardDriveModule(), fawkes::EscapeDriveModule::EscapeDriveModule(), fawkes::EscapePotentialFieldDriveModule::EscapePotentialFieldDriveModule(), fawkes::EscapePotentialFieldOmniDriveModule::EscapePotentialFieldOmniDriveModule(), fawkes::ForwardDriveModule::ForwardDriveModule(), fawkes::ForwardOmniDriveModule::ForwardOmniDriveModule(), fawkes::BackwardDriveModule::update(), fawkes::ForwardDriveModule::update(), fawkes::EscapePotentialFieldDriveModule::update(), fawkes::EscapePotentialFieldOmniDriveModule::update(), fawkes::EscapeDriveModule::update(), and fawkes::ForwardOmniDriveModule::~ForwardOmniDriveModule().
|
protected |
The maximum translation speed.
Definition at line 112 of file abstract_drive_mode.h.
Referenced by fawkes::BackwardDriveModule::BackwardDriveModule(), fawkes::BiwardDriveModule::BiwardDriveModule(), fawkes::EscapeDriveModule::EscapeDriveModule(), fawkes::EscapePotentialFieldDriveModule::EscapePotentialFieldDriveModule(), fawkes::EscapePotentialFieldOmniDriveModule::EscapePotentialFieldOmniDriveModule(), fawkes::ForwardDriveModule::ForwardDriveModule(), fawkes::ForwardOmniDriveModule::ForwardOmniDriveModule(), fawkes::BackwardDriveModule::update(), fawkes::ForwardDriveModule::update(), fawkes::EscapePotentialFieldDriveModule::update(), fawkes::EscapePotentialFieldOmniDriveModule::update(), fawkes::EscapeDriveModule::update(), fawkes::BackwardDriveModule::~BackwardDriveModule(), fawkes::ForwardDriveModule::~ForwardDriveModule(), and fawkes::ForwardOmniDriveModule::~ForwardOmniDriveModule().
|
protected |
orient mode of nav if
Definition at line 102 of file abstract_drive_mode.h.
Referenced by set_current_colli_mode(), and fawkes::BiwardDriveModule::update().
|
protected |
proposed translation and rotation for next timestep
Definition at line 105 of file abstract_drive_mode.h.
Referenced by AbstractDriveMode(), get_proposed_rot(), get_proposed_trans_x(), get_proposed_trans_y(), fawkes::ForwardOmniDriveModule::update(), fawkes::StopDriveModule::update(), fawkes::BackwardDriveModule::update(), fawkes::ForwardDriveModule::update(), fawkes::EscapePotentialFieldDriveModule::update(), fawkes::EscapePotentialFieldOmniDriveModule::update(), fawkes::BiwardDriveModule::update(), fawkes::EscapeDriveModule::update(), and fawkes::ForwardOmniDriveModule::~ForwardOmniDriveModule().
|
protected |
current robot pos
Definition at line 94 of file abstract_drive_mode.h.
Referenced by set_current_robo_pos(), fawkes::ForwardOmniDriveModule::update(), fawkes::BiwardDriveModule::update(), and fawkes::EscapeDriveModule::update().
|
protected |
current robo translation velocity
Definition at line 97 of file abstract_drive_mode.h.
Referenced by set_current_robo_speed(), fawkes::ForwardDriveModule::update(), and fawkes::BackwardDriveModule::update().
|
protected |
current robot velocity
Definition at line 96 of file abstract_drive_mode.h.
Referenced by set_current_robo_speed(), fawkes::ForwardOmniDriveModule::update(), fawkes::ForwardDriveModule::update(), fawkes::BackwardDriveModule::update(), and fawkes::BiwardDriveModule::update().
|
protected |
flag if stopping on or after target
Definition at line 103 of file abstract_drive_mode.h.
Referenced by set_current_colli_mode(), fawkes::ForwardOmniDriveModule::update(), fawkes::BackwardDriveModule::update(), fawkes::BiwardDriveModule::update(), fawkes::BackwardDriveModule::~BackwardDriveModule(), and fawkes::ForwardDriveModule::~ForwardDriveModule().
|
protected |
current target
Definition at line 93 of file abstract_drive_mode.h.
Referenced by set_current_target(), fawkes::ForwardOmniDriveModule::update(), fawkes::BiwardDriveModule::update(), and fawkes::EscapeDriveModule::update().