mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-03-13 10:03:57 -03:00
AC_Avoid: reenable avoidance logging
This commit is contained in:
parent
e1a5d73504
commit
7e79999b86
@ -241,6 +241,23 @@ void AC_Avoid::adjust_velocity(Vector3f &desired_vel_cms, bool &backing_up, floa
|
|||||||
if (desired_vel_cms_original != desired_vel_cms) {
|
if (desired_vel_cms_original != desired_vel_cms) {
|
||||||
_last_limit_time = AP_HAL::millis();
|
_last_limit_time = AP_HAL::millis();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (limits_active()) {
|
||||||
|
// log at not more than 10hz (adjust_velocity method can be potentially called at 400hz!)
|
||||||
|
uint32_t now = AP_HAL::millis();
|
||||||
|
if ((now - _last_log_ms) > 100) {
|
||||||
|
_last_log_ms = now;
|
||||||
|
Write_SimpleAvoidance(true, desired_vel_cms_original, desired_vel_cms, backing_up);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// avoidance isn't active anymore
|
||||||
|
// log once so that it registers in logs
|
||||||
|
if (_last_log_ms) {
|
||||||
|
Write_SimpleAvoidance(false, desired_vel_cms_original, desired_vel_cms, backing_up);
|
||||||
|
// this makes sure logging won't run again till it is active
|
||||||
|
_last_log_ms = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -205,7 +205,7 @@ private:
|
|||||||
void get_proximity_roll_pitch_pct(float &roll_positive, float &roll_negative, float &pitch_positive, float &pitch_negative);
|
void get_proximity_roll_pitch_pct(float &roll_positive, float &roll_negative, float &pitch_positive, float &pitch_negative);
|
||||||
|
|
||||||
// Logging function
|
// Logging function
|
||||||
void Write_SimpleAvoidance(const uint8_t state, const Vector2f& desired_vel, const Vector2f& modified_vel, const bool back_up) const;
|
void Write_SimpleAvoidance(const uint8_t state, const Vector3f& desired_vel, const Vector3f& modified_vel, const bool back_up) const;
|
||||||
|
|
||||||
// parameters
|
// parameters
|
||||||
AP_Int8 _enabled;
|
AP_Int8 _enabled;
|
||||||
|
@ -46,7 +46,7 @@ void AP_OADijkstra::Write_OADijkstra(const uint8_t state, const uint8_t error_id
|
|||||||
AP::logger().WriteBlock(&pkt, sizeof(pkt));
|
AP::logger().WriteBlock(&pkt, sizeof(pkt));
|
||||||
}
|
}
|
||||||
|
|
||||||
void AC_Avoid::Write_SimpleAvoidance(const uint8_t state, const Vector2f& desired_vel, const Vector2f& modified_vel, const bool back_up) const
|
void AC_Avoid::Write_SimpleAvoidance(const uint8_t state, const Vector3f& desired_vel, const Vector3f& modified_vel, const bool back_up) const
|
||||||
{
|
{
|
||||||
const struct log_SimpleAvoid pkt{
|
const struct log_SimpleAvoid pkt{
|
||||||
LOG_PACKET_HEADER_INIT(LOG_SIMPLE_AVOID_MSG),
|
LOG_PACKET_HEADER_INIT(LOG_SIMPLE_AVOID_MSG),
|
||||||
@ -54,8 +54,10 @@ void AC_Avoid::Write_SimpleAvoidance(const uint8_t state, const Vector2f& desire
|
|||||||
state : state,
|
state : state,
|
||||||
desired_vel_x : desired_vel.x * 0.01f,
|
desired_vel_x : desired_vel.x * 0.01f,
|
||||||
desired_vel_y : desired_vel.y * 0.01f,
|
desired_vel_y : desired_vel.y * 0.01f,
|
||||||
|
desired_vel_z : desired_vel.z * 0.01f,
|
||||||
modified_vel_x : modified_vel.x * 0.01f,
|
modified_vel_x : modified_vel.x * 0.01f,
|
||||||
modified_vel_y : modified_vel.y * 0.01f,
|
modified_vel_y : modified_vel.y * 0.01f,
|
||||||
|
modified_vel_z : modified_vel.z * 0.01f,
|
||||||
backing_up : back_up,
|
backing_up : back_up,
|
||||||
};
|
};
|
||||||
AP::logger().WriteBlock(&pkt, sizeof(pkt));
|
AP::logger().WriteBlock(&pkt, sizeof(pkt));
|
||||||
|
@ -71,8 +71,10 @@ struct PACKED log_OADijkstra {
|
|||||||
// @Field: State: True if Simple Avoidance is active
|
// @Field: State: True if Simple Avoidance is active
|
||||||
// @Field: DVelX: Desired velocity, X-Axis (Velocity before Avoidance)
|
// @Field: DVelX: Desired velocity, X-Axis (Velocity before Avoidance)
|
||||||
// @Field: DVelY: Desired velocity, Y-Axis (Velocity before Avoidance)
|
// @Field: DVelY: Desired velocity, Y-Axis (Velocity before Avoidance)
|
||||||
|
// @Field: DVelZ: Desired velocity, Z-Axis (Velocity before Avoidance)
|
||||||
// @Field: MVelX: Modified velocity, X-Axis (Velocity after Avoidance)
|
// @Field: MVelX: Modified velocity, X-Axis (Velocity after Avoidance)
|
||||||
// @Field: MVelY: Modified velocity, Y-Axis (Velocity after Avoidance)
|
// @Field: MVelY: Modified velocity, Y-Axis (Velocity after Avoidance)
|
||||||
|
// @Field: MVelZ: Modified velocity, Z-Axis (Velocity after Avoidance)
|
||||||
// @Field: Back: True if vehicle is backing away
|
// @Field: Back: True if vehicle is backing away
|
||||||
struct PACKED log_SimpleAvoid {
|
struct PACKED log_SimpleAvoid {
|
||||||
LOG_PACKET_HEADER;
|
LOG_PACKET_HEADER;
|
||||||
@ -80,8 +82,10 @@ struct PACKED log_SimpleAvoid {
|
|||||||
uint8_t state;
|
uint8_t state;
|
||||||
float desired_vel_x;
|
float desired_vel_x;
|
||||||
float desired_vel_y;
|
float desired_vel_y;
|
||||||
|
float desired_vel_z;
|
||||||
float modified_vel_x;
|
float modified_vel_x;
|
||||||
float modified_vel_y;
|
float modified_vel_y;
|
||||||
|
float modified_vel_z;
|
||||||
uint8_t backing_up;
|
uint8_t backing_up;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -91,4 +95,4 @@ struct PACKED log_SimpleAvoid {
|
|||||||
{ LOG_OA_DIJKSTRA_MSG, sizeof(log_OADijkstra), \
|
{ LOG_OA_DIJKSTRA_MSG, sizeof(log_OADijkstra), \
|
||||||
"OADJ","QBBBBLLLL","TimeUS,State,Err,CurrPoint,TotPoints,DLat,DLng,OALat,OALng", "sbbbbDUDU", "F----GGGG" }, \
|
"OADJ","QBBBBLLLL","TimeUS,State,Err,CurrPoint,TotPoints,DLat,DLng,OALat,OALng", "sbbbbDUDU", "F----GGGG" }, \
|
||||||
{ LOG_SIMPLE_AVOID_MSG, sizeof(log_SimpleAvoid), \
|
{ LOG_SIMPLE_AVOID_MSG, sizeof(log_SimpleAvoid), \
|
||||||
"SA", "QBffffB","TimeUS,State,DVelX,DVelY,MVelX,MVelY,Back", "sbnnnnb", "F------"},
|
"SA", "QBffffffB","TimeUS,State,DVelX,DVelY,DVelZ,MVelX,MVelY,MVelZ,Back", "sbnnnnnnb", "F--------"},
|
||||||
|
Loading…
Reference in New Issue
Block a user