Fixes issue with pedestrins in ALSM
Some changes in constants for approaching vehicles
This commit is contained in:
parent
c611c1b464
commit
d74495c7ff
|
@ -125,11 +125,11 @@ void ALSM::IdentifyNewActors(const ActorList &actor_list) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!registered_vehicles.Contains(actor_id)
|
}
|
||||||
&& unregistered_actors.find(actor_id) == unregistered_actors.end()) {
|
if (!registered_vehicles.Contains(actor_id)
|
||||||
|
&& unregistered_actors.find(actor_id) == unregistered_actors.end()) {
|
||||||
|
|
||||||
unregistered_actors.insert({actor_id, actor});
|
unregistered_actors.insert({actor_id, actor});
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,7 +73,7 @@ static const float OVERLAP_THRESHOLD = 0.1f;
|
||||||
static const float LOCKING_DISTANCE_PADDING = 4.0f;
|
static const float LOCKING_DISTANCE_PADDING = 4.0f;
|
||||||
static const float COLLISION_RADIUS_STOP = 8.0f;
|
static const float COLLISION_RADIUS_STOP = 8.0f;
|
||||||
static const float COLLISION_RADIUS_MIN = 20.0f;
|
static const float COLLISION_RADIUS_MIN = 20.0f;
|
||||||
static const float COLLISION_RADIUS_RATE = 0.5f;
|
static const float COLLISION_RADIUS_RATE = 0.65f;
|
||||||
static const float MAX_LOCKING_EXTENSION = 10.0f;
|
static const float MAX_LOCKING_EXTENSION = 10.0f;
|
||||||
static const float WALKER_TIME_EXTENSION = 1.5f;
|
static const float WALKER_TIME_EXTENSION = 1.5f;
|
||||||
static const float SQUARE_ROOT_OF_TWO = 1.414f;
|
static const float SQUARE_ROOT_OF_TWO = 1.414f;
|
||||||
|
@ -106,8 +106,8 @@ static const double DOUBLE_NO_SIGNAL_PASSTHROUGH_INTERVAL = 5.0;
|
||||||
|
|
||||||
namespace MotionPlan {
|
namespace MotionPlan {
|
||||||
static const float RELATIVE_APPROACH_SPEED = 10.0f / 3.6f;
|
static const float RELATIVE_APPROACH_SPEED = 10.0f / 3.6f;
|
||||||
static const float MIN_FOLLOW_LEAD_DISTANCE = 5.0f;
|
static const float MIN_FOLLOW_LEAD_DISTANCE = 2.0f;
|
||||||
static const float MAX_FOLLOW_LEAD_DISTANCE = 10.0f;
|
static const float MAX_FOLLOW_LEAD_DISTANCE = 5.0f;
|
||||||
static const float FOLLOW_DISTANCE_RATE = 0.1f;
|
static const float FOLLOW_DISTANCE_RATE = 0.1f;
|
||||||
static const float CRITICAL_BRAKING_MARGIN = 0.25f;
|
static const float CRITICAL_BRAKING_MARGIN = 0.25f;
|
||||||
static const float EPSILON_RELATIVE_SPEED = 0.001f;
|
static const float EPSILON_RELATIVE_SPEED = 0.001f;
|
||||||
|
|
|
@ -329,10 +329,10 @@ std::pair<bool, float> MotionPlanStage::CollisionHandling(const CollisionHazardD
|
||||||
}
|
}
|
||||||
// If vehicle is approaching a lead vehicle and the lead vehicle is further
|
// If vehicle is approaching a lead vehicle and the lead vehicle is further
|
||||||
// than CRITICAL_BRAKING_MARGIN but closer than FOLLOW_LEAD_DISTANCE.
|
// than CRITICAL_BRAKING_MARGIN but closer than FOLLOW_LEAD_DISTANCE.
|
||||||
else if (available_distance_margin > CRITICAL_BRAKING_MARGIN) {
|
else if (available_distance_margin > CRITICAL_BRAKING_MARGIN && other_velocity.Length() < 1.0f) {
|
||||||
// Then follow the lead vehicle by acquiring it's speed along current heading.
|
// Then follow the lead vehicle by acquiring it's speed along current heading.
|
||||||
dynamic_target_velocity = std::max(other_speed_along_heading, RELATIVE_APPROACH_SPEED);
|
dynamic_target_velocity = std::max(other_speed_along_heading, RELATIVE_APPROACH_SPEED);
|
||||||
} else {
|
} else if (available_distance_margin < CRITICAL_BRAKING_MARGIN) {
|
||||||
// If lead vehicle closer than CRITICAL_BRAKING_MARGIN, initiate emergency stop.
|
// If lead vehicle closer than CRITICAL_BRAKING_MARGIN, initiate emergency stop.
|
||||||
collision_emergency_stop = true;
|
collision_emergency_stop = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue