Skyward boardcore
Loading...
Searching...
No Matches
AirBrakesInterp.h
Go to the documentation of this file.
1
/* Copyright (c) 2021-2022 Skyward Experimental Rocketry
2
* Authors: Vincenzo Santomarco, Alberto Nidasio, Emilio Corigliano
3
*
4
* Permission is hereby granted, free of charge, to any person obtaining a copy
5
* of this software and associated documentation files (the "Software"), to deal
6
* in the Software without restriction, including without limitation the rights
7
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
* copies of the Software, and to permit persons to whom the Software is
9
* furnished to do so, subject to the following conditions:
10
*
11
* The above copyright notice and this permission notice shall be included in
12
* all copies or substantial portions of the Software.
13
*
14
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
* THE SOFTWARE.
21
*/
22
23
#pragma once
24
25
#include <
algorithms/Algorithm.h
>
26
27
#include <functional>
28
#include <vector>
29
30
#include "
AirBrakesInterpConfig.h
"
31
#include "
TrajectorySet.h
"
32
33
namespace
Boardcore
34
{
35
36
class
AirBrakesInterp
:
public
Algorithm
37
{
38
public
:
39
AirBrakesInterp
(std::function<
TimedTrajectoryPoint
()> getCurrentPosition,
40
const
TrajectorySet
& trajectoryOpenSet,
41
const
TrajectorySet
& trajectoryCloseSet,
42
const
AirBrakesInterpConfig
& configInterp,
43
std::function<
void
(
float
)> setActuator);
44
45
bool
init
()
override
;
46
53
void
begin
(
float
currentMass);
54
55
private
:
60
void
step()
override
;
61
67
float
controlInterp(
TrajectoryPoint
currentPosition);
68
69
std::function<
TimedTrajectoryPoint
()> getCurrentPosition;
70
std::function<void(
float
)> setActuator;
71
72
TimedTrajectoryPoint
lastPosition;
73
74
// Trajectory sets (open and closed) from which the algorithm will choose at
75
// the beginning the tuple with which interpolate the data. The selection
76
// depends on the rocket mass.
77
const
TrajectorySet
& trajectoryOpenSet;
78
const
TrajectorySet
& trajectoryCloseSet;
79
80
// Choosen trajectories from the begin function
81
Trajectory
* choosenCloseTrajectory =
nullptr
;
82
Trajectory
* choosenOpenTrajectory =
nullptr
;
83
84
AirBrakesInterpConfig
configInterp;
85
float
lastPercentage = 0;
86
};
87
88
}
// namespace Boardcore
AirBrakesInterpConfig.h
Algorithm.h
TrajectorySet.h
Boardcore::AirBrakesInterp
Definition
AirBrakesInterp.h:37
Boardcore::AirBrakesInterp::init
bool init() override
Initializes the Algorithm object, must be called as soon as the object is created.
Definition
AirBrakesInterp.cpp:48
Boardcore::AirBrakesInterp::AirBrakesInterp
AirBrakesInterp(std::function< TimedTrajectoryPoint()> getCurrentPosition, const TrajectorySet &trajectoryOpenSet, const TrajectorySet &trajectoryCloseSet, const AirBrakesInterpConfig &configInterp, std::function< void(float)> setActuator)
Definition
AirBrakesInterp.cpp:36
Boardcore::Algorithm
Definition
Algorithm.h:30
Boardcore::Algorithm::begin
void begin()
Starts the execution of the algorithm and set the running flag to true.
Definition
Algorithm.h:42
Boardcore::TimedTrajectoryPoint
Trajectory point with timestamp and velocity module.
Definition
TrajectoryPoint.h:73
Boardcore::Trajectory
Definition
Trajectory.h:31
Boardcore::TrajectoryPoint
Definition
TrajectoryPoint.h:35
Boardcore::TrajectorySet
Definition
TrajectorySet.h:31
Boardcore
This file includes all the types the logdecoder script will decode.
Definition
ActiveObject.h:31
Boardcore::AirBrakesInterpConfig
Definition
AirBrakesInterpConfig.h:29
src
shared
algorithms
AirBrakes
AirBrakesInterp.h
Generated by
1.10.0