#include <traffic_verifier.H>
Public Member Functions | |
| traffic_verifier_t (world_state_t *ws_, rndf_t const *rndf_) | |
| bool | path_free_of_traffic (std::deque< task_planner_t * > &plan_, unsigned &stop_tp_ind_, unsigned &stop_path_ind_) |
| Returns false if path needs to be handled due to some moving traffic. | |
Private Member Functions | |
| bool | intersection_free_of_traffic (intersection_task_planner_t *int_tp_, unsigned &stop_path_ind_, double start_tstamp_) |
| Returns true if intersection path is safe to drive and else return false and path index where to stop. | |
| bool | change_lane_free_of_traffic (change_lane_task_planner_t *cl_tp, unsigned &stop_path_ind_, double start_tstamp_) |
| Returns true if CL path is safe to drive and else return false and path index where to stop. | |
| bool | uturn_free_of_traffic (uturn_task_planner_t *ut_tp_, double start_tstamp_) |
| returns true if uturn's new lane is free of traffic for some distance | |
| bool | passing_lane_free_of_traffic (passing_lane_task_planner_t *pl_tp, unsigned &stop_path_ind_, double start_tstamp_) |
| bool | approach_traffic (rndf_t::waypoint_id_t const &exit_wp_id_, rndf_t::waypoint_id_t const &entry_wp_id_, double till_time_) |
| returns TRUE if there is traffic through any traffic points for the exit entry path, else return FALSE | |
| bool | approaching_traffic_through_radar (rndf_t::waypoint_id_t const &ref_exit_id, rndf_t::waypoint_id_t const &entry_id, double till_time_) |
| bool | check_radar (std::vector< radar_info_t > const &radar_qid_, double till_time_) |
| bool | traffic_crossing (double x_, double y_, unsigned sid_, unsigned lid_, unsigned wid_, double till_time_) |
| returns TRUE if there is any traffic reaching point xy before till_time_ | |
| void | traffic_approach_point (std::vector< blocked_lane_data_t > &traff_approaching, double x_, double y_, unsigned sid_, unsigned lid_, unsigned wid_) |
| Returns true if there is a moving vehicle approaching this point on given lane segment for till_time_. | |
| bool | tp_path_free_of_traffic (task_planner_t *tp_, unsigned tp_i, unsigned &stop_tp_ind_, unsigned &stop_path_ind_, double start_tstamp_) |
| int | radar_to_check (rndf_t::waypoint_id_t const &ref_exit_id, rndf_t::waypoint_id_t const &entry_id) |
Private Attributes | |
| world_state_t * | m_ws |
| rndf_t const * | m_rndf |
| const uc_planner_param_t * | m_uc_param |
| traffic_verifier_t::traffic_verifier_t | ( | world_state_t * | ws_, | |
| rndf_t const * | rndf_ | |||
| ) |
| bool traffic_verifier_t::approach_traffic | ( | rndf_t::waypoint_id_t const & | exit_wp_id_, | |
| rndf_t::waypoint_id_t const & | entry_wp_id_, | |||
| double | till_time_ | |||
| ) | [private] |
returns TRUE if there is traffic through any traffic points for the exit entry path, else return FALSE
References approaching_traffic_through_radar(), cajun::danger_entry_point(), m_rndf, m_uc_param, cajun::uc_planner_param_t::m_use_radar_data_for_intersection, cajun::uc_planner_param_t::m_verbose_printing, and traffic_crossing().
Referenced by intersection_free_of_traffic().
| bool traffic_verifier_t::approaching_traffic_through_radar | ( | rndf_t::waypoint_id_t const & | ref_exit_id, | |
| rndf_t::waypoint_id_t const & | entry_id, | |||
| double | till_time_ | |||
| ) | [private] |
| bool traffic_verifier_t::change_lane_free_of_traffic | ( | change_lane_task_planner_t * | cl_tp, | |
| unsigned & | stop_path_ind_, | |||
| double | start_tstamp_ | |||
| ) | [private] |
Returns true if CL path is safe to drive and else return false and path index where to stop.
References cajun::task_planner_t::get_path(), cajun::change_lane_task_planner_t::get_plan(), cajun::uc_planner_param_t::m_allowed_post_lane_dis, cajun::uc_planner_param_t::m_allowed_pre_lane_dis, cajun::uc_planner_param_t::m_CL_traffic_window, m_rndf, m_uc_param, cajun::uc_planner_param_t::m_width_multiplier, m_ws, and traffic_crossing().
Referenced by tp_path_free_of_traffic().
| bool cajun::traffic_verifier_t::check_radar | ( | std::vector< radar_info_t > const & | radar_qid_, | |
| double | till_time_ | |||
| ) | [private] |
Referenced by approaching_traffic_through_radar().
| bool traffic_verifier_t::intersection_free_of_traffic | ( | intersection_task_planner_t * | int_tp_, | |
| unsigned & | stop_path_ind_, | |||
| double | start_tstamp_ | |||
| ) | [private] |
Returns true if intersection path is safe to drive and else return false and path index where to stop.
References approach_traffic(), cajun::task_planner_t::get_path(), cajun::intersection_task_planner_t::get_plan(), cajun::rndf_point_t::id(), cajun::task_planner_t::is_active(), cajun::rndf_point_t::is_rndf_wp(), cajun::uc_planner_param_t::m_crossing_traffic_window, m_uc_param, cajun::rndf_point_t::x(), and cajun::rndf_point_t::y().
Referenced by tp_path_free_of_traffic().
| bool traffic_verifier_t::passing_lane_free_of_traffic | ( | passing_lane_task_planner_t * | pl_tp, | |
| unsigned & | stop_path_ind_, | |||
| double | start_tstamp_ | |||
| ) | [private] |
References cajun::passing_lane_task_planner_t::get_path_map_to_lane_lids(), cajun::uc_planner_param_t::m_allowed_post_lane_dis, cajun::uc_planner_param_t::m_allowed_pre_lane_dis, cajun::uc_planner_param_t::m_PL_traffic_window, m_rndf, m_uc_param, cajun::uc_planner_param_t::m_width_multiplier, m_ws, and traffic_crossing().
Referenced by tp_path_free_of_traffic().
| bool traffic_verifier_t::path_free_of_traffic | ( | std::deque< task_planner_t * > & | plan_, | |
| unsigned & | stop_tp_ind_, | |||
| unsigned & | stop_path_ind_ | |||
| ) |
Returns false if path needs to be handled due to some moving traffic.
References cajun::INTERSECTION_TP, cajun::last_tp_planned(), cajun::uc_planner_param_t::m_num_tps_check_for_traffic, m_uc_param, cajun::PATH_END, cajun::PATH_TOO_LONG, and tp_path_free_of_traffic().
Referenced by cajun::planner_t::analyze_path().
| int cajun::traffic_verifier_t::radar_to_check | ( | rndf_t::waypoint_id_t const & | ref_exit_id, | |
| rndf_t::waypoint_id_t const & | entry_id | |||
| ) | [private] |
| bool traffic_verifier_t::tp_path_free_of_traffic | ( | task_planner_t * | tp_, | |
| unsigned | tp_i, | |||
| unsigned & | stop_tp_ind_, | |||
| unsigned & | stop_path_ind_, | |||
| double | start_tstamp_ | |||
| ) | [private] |
References change_lane_free_of_traffic(), cajun::CHANGE_LANE_TP, intersection_free_of_traffic(), cajun::INTERSECTION_TP, cajun::uc_planner_param_t::m_check_CL_traffic, cajun::uc_planner_param_t::m_check_intersection_crossing_traffic, cajun::uc_planner_param_t::m_check_PL_traffic, m_uc_param, passing_lane_free_of_traffic(), cajun::PASSING_LANE_TP, and cajun::task_planner_t::type().
Referenced by path_free_of_traffic().
| void traffic_verifier_t::traffic_approach_point | ( | std::vector< blocked_lane_data_t > & | traff_approaching, | |
| double | x_, | |||
| double | y_, | |||
| unsigned | sid_, | |||
| unsigned | lid_, | |||
| unsigned | wid_ | |||
| ) | [private] |
Returns true if there is a moving vehicle approaching this point on given lane segment for till_time_.
References cajun::comes_before(), cajun::uc_planner_param_t::m_blocked_lane_timeout, m_uc_param, cajun::uc_planner_param_t::m_width_multiplier, and m_ws.
Referenced by traffic_crossing().
| bool traffic_verifier_t::traffic_crossing | ( | double | x_, | |
| double | y_, | |||
| unsigned | sid_, | |||
| unsigned | lid_, | |||
| unsigned | wid_, | |||
| double | till_time_ | |||
| ) | [private] |
returns TRUE if there is any traffic reaching point xy before till_time_
References m_ws, and traffic_approach_point().
Referenced by approach_traffic(), change_lane_free_of_traffic(), passing_lane_free_of_traffic(), and uturn_free_of_traffic().
| bool traffic_verifier_t::uturn_free_of_traffic | ( | uturn_task_planner_t * | ut_tp_, | |
| double | start_tstamp_ | |||
| ) | [private] |
returns true if uturn's new lane is free of traffic for some distance
References cajun::task_planner_t::get_path(), cajun::uturn_task_planner_t::get_plan(), m_rndf, m_uc_param, cajun::uc_planner_param_t::m_UT_traffic_window, cajun::uc_planner_param_t::m_uturn_dis_outside_lane, cajun::uc_planner_param_t::m_width_multiplier, m_ws, cajun::point_on_lane(), and traffic_crossing().
rndf_t const* cajun::traffic_verifier_t::m_rndf [private] |
const uc_planner_param_t* cajun::traffic_verifier_t::m_uc_param [private] |
world_state_t* cajun::traffic_verifier_t::m_ws [private] |
1.6.1