CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
Ardupilot

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.

GitHub Repository: Ardupilot/ardupilot
Path: blob/master/libraries/AC_PrecLand/AC_PrecLand_Companion.h
Views: 1798
1
#pragma once
2
3
#include "AC_PrecLand_config.h"
4
5
#if AC_PRECLAND_COMPANION_ENABLED
6
7
#include "AC_PrecLand_Backend.h"
8
#include <AP_Math/AP_Math.h>
9
10
/*
11
* AC_PrecLand_Companion - implements precision landing using target vectors provided
12
* by a companion computer (i.e. Odroid) communicating via MAVLink
13
* The companion computer must provide "Line-Of-Sight" measurements
14
* in the form of LANDING_TARGET mavlink messages.
15
*/
16
17
class AC_PrecLand_Companion : public AC_PrecLand_Backend
18
{
19
public:
20
// Constructor
21
using AC_PrecLand_Backend::AC_PrecLand_Backend;
22
23
// perform any required initialisation of backend
24
void init() override;
25
26
// retrieve updates from sensor
27
void update() override;
28
29
// parses a mavlink message from the companion computer
30
void handle_msg(const mavlink_landing_target_t &packet, uint32_t timestamp_ms) override;
31
32
private:
33
bool _wrong_frame_msg_sent;
34
};
35
36
37
#endif // AC_PRECLAND_COMPANION_ENABLED
38
39