DUNE: Uniform Navigational Environment
2019.02.1
|
Public Types | |
typedef void(Task::* | PktHandler) (const mavlink_message_t *msg) |
typedef std::map< int, PktHandler > | PktHandlerMap |
Public Types inherited from DUNE::Concurrency::Runnable |
Public Member Functions | |
Task (const std::string &name, Tasks::Context &ctx) | |
void | onResourceRelease (void) |
void | onResourceAcquisition (void) |
void | onUpdateParameters (void) |
void | openConnection (void) |
void | setupRate (uint8_t rate) |
void | info (uint32_t was, uint32_t is, uint32_t loop, const char *desc) |
void | consume (const IMC::ControlLoops *cloops) |
void | activateFBW (void) |
void | consume (const IMC::DesiredRoll *d_roll) |
void | consume (const IMC::DesiredControl *d_acc) |
void | consume (const IMC::DesiredZ *d_z) |
void | consume (const IMC::DesiredVerticalRate *d_vr) |
void | consume (const IMC::DesiredSpeed *d_speed) |
int | map2PWM (int min_pwm, int max_pwm, float min_value, float max_value, float value, bool reverse) |
void | consume (const IMC::DesiredPath *path) |
void | consume (const IMC::Takeoff *tkoff) |
void | consume (const IMC::Land *land) |
void | autoTakeoff (const IMC::DesiredPath *dpath, float pitch) |
void | autoLand (const IMC::Land *land) |
void | loiterHere (void) |
void | consume (const IMC::IdleManeuver *idle) |
void | consume (const IMC::VehicleMedium *vm) |
void | consume (const IMC::VehicleState *msg) |
void | consume (const IMC::SimulatedState *sim_state) |
void | consume (const IMC::DevCalibrationControl *msg) |
void | consume (const IMC::AutopilotMode *msg) |
void | sendCommandPacket (uint16_t cmd, float arg1=0, float arg2=0, float arg3=0, float arg4=0, float arg5=0, float arg6=0, float arg7=0) |
void | sendMissionItem (bool next) |
void | onMain (void) |
bool | poll (double timeout) |
int | sendData (uint8_t *bfr, int size) |
int | receiveData (uint8_t *buf, size_t blen) |
void | handleArdupilotData (void) |
void | handleAttitudePacket (const mavlink_message_t *msg) |
void | handleImuRaw (const mavlink_message_t *msg) |
void | handlePositionPacket (const mavlink_message_t *msg) |
float | getHeight (void) |
void | handleHWStatusPacket (const mavlink_message_t *msg) |
void | handleSystemStatusPacket (const mavlink_message_t *msg) |
void | handleScaledPressurePacket (const mavlink_message_t *msg) |
void | handleRawGPSPacket (const mavlink_message_t *msg) |
void | handleWindPacket (const mavlink_message_t *msg) |
void | handleCmdAckPacket (const mavlink_message_t *msg) |
void | handleMissionAckPacket (const mavlink_message_t *msg) |
void | handleStatusTextPacket (const mavlink_message_t *msg) |
void | handleHeartbeatPacket (const mavlink_message_t *msg) |
void | handleNavControllerPacket (const mavlink_message_t *msg) |
void | handleMissionItemPacket (const mavlink_message_t *msg) |
void | handleHUDPacket (const mavlink_message_t *msg) |
void | handleSystemTimePacket (const mavlink_message_t *msg) |
Public Member Functions inherited from DUNE::Tasks::Task | |
Task (const std::string &name, Context &context) | |
virtual | ~Task (void) |
const char * | getName (void) const |
const char * | getSystemName (void) const |
unsigned int | getSystemId (void) const |
unsigned int | getEntityId (void) const |
unsigned int | resolveEntity (const std::string &label) const |
std::string | resolveEntity (unsigned int id) const |
DebugLevel | getDebugLevel (void) const |
uint16_t | getActivationTime (void) const |
uint16_t | getDeactivationTime (void) const |
unsigned int | resolveSystemName (const std::string &name) const |
const char * | resolveSystemId (unsigned int id) const |
void | loadConfig (void) |
void | setPriority (unsigned int value) |
unsigned int | getPriority (void) const |
void | inf (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void | war (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void | err (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void | cri (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void | debug (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void void | trace (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void void void | spew (const char *format,...) DUNE_PRINTF_FORMAT(2 |
void void void void void void void void | dispatch (IMC::Message *msg, unsigned int flags=0) |
void | dispatch (IMC::Message &msg, unsigned int flags=0) |
void | dispatchReply (const IMC::Message &original, IMC::Message &msg, unsigned int flags=0) |
void | receive (const IMC::Message *msg) |
void | reserveEntities (void) |
void | resolveEntities (void) |
void | acquireResources (void) |
void | releaseResources (void) |
void | initializeResources (void) |
void | updateParameters (bool act_deact=true) |
void | writeParamsXML (std::ostream &os) const |
const char * | getEntityLabel (void) const |
void | setEntityLabel (const std::string &label) |
Public Member Functions inherited from DUNE::Tasks::AbstractTask | |
AbstractTask (void) | |
virtual | ~AbstractTask (void) |
Public Member Functions inherited from DUNE::Concurrency::Thread | |
Thread (void) | |
virtual | ~Thread (void) |
int | getProcessorUsage (void) |
Public Member Functions inherited from DUNE::Concurrency::Runnable | |
Runnable (void) | |
virtual | ~Runnable (void) |
void | start (void) |
void | stop (void) |
void | join (void) |
void | stopAndJoin (void) |
void | setPriority (Scheduler::Policy policy, unsigned priority) |
unsigned | getPriority (void) |
State | getState (void) |
bool | isCreated (void) |
bool | isStopping (void) |
bool | isRunning (void) |
bool | isStarting (void) |
bool | isDead (void) |
Public Attributes | |
Arguments | m_args |
PktHandlerMap | m_mlh |
double | m_last_pkt_time |
uint8_t | m_buf [512] |
IMC::EstimatedState | m_estate |
IMC::Voltage | m_volt |
IMC::Current | m_curr |
IMC::FuelLevel | m_fuel |
IMC::Pressure | m_pressure |
IMC::Temperature | m_temp |
IMC::GpsFix | m_fix |
IMC::EstimatedStreamVelocity | m_stream |
IMC::PathControlState | m_pcs |
IMC::DesiredPath | m_dpath |
IMC::ControlLoops | m_controllps |
Network::TCPSocket * | m_TCP_sock |
uint8_t | m_sysid |
double | m_lat |
double | m_lon |
float | m_hae_msl |
float | m_hae_offset |
bool | m_reboot |
bool | m_offset_st |
float | m_href |
bool | m_external |
int | m_current_wp |
bool | m_critical |
uint32_t | m_cloops |
mavlink_message_t | m_msg |
int | m_desired_radius |
int | m_gnd_speed |
int | m_mode |
bool | m_changing_wp |
bool | m_error_missing |
bool | m_esta_ext |
bool | m_has_setup_rate |
bool | m_ground |
float | m_droll |
float | m_dclimb |
float | m_dspeed |
APM_Vehicle | m_vehicle_type |
bool | m_service |
float | m_last_wp |
std::queue< mavlink_message_t > | m_mission_items |
float | m_gb_pan |
float | m_gb_tilt |
float | m_gb_retract |
bool | m_land |
Additional Inherited Members | |
Protected Member Functions inherited from DUNE::Tasks::Task | |
void | setEntityState (IMC::EntityState::StateEnum state, Status::Code code) |
void | setEntityState (IMC::EntityState::StateEnum state, const std::string &description) |
IMC::EntityState::StateEnum | getEntityState (void) const |
unsigned int | reserveEntity (const std::string &label) |
template<typename E > | |
E * | reserveEntity (const std::string &label) |
Entities::BasicEntity * | getLocalEntity (const std::string &label) |
bool | stopping (void) |
bool | isActive (void) const |
bool | isActivating (void) const |
bool | isDeactivating (void) const |
void | waitForMessages (double timeout) |
void | consumeMessages (void) |
template<typename T > | |
Parameter & | param (const std::string &name, T &var) |
template<typename Y , typename T > | |
Parameter & | param (const std::string &name, T &var) |
template<typename T > | |
bool | paramChanged (T &var) |
void | paramActive (Parameter::Scope def_scope, Parameter::Visibility def_visibility, bool def_value=false) |
void | setParamSectionEditor (const std::string &name) |
template<typename M , typename T > | |
void | bind (T *task_obj, void(T::*consumer)(const M *)=&T::consume) |
template<typename T > | |
void | bind (T *task_obj, const std::vector< uint32_t > &list) |
template<typename T , typename M > | |
void | bind (T *task_obj, const std::vector< uint32_t > &list, void(T::*consumer)(const M *)=&T::consume) |
template<typename T > | |
void | bind (T *task_obj, const std::vector< std::string > &list) |
void | requestActivation (void) |
void | requestDeactivation (void) |
void | activate (void) |
void | activationFailed (const std::string &reason) |
void | deactivate (void) |
void | deactivationFailed (const std::string &reason) |
virtual bool | onWriteParamsXML (std::ostream &os) const |
virtual void | onEntityReservation (void) |
virtual void | onEntityResolution (void) |
virtual void | onReportEntityState (void) |
virtual void | onResourceInitialization (void) |
virtual void | onRequestActivation (void) |
virtual void | onRequestDeactivation (void) |
virtual void | onActivation (void) |
virtual void | onDeactivation (void) |
virtual void | onQueryEntityParameters (const IMC::QueryEntityParameters *msg) |
virtual void | onSetEntityParameters (const IMC::SetEntityParameters *msg) |
virtual void | onPushEntityParameters (const IMC::PushEntityParameters *msg) |
virtual void | onPopEntityParameters (const IMC::PopEntityParameters *msg) |
Protected Member Functions inherited from DUNE::Concurrency::Thread | |
void | startImpl (void) |
void | stopImpl (void) |
void | joinImpl (void) |
void | setPriorityImpl (Scheduler::Policy policy, unsigned priority) |
unsigned | getPriorityImpl (void) |
Protected Attributes inherited from DUNE::Tasks::Task | |
Context & | m_ctx |
std::vector< Entities::BasicEntity * > | m_entities |
typedef void(Task::* Control::UAV::Ardupilot::Task::PktHandler) (const mavlink_message_t *msg) |
Type definition for Arduino packet handler.
typedef std::map<int, PktHandler> Control::UAV::Ardupilot::Task::PktHandlerMap |
|
inline |
References Control::UAV::Ardupilot::Arguments::alt, Control::UAV::Ardupilot::Arguments::ardu_tracker, Control::UAV::Ardupilot::Arguments::comm_timeout, Control::UAV::Ardupilot::Arguments::convert_msl, Control::UAV::Ardupilot::Arguments::cp_wp_radius, Control::UAV::Ardupilot::Arguments::esc_temp, Control::UAV::Ardupilot::Arguments::form_fl, Control::UAV::Ardupilot::Arguments::form_fl_ent, handleAttitudePacket(), handleCmdAckPacket(), handleHeartbeatPacket(), handleHUDPacket(), handleHWStatusPacket(), handleImuRaw(), handleMissionAckPacket(), handleMissionItemPacket(), handleNavControllerPacket(), handlePositionPacket(), handleRawGPSPacket(), handleScaledPressurePacket(), handleStatusTextPacket(), handleSystemStatusPacket(), handleSystemTimePacket(), handleWindPacket(), Control::UAV::Ardupilot::Arguments::hitl, Control::UAV::Ardupilot::Arguments::ip, Control::UAV::Ardupilot::Arguments::loiter_idle, Control::UAV::Ardupilot::Arguments::lradius, Control::UAV::Ardupilot::Arguments::ltolerance, Control::UAV::Ardupilot::RadioChannel::pwm_max, Control::UAV::Ardupilot::RadioChannel::pwm_min, Control::UAV::Ardupilot::Arguments::pwrm, Control::UAV::Ardupilot::Arguments::rc1, Control::UAV::Ardupilot::Arguments::rc2, Control::UAV::Ardupilot::Arguments::rc3, Control::UAV::Ardupilot::RadioChannel::reverse, Control::UAV::Ardupilot::Arguments::secs, Control::UAV::Ardupilot::Arguments::takeoff_pitch, Control::UAV::Ardupilot::Arguments::TCP_addr, Control::UAV::Ardupilot::Arguments::TCP_port, Control::UAV::Ardupilot::Arguments::trate, Control::UAV::Ardupilot::Arguments::use_external_nav, Control::UAV::Ardupilot::RadioChannel::val_max, and Control::UAV::Ardupilot::RadioChannel::val_min.
|
inline |
Messages for FBWB control (using DUNE's controllers)
References Control::UAV::Ardupilot::VEHICLE_FIXEDWING.
|
inline |
|
inline |
|
inline |
|
inline |
References Control::UAV::Ardupilot::Arguments::form_fl, Control::UAV::Ardupilot::Arguments::form_fl_ent, Control::UAV::Ardupilot::RadioChannel::pwm_max, Control::UAV::Ardupilot::RadioChannel::pwm_min, Control::UAV::Ardupilot::Arguments::rc1, Control::UAV::Ardupilot::Arguments::rc2, Control::UAV::Ardupilot::Arguments::rc3, Control::UAV::Ardupilot::RadioChannel::reverse, Control::UAV::Ardupilot::RadioChannel::val_max, and Control::UAV::Ardupilot::RadioChannel::val_min.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Message for GUIDED/AUTO control (using Ardupilot's controllers)
References Control::UAV::Ardupilot::Arguments::alt, Control::UAV::Ardupilot::Arguments::ardu_tracker, Control::UAV::Ardupilot::CP_MODE_GUIDED, Control::UAV::Ardupilot::PL_MODE_GUIDED, and Control::UAV::Ardupilot::VEHICLE_COPTER.
|
inline |
References Control::UAV::Ardupilot::VEHICLE_COPTER.
|
inline |
|
inline |
References Control::UAV::Ardupilot::Arguments::loiter_idle.
|
inline |
|
inline |
|
inline |
Used for HITL simulations.
|
inline |
|
inline |
|
inline |
|
inline |
References Control::UAV::Ardupilot::Arguments::comm_timeout.
|
inline |
References Control::UAV::Ardupilot::Arguments::use_external_nav.
Referenced by Task().
|
inline |
Referenced by Task().
|
inline |
References Control::UAV::Ardupilot::CP_MODE_AUTO, Control::UAV::Ardupilot::CP_MODE_DUNE, Control::UAV::Ardupilot::CP_MODE_GUIDED, Control::UAV::Ardupilot::CP_MODE_LAND, Control::UAV::Ardupilot::CP_MODE_LOITER, Control::UAV::Ardupilot::CP_MODE_STABILIZE, Control::UAV::Ardupilot::Arguments::loiter_idle, Control::UAV::Ardupilot::PL_MODE_AUTO, Control::UAV::Ardupilot::PL_MODE_AUTOTUNE, Control::UAV::Ardupilot::PL_MODE_CIRCLE, Control::UAV::Ardupilot::PL_MODE_FBWB, Control::UAV::Ardupilot::PL_MODE_GUIDED, Control::UAV::Ardupilot::PL_MODE_LOITER, Control::UAV::Ardupilot::PL_MODE_MANUAL, Control::UAV::Ardupilot::PL_MODE_RTL, Control::UAV::Ardupilot::PL_MODE_STABILIZE, Control::UAV::Ardupilot::Arguments::trate, Control::UAV::Ardupilot::VEHICLE_COPTER, Control::UAV::Ardupilot::VEHICLE_FIXEDWING, and Control::UAV::Ardupilot::VEHICLE_UNKNOWN.
Referenced by Task().
|
inline |
Referenced by Task().
|
inline |
References Control::UAV::Ardupilot::Arguments::pwrm.
Referenced by Task().
|
inline |
Referenced by Task().
|
inline |
Referenced by Task().
|
inline |
Referenced by Task().
|
inline |
References Control::UAV::Ardupilot::Arguments::alt, Control::UAV::Ardupilot::Arguments::ardu_tracker, Control::UAV::Ardupilot::CP_MODE_AUTO, Control::UAV::Ardupilot::CP_MODE_GUIDED, Control::UAV::Ardupilot::Arguments::cp_wp_radius, Control::UAV::Ardupilot::Arguments::ltolerance, Control::UAV::Ardupilot::Arguments::secs, and Control::UAV::Ardupilot::VEHICLE_COPTER.
Referenced by Task().
|
inline |
References Control::UAV::Ardupilot::Arguments::convert_msl, and Control::UAV::Ardupilot::VEHICLE_UNKNOWN.
Referenced by Task().
|
inline |
Referenced by Task().
|
inline |
References Control::UAV::Ardupilot::Arguments::esc_temp.
Referenced by Task().
|
inline |
Referenced by Task().
|
inline |
References Control::UAV::Ardupilot::Arguments::pwrm.
Referenced by Task().
|
inline |
References Control::UAV::Ardupilot::Arguments::hitl.
Referenced by Task().
|
inline |
Referenced by Task().
|
inline |
Prints to terminal and log when control loops are activated and deactivated.
|
inline |
|
inline |
Converts value in range min_value:max_value to a value_pwm in range min_pwm:max_pwm.
References DUNE::Math::trimValue().
|
inlinevirtual |
Implements DUNE::Tasks::Task.
|
inlinevirtual |
Called when the task is instructed to acquire resources whose configuration is defined by run-time parameters.
Reimplemented from DUNE::Tasks::Task.
References Control::UAV::Ardupilot::Arguments::ip, and Control::UAV::Ardupilot::Arguments::TCP_port.
|
inlinevirtual |
Called when the task is instructed to release resources.
Derived classes that override this function must not assume that any resource was previously acquired. This function must be implemented in such a way that it can be called at any time.
Reimplemented from DUNE::Tasks::Task.
|
inlinevirtual |
Called when the task is instructed to update its run-time parameters.
Derived classes that need to compute auxiliary values based on run-time parameters should override this function.
Reimplemented from DUNE::Tasks::Task.
References Control::UAV::Ardupilot::Arguments::rc1, Control::UAV::Ardupilot::Arguments::rc2, Control::UAV::Ardupilot::RadioChannel::val_max, and Control::UAV::Ardupilot::RadioChannel::val_min.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
uint8_t Control::UAV::Ardupilot::Task::m_buf[512] |
bool Control::UAV::Ardupilot::Task::m_changing_wp |
uint32_t Control::UAV::Ardupilot::Task::m_cloops |
Bitfield of enabled control loops.
IMC::ControlLoops Control::UAV::Ardupilot::Task::m_controllps |
DesiredPath message.
bool Control::UAV::Ardupilot::Task::m_critical |
Critical WP.
IMC::Current Control::UAV::Ardupilot::Task::m_curr |
int Control::UAV::Ardupilot::Task::m_current_wp |
Current waypoint.
float Control::UAV::Ardupilot::Task::m_dclimb |
int Control::UAV::Ardupilot::Task::m_desired_radius |
IMC::DesiredPath Control::UAV::Ardupilot::Task::m_dpath |
DesiredPath message.
float Control::UAV::Ardupilot::Task::m_droll |
Desired control.
float Control::UAV::Ardupilot::Task::m_dspeed |
bool Control::UAV::Ardupilot::Task::m_error_missing |
bool Control::UAV::Ardupilot::Task::m_esta_ext |
IMC::EstimatedState Control::UAV::Ardupilot::Task::m_estate |
Estimated state message.
bool Control::UAV::Ardupilot::Task::m_external |
External control.
IMC::GpsFix Control::UAV::Ardupilot::Task::m_fix |
GPS Fix message.
IMC::FuelLevel Control::UAV::Ardupilot::Task::m_fuel |
float Control::UAV::Ardupilot::Task::m_gb_pan |
Desired gimbal angles.
float Control::UAV::Ardupilot::Task::m_gb_retract |
float Control::UAV::Ardupilot::Task::m_gb_tilt |
int Control::UAV::Ardupilot::Task::m_gnd_speed |
bool Control::UAV::Ardupilot::Task::m_ground |
Vehicle is on ground.
float Control::UAV::Ardupilot::Task::m_hae_msl |
Height received from the Ardupilot (Geoid/MSL).
float Control::UAV::Ardupilot::Task::m_hae_offset |
Height offset to convert to WGS-84 ellipsoid.
bool Control::UAV::Ardupilot::Task::m_has_setup_rate |
Setup rate hack.
float Control::UAV::Ardupilot::Task::m_href |
WGS84 height on ground.
bool Control::UAV::Ardupilot::Task::m_land |
Flag to signal if a land maneuver occured.
double Control::UAV::Ardupilot::Task::m_last_pkt_time |
float Control::UAV::Ardupilot::Task::m_last_wp |
Time since last waypoint was sent.
double Control::UAV::Ardupilot::Task::m_lat |
Last received position.
double Control::UAV::Ardupilot::Task::m_lon |
std::queue<mavlink_message_t> Control::UAV::Ardupilot::Task::m_mission_items |
Mission items queue.
PktHandlerMap Control::UAV::Ardupilot::Task::m_mlh |
Arduino packet handling.
int Control::UAV::Ardupilot::Task::m_mode |
mavlink_message_t Control::UAV::Ardupilot::Task::m_msg |
Parser Variables.
bool Control::UAV::Ardupilot::Task::m_offset_st |
Flag indicating MSL-WGS84 offset has already been calculated.
IMC::Pressure Control::UAV::Ardupilot::Task::m_pressure |
Pressure message.
bool Control::UAV::Ardupilot::Task::m_reboot |
Flag indicating task is booting.
bool Control::UAV::Ardupilot::Task::m_service |
Check if is in service.
IMC::EstimatedStreamVelocity Control::UAV::Ardupilot::Task::m_stream |
Wind message.
uint8_t Control::UAV::Ardupilot::Task::m_sysid |
System ID.
Network::TCPSocket* Control::UAV::Ardupilot::Task::m_TCP_sock |
TCP socket.
IMC::Temperature Control::UAV::Ardupilot::Task::m_temp |
Temperature message.
APM_Vehicle Control::UAV::Ardupilot::Task::m_vehicle_type |
Type of system to be controlled.
IMC::Voltage Control::UAV::Ardupilot::Task::m_volt |
Battery messages.