Skip to content

Commit d8c24ba

Browse files
committed
log initial state, only log during flight not while flight is disarmed
1 parent 113e0bf commit d8c24ba

4 files changed

Lines changed: 35 additions & 7 deletions

File tree

lib/controller/controller_and_estimator.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#pragma once
22

3+
#include "matlab_funcs.h"
4+
35
struct Controller_Output {
46
float thrust_N;
57
float roll_rad_sec_squared;
@@ -36,6 +38,9 @@ struct Controller_Input {
3638
};
3739

3840
namespace ControllerAndEstimator {
41+
extern Matrix9_9 Flight_P;
42+
extern Vector19 x_est;
43+
3944
void init_controller_and_estimator_constants();
4045
Controller_Output get_controller_output(Controller_Input ci, float dT);
4146
}; // namespace ControllerAndEstimator

lib/trajectory_following/TrajectoryFollower.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ void follow_trajectory() {
7373
lastloop = timer;
7474
counter = 0;
7575
GPS::set_current_position_as_origin();
76+
77+
TrajectoryLogger::log_controller_state();
7678
}
7779

7880
if (timer - lasttelemetry > TELEMETRY_INTERVAL_US) {
@@ -141,7 +143,10 @@ void follow_trajectory() {
141143
Prop::set_throttle_roll(thrust_perc, diffy_perc);
142144
GimbalServos::setGimbalAngle(-co.gimbal_yaw_deg, co.gimbal_pitch_deg);
143145

144-
TrajectoryLogger::log_trajectory_flash(timer, i, ci, co);
146+
if (flight_armed) // we only want to log flight data, not pre-flight
147+
{
148+
TrajectoryLogger::log_trajectory_flash(timer, i, ci, co);
149+
}
145150

146151
if (send_telemetry) {
147152
// TODO - send telemetry here

lib/trajectory_following/TrajectoryLogger.cpp

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,20 @@ CString<400> telemCSV;
3030
// }
3131
// }
3232

33-
struct __packed MeasurementFlags {
33+
struct __packed EntryFlags {
3434
bool new_imu_packet : 1;
3535
bool new_gps_packet : 1;
36+
bool controller_state : 1;
3637
};
3738

38-
static_assert(sizeof(MeasurementFlags) == 1, "sizeof(MeasurementFlags) error");
39+
static_assert(sizeof(EntryFlags) == 1, "sizeof(MeasurementFlags) error");
3940

4041
struct __packed EntryBase {
41-
MeasurementFlags flags;
4242
float time;
4343
uint8_t phase;
4444
};
4545

46-
static_assert(sizeof(EntryBase) == 6, "sizeof(EntryBase) error");
46+
static_assert(sizeof(EntryBase) == 5, "sizeof(EntryBase) error");
4747

4848
struct __packed SensorEntry {
4949

@@ -88,14 +88,30 @@ struct __packed GpsEntry {
8888

8989
static_assert(sizeof(GpsEntry) == 18 * 4, "sizeof(GpsEntry) error");
9090

91+
void log_controller_state() {
92+
EntryFlags flags{};
93+
94+
flags.controller_state = 1;
95+
96+
Logging::write((uint8_t *)&flags, sizeof(flags));
97+
98+
// log x_est and flight_P
99+
Logging::write((uint8_t *)(ControllerAndEstimator::x_est.data()), sizeof(ControllerAndEstimator::x_est(0)) * (ControllerAndEstimator::x_est.size()));
100+
101+
Logging::write((uint8_t *)(ControllerAndEstimator::Flight_P.data()), sizeof(ControllerAndEstimator::Flight_P(0)) * (ControllerAndEstimator::Flight_P.size()));
102+
103+
return;
104+
}
105+
91106
void log_trajectory_flash(float time, int phase, Controller_Input ci, Controller_Output co) {
92107

93-
MeasurementFlags flags{};
108+
EntryFlags flags{};
94109
flags.new_gps_packet = ci.new_gps_packet;
95110
flags.new_imu_packet = ci.new_imu_packet;
96111

112+
Logging::write((uint8_t *)&flags, sizeof(flags));
113+
97114
EntryBase entryBase{};
98-
entryBase.flags = flags;
99115
entryBase.time = time;
100116
entryBase.phase = phase;
101117

lib/trajectory_following/TrajectoryLogger.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,6 @@ namespace TrajectoryLogger {
1010
void log_trajectory_flash(float time, int phase, const Controller_Input ci, const Controller_Output co);
1111

1212
void log_calib_flash();
13+
14+
void log_controller_state();
1315
}; // namespace TrajectoryLogger

0 commit comments

Comments
 (0)