class ugcs::vsm::Move_action

Overview

Move vehicle to the specific position (waypoint). More…

#include <move_action.h>

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

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

    // enums

    enum Turn_type;

    // fields

    Wgs84_position position;
    double wait_time = 0;
    double acceptance_radius = 0;
    double loiter_orbit = 0;
    double heading = 0;
    double elevation = 0;
    Turn_type turn_type;

    // construction

    Move_action(
        Wgs84_position position,
        double wait_time,
        double acceptance_radius,
        double loiter_orbit,
        double heading,
        double elevation
        );

    Move_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

Move vehicle to the specific position (waypoint).

Typedefs

typedef std::shared_ptr<Move_action> Ptr

Pointer type.

typedef std::weak_ptr<Move_action> Weak_ptr

Pointer type.

Fields

Wgs84_position position

Target global position of the movement.

double wait_time = 0

Wait interval in seconds.

Shows how long the vehicle should stay/hold at the target position.

double acceptance_radius = 0

Acceptance radius of the target position in meters.

When the sphere with the radius centered at the target position is hit by the vehicle the target position is considered reached.

double loiter_orbit = 0

Radius of the point fly-by orbit in meters.

Positive value stands for the CW direction, negative - CCW. Use

0

for no-braking pass through the target point.

double heading = 0

Heading in radians.

double elevation = 0

Elevation in meters (i.e.

terrain height) underneath the position.

Construction

Move_action(
    Wgs84_position position,
    double wait_time,
    double acceptance_radius,
    double loiter_orbit,
    double heading,
    double elevation
    )

Construct move action explicitly.

Move_action(const Property_list& p)

Construct move action from protobuf command.

Methods

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

Create an instance.