Auterion App SDK
Auterion SDK is a library that can be used by AuterionOS apps to communicate with the system.
Loading...
Searching...
No Matches
guidance_strategy.hpp
1/****************************************************************************
2 *
3 * Copyright 2026 Auterion. All rights reserved.
4 *
5 ****************************************************************************/
6
7#pragma once
8
9#include <Eigen/Eigen>
10#include <auterion_sdk/system_state/system_state.hpp>
11
12namespace auterion {
13
19 Eigen::Vector3d los{Eigen::Vector3d::Zero()};
21 Eigen::Vector3d los_rate{Eigen::Vector3d::Zero()};
22
24 Eigen::Quaterniond attitude_enu{Eigen::Quaterniond::Identity()};
26 Eigen::Vector3d velocity_enu{Eigen::Vector3d::Zero()};
28 Eigen::Vector3d acceleration_flu{Eigen::Vector3d::Zero()};
29
33 bool following{false};
35 double dt_s{0.0};
36
38 double manual_pitch{0.0};
39 double manual_roll{0.0};
40 double manual_throttle{0.0};
41 double manual_yaw{0.0};
42
43 // TEMPORARY: position fields needed by the host app — pending SDK inclusion.
44 Eigen::Vector3f position_enu_m{Eigen::Vector3f::Zero()};
45 bool local_position_valid{false};
46 GlobalPosition global_position{};
47 bool global_position_valid{false};
48};
49
53 Eigen::Vector3d acceleration_enu{Eigen::Vector3d::Zero()};
55 bool auto_level{true};
57 double thrust_rate{0.0};
58};
59
69 public:
70 virtual ~IGuidanceStrategy() = default;
71
75 virtual GuidanceOutput compute(const GuidanceInput& input) = 0;
76
78 virtual void onActivate() {}
79
81 virtual void onDeactivate() {}
82};
83
84} // namespace auterion
Definition guidance_strategy.hpp:68
virtual GuidanceOutput compute(const GuidanceInput &input)=0
virtual void onActivate()
Called when the flight mode is activated. Reset internal state here.
Definition guidance_strategy.hpp:78
virtual void onDeactivate()
Called when the flight mode is deactivated.
Definition guidance_strategy.hpp:81
Definition guidance_strategy.hpp:17
double dt_s
Time step [s].
Definition guidance_strategy.hpp:35
Eigen::Vector3d los
Line-of-sight unit vector from drone to target (ENU).
Definition guidance_strategy.hpp:19
bool following
Definition guidance_strategy.hpp:33
Eigen::Vector3d los_rate
Angular rate of the line-of-sight vector (ENU) [rad/s].
Definition guidance_strategy.hpp:21
double manual_pitch
Operator stick inputs — available for strategies that blend manual control.
Definition guidance_strategy.hpp:38
Eigen::Vector3d acceleration_flu
Measured specific force in FLU body frame [m/s²].
Definition guidance_strategy.hpp:28
Eigen::Vector3d velocity_enu
Vehicle velocity in ENU [m/s].
Definition guidance_strategy.hpp:26
Eigen::Quaterniond attitude_enu
Current vehicle attitude quaternion (ENU).
Definition guidance_strategy.hpp:24
What the guidance strategy tells the host application to do each tick.
Definition guidance_strategy.hpp:51
double thrust_rate
Desired thrust rate along the LOS axis [normalized/s].
Definition guidance_strategy.hpp:57
Eigen::Vector3d acceleration_enu
Desired acceleration setpoint in ENU [m/s²].
Definition guidance_strategy.hpp:53
bool auto_level
If true, LosController levels the drone back to hover.
Definition guidance_strategy.hpp:55