#include <task_planner.H>
Classes | |
| struct | path_lane_map_t |
Public Member Functions | |
| virtual | ~task_planner_t () |
| virtual void | set_active ()=0 |
| Informs the TP that it is now active. | |
| virtual path_status_t | generate_path (world_state_t *ws_, path_t &path_, double &p_len_left_, const path_t &base_path_)=0 |
| Generate TP's share of path. Returns 'false' if TP following present TP should not be called else returns 'true'. | |
| const path_t * | get_path () |
| Return paths last planned. | |
| path_direction_t | path_direction () |
| Returns true if TP's path is in forward direction. | |
| path_status_t | path_status () |
| Returns TP's path status, e.g error, complete, etc. | |
| virtual void | set_path_blocked (unsigned p_id_) |
| Returns true if TP's path is in forward direction. | |
| void | limit_path_speed (unsigned p_id_, double speed_) |
| Informs the TP that its path speed at index p_id_ should be speed_. | |
| void | limit_following_path_speed (unsigned p_id_, double speed_) |
| bool | is_active () |
| Returns true if TP is active, else return false. | |
| virtual bool | get_path_lane_lids (unsigned &sid_, std::vector< unsigned > &lids_) |
| Fills in the list of lane of a segment across which TP's path extends on. Returns false if TP has to mention the list in different formate. | |
| virtual bool | get_path_map_to_lane_lids (std::vector< path_lane_map_t > &pl_ids_) |
| virtual bool | get_start_lid (unsigned &sid_, unsigned &lid_) |
| Returns the id of the lane on which the its path starts. | |
| path_turn_info_t | get_path_turn_info () |
| Returns turn info that TP will attempt. | |
| virtual bool | is_task_complete (world_state_t *ws_, double x_, double y_, double heading_)=0 |
| Returns true if TP completed its task. | |
| virtual void | print_plan ()=0 |
| Displays the planned path, used only for debugging. | |
| void | init (mdf_t const *mdf_, rndf_t const *rndf_) |
| Initialize the TP by providing it the mission info (mdf_) and city lane info. | |
| bool | reset_base_path () |
| Resets the base path used by TP. | |
| TP_type_t | type () |
| virtual bool | is_path_tight () |
| virtual bool | is_quick_acceleration_path () |
| void | print_path_map () |
Public Attributes | |
| std::vector< path_lane_map_t > | m_path_lane_map |
Protected Member Functions | |
| void | update_local_path (const path_t &path_, const path_t &b_path_) |
Protected Attributes | |
| mdf_t const * | m_mdf |
| rndf_t const * | m_rndf |
| path_t | m_path |
| bool | m_planned_path |
| path_status_t | m_status |
| TP_type_t | m_type |
| bool | m_active |
| bool | m_complete |
| bool | m_reset_base_path |
| path_direction_t | m_path_dir |
| path_turn_info_t | m_turn |
| virtual cajun::task_planner_t::~task_planner_t | ( | ) | [inline, virtual] |
| virtual path_status_t cajun::task_planner_t::generate_path | ( | world_state_t * | ws_, | |
| path_t & | path_, | |||
| double & | p_len_left_, | |||
| const path_t & | base_path_ | |||
| ) | [pure virtual] |
Generate TP's share of path. Returns 'false' if TP following present TP should not be called else returns 'true'.
Implemented in cajun::change_lane_task_planner_t, cajun::intersection_task_planner_t, cajun::lane_task_planner_t, cajun::parking_task_planner_t, cajun::passing_lane_task_planner_t, cajun::unparking_task_planner_t, cajun::uturn_task_planner_t, and cajun::zone_task_planner_t.
Referenced by cajun::task_plan_handler_t::insert_PL_TP().
| const path_t* cajun::task_planner_t::get_path | ( | ) | [inline] |
Return paths last planned.
References m_path.
Referenced by cajun::traffic_verifier_t::change_lane_free_of_traffic(), cajun::state_machine_t::drove_to_blk_safety_distance(), cajun::traffic_verifier_t::intersection_free_of_traffic(), cajun::task_plan_handler_t::pass_lane(), cajun::state_machine_t::tp_blocked(), and cajun::traffic_verifier_t::uturn_free_of_traffic().
| virtual bool cajun::task_planner_t::get_path_lane_lids | ( | unsigned & | sid_, | |
| std::vector< unsigned > & | lids_ | |||
| ) | [inline, virtual] |
Fills in the list of lane of a segment across which TP's path extends on. Returns false if TP has to mention the list in different formate.
Reimplemented in cajun::change_lane_task_planner_t, cajun::intersection_task_planner_t, cajun::lane_task_planner_t, cajun::parking_task_planner_t, cajun::passing_lane_task_planner_t, cajun::unparking_task_planner_t, cajun::uturn_task_planner_t, and cajun::zone_task_planner_t.
Referenced by cajun::state_machine_t::tp_blocked().
| virtual bool cajun::task_planner_t::get_path_map_to_lane_lids | ( | std::vector< path_lane_map_t > & | pl_ids_ | ) | [inline, virtual] |
Reimplemented in cajun::passing_lane_task_planner_t.
| path_turn_info_t cajun::task_planner_t::get_path_turn_info | ( | ) | [inline] |
Returns turn info that TP will attempt.
References m_turn.
| virtual bool cajun::task_planner_t::get_start_lid | ( | unsigned & | sid_, | |
| unsigned & | lid_ | |||
| ) | [inline, virtual] |
Returns the id of the lane on which the its path starts.
Reimplemented in cajun::change_lane_task_planner_t, cajun::lane_task_planner_t, and cajun::passing_lane_task_planner_t.
| void task_planner_t::init | ( | mdf_t const * | mdf_, | |
| rndf_t const * | rndf_ | |||
| ) |
Initialize the TP by providing it the mission info (mdf_) and city lane info.
References m_mdf, m_planned_path, and m_rndf.
Referenced by cajun::task_plan_handler_t::add_change_lane_tp(), cajun::task_plan_handler_t::add_initial_lf(), cajun::task_plan_handler_t::add_lane_tp(), cajun::task_plan_handler_t::add_parking_tp(), cajun::task_plan_handler_t::add_unparking_tp(), cajun::task_plan_handler_t::add_uturn_tp(), cajun::task_plan_handler_t::add_zone_tp(), cajun::state_machine_t::change_lane(), cajun::task_plan_handler_t::insert_LF_TP(), cajun::task_plan_handler_t::insert_PL_TP(), and cajun::task_plan_handler_t::insert_UT_TP().
| bool cajun::task_planner_t::is_active | ( | ) | [inline] |
Returns true if TP is active, else return false.
References m_active.
Referenced by cajun::traffic_verifier_t::intersection_free_of_traffic().
| virtual bool cajun::task_planner_t::is_path_tight | ( | ) | [inline, virtual] |
Reimplemented in cajun::parking_task_planner_t, cajun::unparking_task_planner_t, and cajun::uturn_task_planner_t.
| virtual bool cajun::task_planner_t::is_quick_acceleration_path | ( | ) | [inline, virtual] |
Reimplemented in cajun::intersection_task_planner_t.
| virtual bool cajun::task_planner_t::is_task_complete | ( | world_state_t * | ws_, | |
| double | x_, | |||
| double | y_, | |||
| double | heading_ | |||
| ) | [pure virtual] |
Returns true if TP completed its task.
Implemented in cajun::change_lane_task_planner_t, cajun::intersection_task_planner_t, cajun::lane_task_planner_t, cajun::parking_task_planner_t, cajun::passing_lane_task_planner_t, cajun::unparking_task_planner_t, cajun::uturn_task_planner_t, and cajun::zone_task_planner_t.
| void task_planner_t::limit_following_path_speed | ( | unsigned | p_id_, | |
| double | speed_ | |||
| ) |
References limit_path_speed(), and m_path.
| void task_planner_t::limit_path_speed | ( | unsigned | p_id_, | |
| double | speed_ | |||
| ) |
Informs the TP that its path speed at index p_id_ should be speed_.
References m_path.
Referenced by limit_following_path_speed().
| path_direction_t cajun::task_planner_t::path_direction | ( | ) | [inline] |
Returns true if TP's path is in forward direction.
References m_path_dir.
| path_status_t cajun::task_planner_t::path_status | ( | ) | [inline] |
Returns TP's path status, e.g error, complete, etc.
References m_status.
Referenced by cajun::last_tp_planned().
| void task_planner_t::print_path_map | ( | ) |
References m_path_lane_map.
| virtual void cajun::task_planner_t::print_plan | ( | ) | [pure virtual] |
Displays the planned path, used only for debugging.
Implemented in cajun::change_lane_task_planner_t, cajun::intersection_task_planner_t, cajun::lane_task_planner_t, cajun::parking_task_planner_t, cajun::passing_lane_task_planner_t, cajun::unparking_task_planner_t, cajun::uturn_task_planner_t, and cajun::zone_task_planner_t.
| bool cajun::task_planner_t::reset_base_path | ( | ) | [inline] |
Resets the base path used by TP.
References m_reset_base_path.
| virtual void cajun::task_planner_t::set_active | ( | ) | [pure virtual] |
Informs the TP that it is now active.
Implemented in cajun::change_lane_task_planner_t, cajun::intersection_task_planner_t, cajun::lane_task_planner_t, cajun::parking_task_planner_t, cajun::passing_lane_task_planner_t, cajun::unparking_task_planner_t, cajun::uturn_task_planner_t, and cajun::zone_task_planner_t.
| void task_planner_t::set_path_blocked | ( | unsigned | p_id_ | ) | [virtual] |
Returns true if TP's path is in forward direction.
Informs the TP that its path is blocked at index p_id_
Reimplemented in cajun::intersection_task_planner_t, and cajun::passing_lane_task_planner_t.
References m_path, m_status, and cajun::PATH_BLOCKED.
| TP_type_t cajun::task_planner_t::type | ( | ) | [inline] |
References m_path, and m_planned_path.
Referenced by cajun::zone_task_planner_t::generate_new_path(), cajun::uturn_task_planner_t::generate_path(), cajun::unparking_task_planner_t::generate_path(), cajun::passing_lane_task_planner_t::generate_path(), cajun::parking_task_planner_t::generate_path(), cajun::lane_task_planner_t::generate_path(), cajun::intersection_task_planner_t::generate_path(), cajun::change_lane_task_planner_t::generate_path(), and cajun::zone_task_planner_t::get_from_local_path().
bool cajun::task_planner_t::m_active [protected] |
Referenced by cajun::intersection_task_planner_t::add_intersection_path(), cajun::zone_task_planner_t::generate_path(), cajun::uturn_task_planner_t::generate_path(), cajun::unparking_task_planner_t::generate_path(), cajun::parking_task_planner_t::generate_path(), cajun::lane_task_planner_t::generate_path(), cajun::intersection_task_planner_t::generate_path(), cajun::change_lane_task_planner_t::generate_path(), is_active(), cajun::zone_task_planner_t::set_active(), cajun::uturn_task_planner_t::set_active(), cajun::unparking_task_planner_t::set_active(), cajun::passing_lane_task_planner_t::set_active(), cajun::parking_task_planner_t::set_active(), cajun::lane_task_planner_t::set_active(), cajun::intersection_task_planner_t::set_active(), cajun::change_lane_task_planner_t::set_active(), cajun::zone_task_planner_t::set_plan(), cajun::uturn_task_planner_t::set_plan(), cajun::unparking_task_planner_t::set_plan(), cajun::passing_lane_task_planner_t::set_plan(), cajun::parking_task_planner_t::set_plan(), cajun::lane_task_planner_t::set_plan(), cajun::intersection_task_planner_t::set_plan(), cajun::change_lane_task_planner_t::set_plan(), cajun::zone_task_planner_t::start_orient(), cajun::passing_lane_task_planner_t::stop_before_passing(), and cajun::intersection_task_planner_t::stop_for_stop_sign().
bool cajun::task_planner_t::m_complete [protected] |
Referenced by cajun::zone_task_planner_t::generate_path(), cajun::uturn_task_planner_t::generate_path(), cajun::unparking_task_planner_t::generate_path(), cajun::parking_task_planner_t::generate_path(), cajun::lane_task_planner_t::generate_path(), cajun::intersection_task_planner_t::generate_path(), cajun::change_lane_task_planner_t::generate_path(), cajun::zone_task_planner_t::is_task_complete(), cajun::uturn_task_planner_t::is_task_complete(), cajun::unparking_task_planner_t::is_task_complete(), cajun::passing_lane_task_planner_t::is_task_complete(), cajun::parking_task_planner_t::is_task_complete(), cajun::lane_task_planner_t::is_task_complete(), cajun::intersection_task_planner_t::is_task_complete(), cajun::change_lane_task_planner_t::is_task_complete(), cajun::passing_lane_task_planner_t::set_active(), cajun::change_lane_task_planner_t::set_active(), cajun::zone_task_planner_t::set_plan(), cajun::uturn_task_planner_t::set_plan(), cajun::unparking_task_planner_t::set_plan(), cajun::passing_lane_task_planner_t::set_plan(), cajun::parking_task_planner_t::set_plan(), cajun::lane_task_planner_t::set_plan(), cajun::intersection_task_planner_t::set_plan(), and cajun::change_lane_task_planner_t::set_plan().
mdf_t const* cajun::task_planner_t::m_mdf [protected] |
path_t cajun::task_planner_t::m_path [protected] |
Referenced by cajun::zone_task_planner_t::generate_path(), cajun::uturn_task_planner_t::generate_path(), cajun::unparking_task_planner_t::generate_path(), cajun::zone_task_planner_t::get_from_local_path(), get_path(), cajun::zone_task_planner_t::is_task_complete(), cajun::unparking_task_planner_t::is_task_complete(), cajun::parking_task_planner_t::is_task_complete(), cajun::lane_task_planner_t::is_task_complete(), cajun::intersection_task_planner_t::is_task_complete(), cajun::change_lane_task_planner_t::is_task_complete(), limit_following_path_speed(), limit_path_speed(), set_path_blocked(), cajun::passing_lane_task_planner_t::set_path_blocked(), cajun::intersection_task_planner_t::set_path_blocked(), and update_local_path().
path_direction_t cajun::task_planner_t::m_path_dir [protected] |
Referenced by cajun::change_lane_task_planner_t::change_lane_task_planner_t(), cajun::uturn_task_planner_t::generate_path(), cajun::intersection_task_planner_t::intersection_task_planner_t(), cajun::lane_task_planner_t::lane_task_planner_t(), cajun::uturn_task_planner_t::limit_turn_speed_limits(), cajun::parking_task_planner_t::parking_task_planner_t(), cajun::passing_lane_task_planner_t::passing_lane_task_planner_t(), path_direction(), cajun::unparking_task_planner_t::unparking_task_planner_t(), cajun::uturn_task_planner_t::uturn_task_planner_t(), and cajun::zone_task_planner_t::zone_task_planner_t().
| std::vector<path_lane_map_t> cajun::task_planner_t::m_path_lane_map |
bool cajun::task_planner_t::m_planned_path [protected] |
bool cajun::task_planner_t::m_reset_base_path [protected] |
Referenced by cajun::uturn_task_planner_t::generate_path(), cajun::unparking_task_planner_t::generate_path(), reset_base_path(), cajun::passing_lane_task_planner_t::set_active(), cajun::change_lane_task_planner_t::set_active(), cajun::zone_task_planner_t::set_plan(), cajun::uturn_task_planner_t::set_plan(), cajun::unparking_task_planner_t::set_plan(), cajun::parking_task_planner_t::set_plan(), cajun::lane_task_planner_t::set_plan(), and cajun::intersection_task_planner_t::set_plan().
rndf_t const* cajun::task_planner_t::m_rndf [protected] |
Reimplemented in cajun::zone_task_planner_t.
Referenced by cajun::passing_lane_task_planner_t::blk_end_points(), cajun::passing_lane_task_planner_t::blockage_just_after(), cajun::passing_lane_task_planner_t::compute_end_passing_points(), cajun::unparking_task_planner_t::compute_unparking_path(), init(), cajun::intersection_task_planner_t::intersection_region_free(), cajun::intersection_task_planner_t::intersection_task_planner_t(), cajun::unparking_task_planner_t::set_paramters(), cajun::parking_task_planner_t::set_plan(), cajun::lane_task_planner_t::set_plan(), and cajun::intersection_task_planner_t::set_plan().
path_status_t cajun::task_planner_t::m_status [protected] |
Referenced by cajun::zone_task_planner_t::generate_new_path(), cajun::zone_task_planner_t::generate_path(), cajun::uturn_task_planner_t::generate_path(), cajun::unparking_task_planner_t::generate_path(), cajun::passing_lane_task_planner_t::generate_path(), cajun::parking_task_planner_t::generate_path(), cajun::lane_task_planner_t::generate_path(), cajun::intersection_task_planner_t::generate_path(), cajun::change_lane_task_planner_t::generate_path(), cajun::zone_task_planner_t::get_from_local_path(), cajun::parking_task_planner_t::parking_task_planner_t(), path_status(), set_path_blocked(), cajun::zone_task_planner_t::straight_path(), cajun::unparking_task_planner_t::unparking_task_planner_t(), cajun::uturn_task_planner_t::uturn_task_planner_t(), and cajun::zone_task_planner_t::zone_task_planner_t().
path_turn_info_t cajun::task_planner_t::m_turn [protected] |
Referenced by cajun::zone_task_planner_t::generate_path(), cajun::unparking_task_planner_t::generate_path(), cajun::passing_lane_task_planner_t::generate_path(), cajun::parking_task_planner_t::generate_path(), cajun::lane_task_planner_t::generate_path(), cajun::change_lane_task_planner_t::generate_path(), get_path_turn_info(), cajun::uturn_task_planner_t::set_plan(), cajun::intersection_task_planner_t::set_plan(), and cajun::change_lane_task_planner_t::set_plan().
TP_type_t cajun::task_planner_t::m_type [protected] |
Referenced by cajun::change_lane_task_planner_t::change_lane_task_planner_t(), cajun::intersection_task_planner_t::intersection_task_planner_t(), cajun::lane_task_planner_t::lane_task_planner_t(), cajun::parking_task_planner_t::parking_task_planner_t(), cajun::passing_lane_task_planner_t::passing_lane_task_planner_t(), type(), cajun::unparking_task_planner_t::unparking_task_planner_t(), cajun::uturn_task_planner_t::uturn_task_planner_t(), and cajun::zone_task_planner_t::zone_task_planner_t().
1.6.1