DUNE: Uniform Navigational Environment
2019.02.1
|
Class to control station keeping behavior.
Public Member Functions | |
StationKeep (const IMC::StationKeeping *maneuver, Maneuvers::Maneuver *task, float min_radius) | |
StationKeep (Maneuvers::Maneuver *task, double lat, double lon, float radius, float z, uint8_t z_units, float speed, uint8_t speed_units) | |
void | update (const IMC::EstimatedState *state) |
void | updatePathControl (const IMC::PathControlState *pcs) |
bool | isInside (void) const |
bool | isMoving (void) const |
DUNE::Maneuvers::StationKeep::StationKeep | ( | const IMC::StationKeeping * | maneuver, |
Maneuvers::Maneuver * | task, | ||
float | min_radius | ||
) |
Default constructor.
[in] | maneuver | pointer to rows maneuver |
[in] | task | pointer to task object (debug and inf) |
[in] | min_radius | minimum radius to consider in maneuver |
References DUNE::IMC::StationKeeping::lat, DUNE::IMC::StationKeeping::lon, DUNE::IMC::StationKeeping::radius, DUNE::IMC::StationKeeping::speed, DUNE::IMC::StationKeeping::speed_units, DUNE::Math::trimValueMod(), DUNE::IMC::StationKeeping::z, and DUNE::IMC::StationKeeping::z_units.
DUNE::Maneuvers::StationKeep::StationKeep | ( | Maneuvers::Maneuver * | task, |
double | lat, | ||
double | lon, | ||
float | radius, | ||
float | z, | ||
uint8_t | z_units, | ||
float | speed, | ||
uint8_t | speed_units | ||
) |
Default constructor.
[in] | task | pointer to task object (debug and inf) |
[in] | lat | latitude of maneuver |
[in] | lon | longitude of maneuver |
[in] | radius | station keeping radius |
[in] | z | zed reference for this maneuver |
[in] | z_units | units of the zed reference |
[in] | speed | speed reference for maneuver |
[in] | speed_units | speed units of the reference |
References DUNE::IMC::CL_NONE, DUNE::IMC::CL_PATH, DUNE::IMC::DesiredPath::end_lat, DUNE::IMC::DesiredPath::end_lon, DUNE::IMC::DesiredPath::end_z, DUNE::IMC::DesiredPath::end_z_units, DUNE::IMC::EstimatedState::lat, DUNE::IMC::EstimatedState::lon, DUNE::IMC::DesiredPath::speed, DUNE::IMC::DesiredPath::speed_units, DUNE::Coordinates::toPolar(), DUNE::Coordinates::toWGS84(), and DUNE::IMC::Z_DEPTH.
bool DUNE::Maneuvers::StationKeep::isInside | ( | void | ) | const |
Check if vehicle is inside boundary.
bool DUNE::Maneuvers::StationKeep::isMoving | ( | void | ) | const |
Check if vehicle is moving.
void DUNE::Maneuvers::StationKeep::update | ( | const IMC::EstimatedState * | state | ) |
Update behavior.
[in] | state | pointer to EstimatedState message |
void DUNE::Maneuvers::StationKeep::updatePathControl | ( | const IMC::PathControlState * | pcs | ) |
Update behavior with path control state.
[in] | pcs | pointer to PathControlState message |
References DUNE::IMC::PathControlState::FL_NEAR, DUNE::IMC::PathControlState::flags, DUNE::Math::norm(), DUNE::IMC::PathControlState::x, and DUNE::IMC::PathControlState::y.