36 #ifndef vpRobotMavsdk_h_
37 #define vpRobotMavsdk_h_
39 #include <visp3/core/vpConfig.h>
43 #if defined(VISP_HAVE_MAVSDK) && ((__cplusplus >= 201703L) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201703L)))
51 #include <visp3/core/vpHomogeneousMatrix.h>
91 class VISP_EXPORT vpRobotMavsdk
95 vpRobotMavsdk(
const std::string &connection_info);
96 virtual ~vpRobotMavsdk();
100 void connect(
const std::string &connection_info);
105 float getBatteryLevel()
const;
106 void getPosition(
float &ned_north,
float &ned_east,
float &ned_down,
float &ned_yaw)
const;
108 std::tuple<float, float> getHome()
const;
109 std::string getAddress()
const;
110 bool isRunning()
const;
118 bool hasFlyingCapability();
122 bool releaseControl();
124 void setAutoLand(
bool auto_land);
125 bool setForwardSpeed(
double body_frd_vx);
126 bool setLateralSpeed(
double body_frd_vy);
127 bool setGPSGlobalOrigin(
double latitude,
double longitude,
double altitude);
128 void setPositioningIncertitude(
float position_incertitude,
float yaw_incertitude);
129 bool setPosition(
float ned_north,
float ned_east,
float ned_down,
float ned_yaw,
bool blocking =
true,
130 int timeout_sec = 10);
131 bool setPosition(
const vpHomogeneousMatrix &ned_M_frd,
bool blocking =
true,
int timeout_sec = 10);
132 bool setPositionRelative(
float ned_delta_north,
float ned_delta_east,
float ned_delta_down,
float ned_delta_yaw,
133 bool blocking =
true,
int timeout_sec = 10);
134 bool setPositionRelative(
const vpHomogeneousMatrix &delta_frd_M_frd,
bool blocking =
true,
int timeout_sec = 10);
136 bool setVerticalSpeed(
double body_frd_vz);
137 bool setYawSpeed(
double body_frd_wz);
138 void setTakeOffAlt(
double altitude);
139 void setVerbose(
bool verbose);
142 bool takeOff(
bool interactive =
true,
int timeout_sec = 10,
bool use_gps =
false);
143 bool takeOff(
bool interactive,
double takeoff_altitude,
int timeout_sec = 10,
bool use_gps =
false);
149 void createDroneController();
150 void setupCallbacks();
151 void startController();
153 vpRobotMavsdk(
const vpRobotMavsdk &);
154 vpRobotMavsdk &operator=(
const vpRobotMavsdk &);
156 class vpRobotMavsdkImpl;
157 vpRobotMavsdkImpl *m_impl;
Implementation of column vector and the associated operations.
Implementation of an homogeneous matrix and operations on such kind of matrices.