class ugcs::vsm::Landing_action

Overview

Land at the specified position. More…

#include <landing_action.h>

class Landing_action: public ugcs::vsm::Action
{
public:
    // typedefs

    typedef std::shared_ptr<Landing_action> Ptr;
    typedef std::weak_ptr<Landing_action> Weak_ptr;

    // fields

    Wgs84_position position;
    double heading;
    double elevation;
    double descend_rate;
    double acceptance_radius;

    // construction

    Landing_action(
        Wgs84_position position,
        double heading,
        double elevation,
        double descend_rate,
        double acceptance_radius
        );

    Landing_action(const Property_list& p);

    // methods

    template <typename... Args>
    static Ptr Create(Args&&... args);
};

Inherited Members

public:
    // typedefs

    typedef std::shared_ptr<Action> Ptr;
    typedef std::weak_ptr<Action> Weak_ptr;
    typedef ugcs::vsm::Param_exception<Format_exception_dummy_struct,> Format_exception;

    // enums

    enum Type;

    // structs

    struct Format_exception_dummy_struct;

    template <>
    struct Mapper<Action::Type::REPEAT_SERVO>;

    template <>
    struct Mapper<Action::Type::POI>;

    template <>
    struct Mapper<Action::Type::PAYLOAD_STEERING>;

    template <>
    struct Mapper<Action::Type::PANORAMA>;

    template <>
    struct Mapper<Action::Type::SET_HOME>;

    template <>
    struct Mapper<Action::Type::TAKEOFF>;

    template <>
    struct Mapper<Action::Type::SET_SERVO>;

    template <>
    struct Mapper<Action::Type::TASK_ATTRIBUTES>;

    template <>
    struct Mapper<Action::Type::VTOL_TRANSITION>;

    template <>
    struct Mapper<Action::Type::MOVE>;

    template <>
    struct Mapper<Action::Type::HEADING>;

    template <>
    struct Mapper<Action::Type::CAMERA_CONTROL>;

    template <Type type_val>
    struct Mapper;

    template <>
    struct Mapper<Action::Type::LANDING>;

    template <>
    struct Mapper<Action::Type::CAMERA_SERIES_BY_DISTANCE>;

    template <>
    struct Mapper<Action::Type::CAMERA_TRIGGER>;

    template <>
    struct Mapper<Action::Type::CAMERA_SERIES_BY_TIME>;

    template <>
    struct Mapper<Action::Type::CHANGE_SPEED>;

    template <>
    struct Mapper<Action::Type::WAIT>;

    // fields

    int command_id = -1;

    // methods

    template <typename... Args>
    static Ptr Create(Args&&... args);

    Type Get_type() const;
    void Set_id(int id);
    std::string Get_name();

    template <Type type_val>
    Mapper<type_val>::type::Ptr Get_action();

Detailed Documentation

Land at the specified position.

Typedefs

typedef std::shared_ptr<Landing_action> Ptr

Pointer type.

typedef std::weak_ptr<Landing_action> Weak_ptr

Pointer type.

Fields

Wgs84_position position

Landing position.

The landing phase should start at the specified position, i.e. altitude is an initial altitude for the landing phase.

double heading

Heading in radians.

double elevation

Elevation in meters (i.e.

terrain height) underneath the position.

double descend_rate

Descending rate, m/s.

double acceptance_radius

Acceptance radius of the position.

Maximum distance at which the position is considered reached by the vehicle. Set in meters.

Construction

Landing_action(
    Wgs84_position position,
    double heading,
    double elevation,
    double descend_rate,
    double acceptance_radius
    )

Construct the landing action explicitly.

Landing_action(const Property_list& p)

Construct move action from protobuf command.

Methods

template <typename... Args>
static Ptr Create(Args&&... args)

Create an instance.