Skip to content
Snippets Groups Projects
Commit 7e276bc1 authored by Matthias Grob's avatar Matthias Grob Committed by Beat Küng
Browse files

CollisionAvoidance: move activation logic to library

parent 27dc60a4
No related branches found
No related tags found
No related merge requests found
......@@ -88,6 +88,18 @@ void CollisionAvoidance::publish_constraints(const Vector2f &original_setpoint,
}
void CollisionAvoidance::update(const obstacle_distance_s &distance_measurements) {
// activate/deactivate the collision avoidance based on MPC_COL_AVOID parameter
if (collision_avoidance_enabled()) {
activate();
} else {
deactivate();
}
_obstacle_distance = distance_measurements;
}
void CollisionAvoidance::update_range_constraints()
{
if (hrt_elapsed_time((hrt_abstime *)&_obstacle_distance.timestamp) < RANGE_STREAM_TIMEOUT_US) {
......
......@@ -72,7 +72,7 @@ public:
bool collision_avoidance_enabled() { return MPC_COL_AVOID.get(); }
void update(const obstacle_distance_s &distance_measurements) {_obstacle_distance = distance_measurements;}
void update(const obstacle_distance_s &distance_measurements);
void update_range_constraints();
......
......@@ -663,17 +663,7 @@ MulticopterPositionControl::run()
_wv_controller->update(matrix::Quatf(_att_sp.q_d), _states.yaw);
}
// activate/deactivate the collision avoidance based on MPC_COL_AVOID parameter
if (_ca_controller != nullptr) {
// in manual mode we just want to use weathervane if position is controlled as well
if (_ca_controller->collision_avoidance_enabled()) {
_ca_controller->activate();
} else {
_ca_controller->deactivate();
}
_ca_controller->update(_obstacle_distance);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment