#include "rndf.H"#include "data_type.H"#include "world_state.H"#include "planner_defs.H"#include "task_planner.H"#include "rndf_point.H"Go to the source code of this file.
Namespaces | |
| namespace | cajun |
Defines | |
| #define | MIN_ATRACK 0.0 |
Functions | |
| void | cajun::append_path (path_t &target_path_, const path_t &source_path_) |
| Appends the source_path at end of target_path. | |
| bool | cajun::waypt_reached (rndf_t const *rndf_, double x_, double y_, rndf_t::waypoint_t const &w_, double width_multiplier_, double parking_radius_, double min_atrack_=MIN_ATRACK) |
| Returns true of waypoint w_ is reached by point (x_, y_). | |
| bool | cajun::zone_spot_waypt_reached (rndf_t const *rndf_, double x_, double y_, rndf_t::waypoint_t const &w_, double parking_radius_) |
| Returns true if zone spot_waypt is reached. Which is determined presently based on if x_, y_ within parking_radius_ radius from the spot. | |
| bool | cajun::point_reached (rndf_t const *rndf_, double px_, double py_, double x_, double y_, rndf_t::waypoint_t const &w_, double width_multiplier_) |
| Returns turn if point (px_, py_) is reached by point (x_, y_). The point (px_, py_) has waypoint w_, just following it. w_ is required to compute the orientation of the lane). | |
| bool | cajun::covered_by_path (path_t const &path_, double p_width_, double x_, double y_) |
| Checks if specified points (x_, y_) are coveretd by path, i.e falls next to the path by less than p_width distance. | |
| void | cajun::linear_interpolation (std::vector< path_wp_t > &inter_points_, double interp_dis_, double start_x_, double start_y_, double end_x_, double end_y_) |
| bool | cajun::point_on_path (const path_t &path_, double x_, double y_, unsigned &index_before_, unsigned &index_after_, double dis_before_path_, double dis_after_path_, double dis_off_path_, bool debug_=false) |
| Returns index on path_ just following x_, y_. If (x_, y_) is 'dis_before' distance ahead of start of m_prev_path then returns 0, if (x_, y_) is within 'dis_after' distance after last point of m_prev_path then returns index to last but one point(todo: should be last wp), if point is within the m_prev_path then returns index to point just following (x_, y_), else returns failure in finding (x_,y_) on m_prev_path by returning out of bound index i.e. m_prev_path.size(). | |
| bool | cajun::compute_end_point (double start_x_, double start_y_, double &end_x_, double &end_y_, relative_side_t &side_, rndf_lane_data_t &next_lb_, double width_multiplier_, double look_ahead_ratio_, bool same_dir_) |
| Returns the expected points after change lane. | |
| void | cajun::trace_back_path (const path_t *path_, unsigned ref_i, unsigned &trace_back_i, double &trace_dis_) |
| Walks back along the specified path starting from specified index by specified distance. The functions returns the amount of distance it could trace back and also the index of the new point after tracing back. | |
| void | cajun::copy_path (path_t &source_p_, path_data_t &des_p_) |
| Copy path from source to destination. | |
| void | cajun::copy_path (path_t &source_p_, path_t &des_p_) |
| Copy path from source to destination. | |
| void | cajun::copy_path (double x_, double y_, path_t const &src_path_, path_t &des_path_, double dis_before_, double dis_after_, double dis_off_path_) |
| Copies the src_path_ to des_path_ which lies behind (x_, y_). | |
| bool | cajun::copy_path (std::vector< path_wp_t > &inter_points_, path_t &path_, double &p_len_left_, unsigned start_i_, unsigned end_i_, double min_speed_, double max_speed_) |
| bool | cajun::copy_path (rndf_lane_data_t &lb_, path_t &path_, double &p_len_left_, unsigned start_i, unsigned end_i, double min_speed_, double max_speed_) |
| Returns false if path length reached zero, else returns true. | |
| path_status_t | cajun::add_rndf_lane_to_path (rndf_lane_data_t &lb_, path_t &path_, double &p_len_left_, double end_x_, double end_y_, double min_speed_, double max_speed_, bool reverse_, double width_multiplier_, double dis_before_=1, double dis_after_=1) |
| Appends path following x_, y_ till m_end_wp. Returns true if successful in adding the path, else returns false. | |
| path_status_t | cajun::add_path_to_switch_lane (path_t &path_, double &p_len_left_, relative_side_t &side_, rndf_lane_data_t &lb_, bool same_dir_, double min_speed_, double max_speed_, double m_width_multiplier, double m_look_ahead_ratio) |
| Extend path_ to change lane into new lane with lb_, lane boundary. | |
| void | cajun::set_last_speed_zero (path_t &path_) |
| Set the speed of last point of the path to zero. | |
| void | cajun::reset_zero_speed (path_t &path_) |
| Fillup zero speeds with neighboring point's speed. | |
| void | cajun::filter_path (path_t &p_) |
| Filters the path to remove repeated points. | |
| void | cajun::filter_path (path_data_t &p_) |
| Filters the path to remove repeated points. | |
| void | cajun::extend_path (path_t &path_, double dis_, double inter_dis_) |
| Extends the path at the end of the path by extrapolating the points along the orientation of the instantaneous orientation of the path at that point and by distance specified. | |
| void | cajun::extend_path (path_t &path_, double dis_, double inter_dis_, double orient_) |
| Adds extra points to path_, in the direction or 'orient_' for 'dis_' distance. | |
| bool | cajun::passing_lane_id (rndf_t const *rndf_, unsigned sid_, unsigned lid, unsigned &pasing_lid_) |
| Returns true if there exist a lane in opposite direction, else returns false. | |
| bool | cajun::before_intersection_within_dis (world_state_t *ws_, rndf_t const *rndf_, unsigned sid_, unsigned lid_, double x_, double y_, double for_dis_, bool stop_intersection_) |
| bool | cajun::after_intersection_within_dis (rndf_t const *rndf_, unsigned sid_, unsigned lid_, double x_, double y_, double for_dis_) |
| Returns true if from (x_, y_) on lane (sid_, lid_) is after an intersection within 'for_dis_' in front. | |
| bool | cajun::lane_blocked_for_dis (world_state_t *ws_, unsigned sid_, unsigned lid_, double x_, double y_, double for_dis_, bool forward_, bool for_static_) |
| Returns true if specified lane is blocked for given distance starting for given (x_y_) point in specified direction (forward/reverse). | |
| bool | cajun::task_planner_for_mission (rndf_t const *rndf_, rndf_point_t *wp_id_1_, rndf_point_t *wp_id_2_, std::vector< tp_package_t > &tp_seq_) |
| bool | cajun::zone_task_planner_for_mission (rndf_t const *rndf_, rndf_point_t *wp_id_1_, rndf_point_t *wp_id_2_, std::vector< tp_package_t > &tp_seq_) |
| bool | cajun::have_to_stop_at_intersection (rndf_t const *rndf_, rndf_point_t *rp_1_, rndf_point_t *rp_2_) |
| Returns true if rp_1 -> rp_2 intersection requires bot to stop, either because of stop sign or for crossing traffic. | |
| double | cajun::intersection_turn_angle (rndf_t const *rndf_, rndf_point_t *exit_point_, rndf_point_t *entry_point_) |
| Returns the angle of turn for the intersection through exit_id to entry_id. | |
| bool | cajun::is_exit_entry_pair (rndf_t const *rndf_, rndf_t::waypoint_id_t const &exit_wp_id, rndf_t::waypoint_id_t const &entry_wp_id) |
| returns true if given pair of wp_ids are entry exit pairs | |
| bool | cajun::is_exit_entry_pair (rndf_t const *rndf_, rndf_point_t const *exit_rp, rndf_point_t const *entry_rp) |
| Returns true if 'exit_rp' connects to 'entry_rp' as a exit-entry pair, else returns false. | |
| double | cajun::lane_width (rndf_t const *rndf_, unsigned sid_, unsigned lid_) |
| Returns the width of the specified lane. | |
| bool | cajun::danger_entry_point (rndf_t const *rndf_, rndf_t::waypoint_id_t const &exit_wp_, rndf_t::waypoint_id_t const &entry_wp_, std::vector< rndf_t::waypoint_id_t > &danger_points_) |
| bool | cajun::intersecting_intersection_legs (rndf_t const *rndf_, rndf_t::waypoint_id_t const &exit_wp_id_, rndf_t::waypoint_id_t const &entry_wp_id_, std::vector< rndf_t::lane_seg_t > &lane_list_) |
| bool | cajun::comes_before (world_state_t *ws_, double x1_, double y1_, double x2_, double y2_, unsigned sid_, unsigned lid_, unsigned wid_, double width_multiplier_) |
| Returns if x1, y1, comes before x2, y2 and both of them are expected to be on given segment. | |
| bool | cajun::blk_on_lane_segment (world_state_t *ws_, rndf_t::waypoint_id_t const &start_wp_id_, rndf_t::waypoint_id_t const &end_wp_id_, double static_, double valid_blk_since_) |
| Returns true if there is no blockage on the path between exit_wp and entry_wp. | |
| bool | cajun::point_on_lane (world_state_t *ws_, rndf_t const *rndf_, unsigned sid_, unsigned passing_lid_, double x_, double y_, double &new_x_, double &new_y_, unsigned &wid_before, double width_multiplier_, double first_lane_dis_before_, double last_lane_dis_after_) |
| maps (x_, y_) onto lane (passing_lid_) on segment sid_ and gives the coordinates of closest rndf_point on lane along with waypoint_id prior to mapping. | |
| void | cajun::set_speed_limit (path_t const &base_path_, path_t &path_, double min_speed_, double max_speed_) |
| Sets speed limits of path_ following after base_path_. | |
| double | cajun::path_end_orient (path_t const &path_) |
| Returns the orientation of the path at the end of the path. | |
| bool | cajun::find_a_entry_to_zone (rndf_t const *rndf_, unsigned zone_id, unsigned &entry_wid_) |
| Fills 'entry_wid_' with the wp_id of an entry wp. Returns true if could find one, else returns false. | |
| bool | cajun::consecutive_rndf_points (rndf_point_t *rp1_, rndf_point_t *rp2_) |
| Returns true if rp1_ and rp2_ are consecutive points on a lane. Fixme: Does not handle intermediate rndf points yet. | |
| bool | cajun::last_tp_planned (task_planner_t *tp_) |
| Returns true if this is the last tp planned, and following tps are not planned. | |
| void | cajun::set_path_speed (path_t &path_, double min_speed_, double max_speed_) |
| Sets the speed limit of the whole path to given values. | |
| void | cajun::print_path (path_t const &path_) |
| Prints the whole path to screen. | |
| bool | cajun::point_on_confined_path (const path_t &path_, double x_, double y_, unsigned starti_, unsigned endi_, unsigned &index_before_, unsigned &index_after_, double dis_before_path_, double dis_after_path_, double dis_off_path_, bool debug_=false) |
| #define MIN_ATRACK 0.0 |
Referenced by cajun::covered_by_path(), and cajun::point_reached().
1.6.1