mirror of
https://gitee.com/xiaohuolufeihua/bizhang_-obav.git
synced 2026-05-22 01:12:31 +00:00
sdlog: setup flow innovation logging
This commit is contained in:
committed by
Lorenz Meier
parent
47f79a66d1
commit
01ee608117
@@ -2,6 +2,8 @@ uint64 timestamp # Timestamp in microseconds since boot
|
|||||||
float32[6] vel_pos_innov # velocity and position innovations
|
float32[6] vel_pos_innov # velocity and position innovations
|
||||||
float32[3] mag_innov # earth magnetic field innovations
|
float32[3] mag_innov # earth magnetic field innovations
|
||||||
float32 heading_innov # heading innovation
|
float32 heading_innov # heading innovation
|
||||||
|
float32[2] flow_innov # flow innovation
|
||||||
float32[6] vel_pos_innov_var # velocity and position innovation variances
|
float32[6] vel_pos_innov_var # velocity and position innovation variances
|
||||||
float32[3] mag_innov_var # earth magnetic field innovation variance
|
float32[3] mag_innov_var # earth magnetic field innovation variance
|
||||||
float32 heading_innov_var # heading innovation variance
|
float32 heading_innov_var # heading innovation variance
|
||||||
|
float32[2] flow_innov_var # flow innovation variance
|
||||||
@@ -612,11 +612,12 @@ void Ekf2::task_main()
|
|||||||
_ekf->get_vel_pos_innov(&innovations.vel_pos_innov[0]);
|
_ekf->get_vel_pos_innov(&innovations.vel_pos_innov[0]);
|
||||||
_ekf->get_mag_innov(&innovations.mag_innov[0]);
|
_ekf->get_mag_innov(&innovations.mag_innov[0]);
|
||||||
_ekf->get_heading_innov(&innovations.heading_innov);
|
_ekf->get_heading_innov(&innovations.heading_innov);
|
||||||
|
_ekf->get_flow_innov(&innovations.flow_innov[0]);
|
||||||
|
|
||||||
_ekf->get_vel_pos_innov_var(&innovations.vel_pos_innov_var[0]);
|
_ekf->get_vel_pos_innov_var(&innovations.vel_pos_innov_var[0]);
|
||||||
_ekf->get_mag_innov_var(&innovations.mag_innov_var[0]);
|
_ekf->get_mag_innov_var(&innovations.mag_innov_var[0]);
|
||||||
_ekf->get_heading_innov_var(&innovations.heading_innov_var);
|
_ekf->get_heading_innov_var(&innovations.heading_innov_var);
|
||||||
|
_ekf->get_flow_innov_var(&innovations.flow_innov_var[0]);
|
||||||
if (_estimator_innovations_pub == nullptr) {
|
if (_estimator_innovations_pub == nullptr) {
|
||||||
_estimator_innovations_pub = orb_advertise(ORB_ID(ekf2_innovations), &innovations);
|
_estimator_innovations_pub = orb_advertise(ORB_ID(ekf2_innovations), &innovations);
|
||||||
|
|
||||||
|
|||||||
@@ -1200,6 +1200,7 @@ int sdlog2_thread_main(int argc, char *argv[])
|
|||||||
struct log_CAMT_s log_CAMT;
|
struct log_CAMT_s log_CAMT;
|
||||||
struct log_RPL1_s log_RPL1;
|
struct log_RPL1_s log_RPL1;
|
||||||
struct log_RPL2_s log_RPL2;
|
struct log_RPL2_s log_RPL2;
|
||||||
|
struct log_EST6_s log_INO3;
|
||||||
} body;
|
} body;
|
||||||
} log_msg = {
|
} log_msg = {
|
||||||
LOG_PACKET_HEADER_INIT(0)
|
LOG_PACKET_HEADER_INIT(0)
|
||||||
@@ -1858,6 +1859,7 @@ int sdlog2_thread_main(int argc, char *argv[])
|
|||||||
log_msg.body.log_AIRS.air_temperature_celsius = buf.airspeed.air_temperature_celsius;
|
log_msg.body.log_AIRS.air_temperature_celsius = buf.airspeed.air_temperature_celsius;
|
||||||
LOGBUFFER_WRITE_AND_COUNT(AIRS);
|
LOGBUFFER_WRITE_AND_COUNT(AIRS);
|
||||||
}
|
}
|
||||||
|
<<<<<<< HEAD
|
||||||
|
|
||||||
/* --- ESCs --- */
|
/* --- ESCs --- */
|
||||||
if (copy_if_updated(ORB_ID(esc_status), &subs.esc_sub, &buf.esc)) {
|
if (copy_if_updated(ORB_ID(esc_status), &subs.esc_sub, &buf.esc)) {
|
||||||
@@ -1995,6 +1997,13 @@ int sdlog2_thread_main(int argc, char *argv[])
|
|||||||
log_msg.body.log_INO2.s[7] = buf.innovations.heading_innov_var;
|
log_msg.body.log_INO2.s[7] = buf.innovations.heading_innov_var;
|
||||||
LOGBUFFER_WRITE_AND_COUNT(EST5);
|
LOGBUFFER_WRITE_AND_COUNT(EST5);
|
||||||
|
|
||||||
|
log_msg.msg_type = LOG_EST6_MSG;
|
||||||
|
memset(&(log_msg.body.log_INO3.s), 0, sizeof(log_msg.body.log_INO3.s));
|
||||||
|
for(unsigned i = 0; i < 2; i++) {
|
||||||
|
log_msg.body.log_INO3.s[i] = buf.innovations.flow_innov[i];
|
||||||
|
log_msg.body.log_INO3.s[i + 2] = buf.innovations.flow_innov_var[i];
|
||||||
|
}
|
||||||
|
LOGBUFFER_WRITE_AND_COUNT(EST6);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --- TECS STATUS --- */
|
/* --- TECS STATUS --- */
|
||||||
|
|||||||
@@ -423,12 +423,18 @@ struct log_EST4_s {
|
|||||||
float s[12];
|
float s[12];
|
||||||
};
|
};
|
||||||
|
|
||||||
/* --- EST4 - ESTIMATOR INNOVATIONS --- */
|
/* --- EST5 - ESTIMATOR INNOVATIONS --- */
|
||||||
#define LOG_EST5_MSG 49
|
#define LOG_EST5_MSG 49
|
||||||
struct log_EST5_s {
|
struct log_EST5_s {
|
||||||
float s[8];
|
float s[8];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* --- EST6 - ESTIMATOR INNOVATIONS --- */
|
||||||
|
#define LOG_EST6_MSG 51
|
||||||
|
struct log_EST6_s {
|
||||||
|
float s[4];
|
||||||
|
};
|
||||||
|
|
||||||
/* --- TEL0..3 - TELEMETRY STATUS --- */
|
/* --- TEL0..3 - TELEMETRY STATUS --- */
|
||||||
#define LOG_TEL0_MSG 36
|
#define LOG_TEL0_MSG 36
|
||||||
#define LOG_TEL1_MSG 37
|
#define LOG_TEL1_MSG 37
|
||||||
@@ -621,6 +627,7 @@ static const struct log_format_s log_formats[] = {
|
|||||||
LOG_FORMAT(EST3, "ffffffffffffffff", "P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27"),
|
LOG_FORMAT(EST3, "ffffffffffffffff", "P12,P13,P14,P15,P16,P17,P18,P19,P20,P21,P22,P23,P24,P25,P26,P27"),
|
||||||
LOG_FORMAT(EST4, "ffffffffffff", "VxI,VyI,VzI,PxI,PyI,PzI,VxIV,VyIV,VzIV,PxIV,PyIV,PzIV"),
|
LOG_FORMAT(EST4, "ffffffffffff", "VxI,VyI,VzI,PxI,PyI,PzI,VxIV,VyIV,VzIV,PxIV,PyIV,PzIV"),
|
||||||
LOG_FORMAT(EST5, "ffffffff", "MAGxI,MAGyI,MAGzI,MAGxIV,MAGyIV,MAGzIV,HeadI,HeadIV"),
|
LOG_FORMAT(EST5, "ffffffff", "MAGxI,MAGyI,MAGzI,MAGxIV,MAGyIV,MAGzIV,HeadI,HeadIV"),
|
||||||
|
LOG_FORMAT(EST6, "ffff", "FxI,FyI,FxIV,FyIV"),
|
||||||
LOG_FORMAT(PWR, "fffBBBBB", "Periph5V,Servo5V,RSSI,UsbOk,BrickOk,ServoOk,PeriphOC,HipwrOC"),
|
LOG_FORMAT(PWR, "fffBBBBB", "Periph5V,Servo5V,RSSI,UsbOk,BrickOk,ServoOk,PeriphOC,HipwrOC"),
|
||||||
LOG_FORMAT(MOCP, "fffffff", "QuatW,QuatX,QuatY,QuatZ,X,Y,Z"),
|
LOG_FORMAT(MOCP, "fffffff", "QuatW,QuatX,QuatY,QuatZ,X,Y,Z"),
|
||||||
LOG_FORMAT(VISN, "ffffffffff", "X,Y,Z,VX,VY,VZ,QuatW,QuatX,QuatY,QuatZ"),
|
LOG_FORMAT(VISN, "ffffffffff", "X,Y,Z,VX,VY,VZ,QuatW,QuatX,QuatY,QuatZ"),
|
||||||
|
|||||||
Reference in New Issue
Block a user