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))) \
44 && defined(VISP_HAVE_THREADS)
52 #include <visp3/core/vpHomogeneousMatrix.h>
93 class VISP_EXPORT vpRobotMavsdk
97 vpRobotMavsdk(
const std::string &connection_info);
98 virtual ~vpRobotMavsdk();
102 void connect(
const std::string &connection_info);
107 float getBatteryLevel()
const;
108 void getPosition(
float &ned_north,
float &ned_east,
float &ned_down,
float &ned_yaw)
const;
110 std::tuple<float, float> getHome()
const;
111 std::string getAddress()
const;
112 bool isRunning()
const;
120 bool hasFlyingCapability();
124 bool releaseControl();
126 void setAutoLand(
bool auto_land);
127 bool setForwardSpeed(
double body_frd_vx);
128 bool setLateralSpeed(
double body_frd_vy);
129 bool setGPSGlobalOrigin(
double latitude,
double longitude,
double altitude);
130 void setPositioningIncertitude(
float position_incertitude,
float yaw_incertitude);
131 bool setPosition(
float ned_north,
float ned_east,
float ned_down,
float ned_yaw,
bool blocking =
true,
132 int timeout_sec = 10);
133 bool setPosition(
const vpHomogeneousMatrix &ned_M_frd,
bool blocking =
true,
int timeout_sec = 10);
134 bool setPositionRelative(
float ned_delta_north,
float ned_delta_east,
float ned_delta_down,
float ned_delta_yaw,
135 bool blocking =
true,
int timeout_sec = 10);
136 bool setPositionRelative(
const vpHomogeneousMatrix &delta_frd_M_frd,
bool blocking =
true,
int timeout_sec = 10);
138 bool setVerticalSpeed(
double body_frd_vz);
139 bool setYawSpeed(
double body_frd_wz);
140 void setTakeOffAlt(
double altitude);
141 void setVerbose(
bool verbose);
144 bool takeOff(
bool interactive =
true,
int timeout_sec = 10,
bool use_gps =
false);
145 bool takeOff(
bool interactive,
double takeoff_altitude,
int timeout_sec = 10,
bool use_gps =
false);
151 void createDroneController();
152 void setupCallbacks();
153 void startController();
155 vpRobotMavsdk(
const vpRobotMavsdk &);
156 vpRobotMavsdk &operator=(
const vpRobotMavsdk &);
158 class vpRobotMavsdkImpl;
159 vpRobotMavsdkImpl *m_impl;
Implementation of column vector and the associated operations.
Implementation of an homogeneous matrix and operations on such kind of matrices.