#include <curved_path_extractor.H>
Classes | |
| struct | cmp_node_t |
| struct | ep_node_t |
Public Member Functions | |
| curved_path_extractor_t (double cell_size_, obstacle_free_t *of_) | |
Private Member Functions | |
| bool | extract (double tstamp_, path_t &path_, path_t &detail_path_, double orient_) |
| void | clear_work_list () |
| ep_node_t * | bsd_search (path_t &path_) |
| void | create_start_node (ep_node_t *start_node_, path_t const &detail_path_, double orient_) |
| void | create_ith_child (ep_node_t *parent_node, unsigned child_id, ep_node_t *&child_node) |
| bool | stop_exploring (ep_node_t *node_) |
| bool | through_bad_part (ep_node_t const *node_) |
| bool | point_over_bad_part (double x_, double y_) |
| bool | outside_zone (ep_node_t const *node_) |
| bool | reached_goal (ep_node_t const *node) |
| void | form_new_node (ep_node_t *start_node_, ep_node_t *new_node_, unsigned child_id_) |
| void | extract_path (ep_node_t *start_node, path_t &path_) |
| Extracts path from the start search node. | |
| double | get_cost_at_xy (double x_, double y_) |
| double | orientation_to_goal (ep_node_t const *node_) |
| bool | approaching_wrong (ep_node_t const *start_node_) |
| void | write_to_file (FILE *fp, ep_node_t *node1, ep_node_t *node2) |
Private Attributes | |
| std::priority_queue< ep_node_t *, std::vector< ep_node_t * > , cmp_node_t > | m_work_list |
| obstacle_free_t * | m_obstacle_free |
| double | m_start_x |
| double | m_start_y |
| std::vector< double > | m_orient_step |
| double | m_dis_step_size |
| const uc_planner_param_t * | m_uc_param |
| unsigned | m_depth |
| unsigned | m_count |
Static Private Attributes | |
| static const unsigned | MAX_CHILDREN = 3 |
| curved_path_extractor_t::curved_path_extractor_t | ( | double | cell_size_, | |
| obstacle_free_t * | of_ | |||
| ) |
References cajun::uc_planner_param_t::get_uc_planner_param(), cajun::path_extractor_t::m_cell_size, cajun::uc_planner_param_t::m_curved_path_num_one_side_steps, cajun::uc_planner_param_t::m_curved_path_step_size, m_dis_step_size, m_orient_step, m_uc_param, and cajun::uc_planner_param_t::m_vehicle_turn_radius.
| bool curved_path_extractor_t::approaching_wrong | ( | ep_node_t const * | start_node_ | ) | [private] |
References cajun::gc_oracle_t::cost(), cajun::path_extractor_t::m_gc_oracle, cajun::path_extractor_t::m_goal_orient, cajun::path_extractor_t::m_search_grid, cajun::curved_path_extractor_t::ep_node_t::parent_node, cajun::curved_path_extractor_t::ep_node_t::x, and cajun::curved_path_extractor_t::ep_node_t::y.
Referenced by stop_exploring().
| curved_path_extractor_t::ep_node_t * curved_path_extractor_t::bsd_search | ( | path_t & | path_ | ) | [private] |
References clear_work_list(), create_ith_child(), m_orient_step, m_work_list, reached_goal(), stop_exploring(), through_bad_part(), and write_to_file().
Referenced by extract().
| void curved_path_extractor_t::clear_work_list | ( | ) | [private] |
References m_work_list.
Referenced by bsd_search().
| void curved_path_extractor_t::create_ith_child | ( | ep_node_t * | parent_node, | |
| unsigned | child_id, | |||
| ep_node_t *& | child_node | |||
| ) | [private] |
References cajun::curved_path_extractor_t::ep_node_t::child_node, cajun::gc_oracle_t::cost(), cajun::curved_path_extractor_t::ep_node_t::cost_from_start, cajun::curved_path_extractor_t::ep_node_t::cost_to_goal, cajun::curved_path_extractor_t::ep_node_t::depth, cajun::curved_path_extractor_t::ep_node_t::id, m_dis_step_size, cajun::path_extractor_t::m_gc_oracle, m_orient_step, cajun::path_extractor_t::m_search_grid, MAX_CHILDREN, cajun::curved_path_extractor_t::ep_node_t::orient, cajun::curved_path_extractor_t::ep_node_t::parent_node, cajun::curved_path_extractor_t::ep_node_t::total_cost, cajun::curved_path_extractor_t::ep_node_t::x, and cajun::curved_path_extractor_t::ep_node_t::y.
Referenced by bsd_search().
| void curved_path_extractor_t::create_start_node | ( | ep_node_t * | start_node_, | |
| path_t const & | detail_path_, | |||
| double | orient_ | |||
| ) | [private] |
References cajun::curved_path_extractor_t::ep_node_t::child_node, cajun::curved_path_extractor_t::ep_node_t::cost_from_start, cajun::curved_path_extractor_t::ep_node_t::cost_to_goal, cajun::curved_path_extractor_t::ep_node_t::depth, get_cost_at_xy(), cajun::curved_path_extractor_t::ep_node_t::id, MAX_CHILDREN, cajun::curved_path_extractor_t::ep_node_t::orient, cajun::curved_path_extractor_t::ep_node_t::parent_node, cajun::curved_path_extractor_t::ep_node_t::total_cost, cajun::curved_path_extractor_t::ep_node_t::x, and cajun::curved_path_extractor_t::ep_node_t::y.
Referenced by extract().
| bool curved_path_extractor_t::extract | ( | double | tstamp_, | |
| path_t & | path_, | |||
| path_t & | detail_path_, | |||
| double | orient_ | |||
| ) | [private, virtual] |
Implements cajun::path_extractor_t.
References bsd_search(), create_start_node(), extract_path(), m_count, m_depth, and m_work_list.
Extracts path from the start search node.
References cajun::path_extractor_t::m_search_grid, cajun::curved_path_extractor_t::ep_node_t::parent_node, cajun::curved_path_extractor_t::ep_node_t::x, and cajun::curved_path_extractor_t::ep_node_t::y.
Referenced by extract().
| void cajun::curved_path_extractor_t::form_new_node | ( | ep_node_t * | start_node_, | |
| ep_node_t * | new_node_, | |||
| unsigned | child_id_ | |||
| ) | [private] |
| double curved_path_extractor_t::get_cost_at_xy | ( | double | x_, | |
| double | y_ | |||
| ) | [private] |
References cajun::gc_oracle_t::cost(), cajun::path_extractor_t::m_gc_oracle, and cajun::path_extractor_t::m_search_grid.
Referenced by create_start_node().
| double curved_path_extractor_t::orientation_to_goal | ( | ep_node_t const * | node_ | ) | [private] |
| bool cajun::curved_path_extractor_t::outside_zone | ( | ep_node_t const * | node_ | ) | [private] |
| bool curved_path_extractor_t::point_over_bad_part | ( | double | x_, | |
| double | y_ | |||
| ) | [private] |
References cajun::gc_oracle_t::cost(), cajun::path_extractor_t::m_gc_oracle, and cajun::path_extractor_t::m_search_grid.
Referenced by through_bad_part().
| bool curved_path_extractor_t::reached_goal | ( | ep_node_t const * | node | ) | [private] |
References cajun::gc_oracle_t::cost(), m_depth, cajun::path_extractor_t::m_gc_oracle, cajun::path_extractor_t::m_goal_orient, cajun::uc_planner_param_t::m_min_cost_to_consider_reached_goal, cajun::path_extractor_t::m_search_grid, m_uc_param, cajun::curved_path_extractor_t::ep_node_t::parent_node, cajun::curved_path_extractor_t::ep_node_t::x, and cajun::curved_path_extractor_t::ep_node_t::y.
Referenced by bsd_search().
| bool curved_path_extractor_t::stop_exploring | ( | ep_node_t * | node_ | ) | [private] |
References approaching_wrong(), cajun::uc_planner_param_t::m_curved_path_max_search_depth, m_depth, and m_uc_param.
Referenced by bsd_search().
| bool curved_path_extractor_t::through_bad_part | ( | ep_node_t const * | node_ | ) | [private] |
References cajun::gc_oracle_t::cost(), dx, dy, cajun::uc_planner_param_t::m_bot_box_within, cajun::uc_planner_param_t::m_check_safety_region_around_box, cajun::path_extractor_t::m_gc_oracle, m_obstacle_free, cajun::path_extractor_t::m_search_grid, m_uc_param, cajun::obstacle_free_t::obstacle_in_region(), cajun::curved_path_extractor_t::ep_node_t::parent_node, point_over_bad_part(), cajun::path_extractor_t::search_to_global_x(), cajun::path_extractor_t::search_to_global_y(), cajun::curved_path_extractor_t::ep_node_t::x, and cajun::curved_path_extractor_t::ep_node_t::y.
Referenced by bsd_search().
unsigned cajun::curved_path_extractor_t::m_count [private] |
Referenced by extract().
unsigned cajun::curved_path_extractor_t::m_depth [private] |
Referenced by extract(), reached_goal(), and stop_exploring().
double cajun::curved_path_extractor_t::m_dis_step_size [private] |
Referenced by create_ith_child(), and curved_path_extractor_t().
Referenced by through_bad_part().
std::vector<double> cajun::curved_path_extractor_t::m_orient_step [private] |
Referenced by bsd_search(), create_ith_child(), and curved_path_extractor_t().
double cajun::curved_path_extractor_t::m_start_x [private] |
double cajun::curved_path_extractor_t::m_start_y [private] |
const uc_planner_param_t* cajun::curved_path_extractor_t::m_uc_param [private] |
Referenced by curved_path_extractor_t(), reached_goal(), stop_exploring(), and through_bad_part().
std::priority_queue<ep_node_t *, std::vector<ep_node_t *>, cmp_node_t> cajun::curved_path_extractor_t::m_work_list [private] |
Referenced by bsd_search(), clear_work_list(), and extract().
const unsigned cajun::curved_path_extractor_t::MAX_CHILDREN = 3 [static, private] |
Referenced by create_ith_child(), and create_start_node().
1.6.1