cajun Namespace Reference

Classes

class  base_path_provider_t
 Class to provide base_path. It stores the previous path and provides base path. More...
class  base_state_machine_t
class  basic_path_extractor_t
class  basic_work_list_t
class  change_lane_task_planner_t
class  curved_path_extractor_t
class  gc_oracle_t
class  goal_marker_t
class  graph_t
class  graph_search_t
class  intersection_task_planner_t
class  lane_task_planner_t
struct  map_cell_t
class  map_grid_publisher_t
class  mission_handler_t
class  mission_planner_t
class  obstacle_free_t
class  obstacle_marker_t
class  parking_task_planner_t
class  passing_lane_task_planner_t
class  path_extractor_t
class  path_generator_t
class  path_nudger_t
class  path_verifier_t
class  planner_t
struct  path_turn_info_t
 To inform what type of turn is the path going to perform. More...
struct  tp_package_t
struct  radar_info_t
class  rndf_point_t
class  rp_containter_t
 Is a container class for rndf_point. It contains pointer to rndf_point_t, and provide access as clone of rndf_point_t*, except that not as a pointer but as a regular variable. This is required so that data rp_containter can be used as a key to STL libraries functions map. The library fails if trying to use key of pointer type as it uses the address of the key pointer instead of the key value. More...
struct  search_cell_t
class  search_grid_publisher_t
class  safe_state_t
 Default state of the state machine. More...
class  confirm_obstacle_t
 State to confirm that a obstacle is blocking the lane. More...
class  lane_blocked_t
 Intermediate state for switching to any of action states after the lane blockage is confirm. More...
class  pre_stop_lane_blocked_t
class  intersection_blocked_t
class  post_stop_lane_blocked_t
class  intersection_queueing_t
 State to keep bot waiting for intersection queuing. More...
class  changing_lane_t
 State to driving into neighboring lane for avoiding blocked lane. More...
class  passing_lane_t
 State to driving into on-coming lane for avoiding blocked lane. More...
class  uturn_state_t
 State to driving into on-coming lane for avoiding blocked lane. More...
class  state_machine_t
class  task_plan_handler_t
class  task_planner_t
struct  lane_clipage_info_t
class  track_annotation_t
class  traffic_verifier_t
class  uc_planner_param_t
class  unparking_task_planner_t
class  uturn_task_planner_t
class  wave_gc_oracle_t
struct  work_info_t
class  work_list_interface_t
class  zone_marker_t
class  zone_planner_t
class  zone_task_planner_t

Typedefs

typedef grid_t< map_cell_tmap_grid_t
typedef std::deque
< rndf_point_t * > 
mission_plan_t
typedef graph_t
< rp_containter_t >::vertex_t 
graph_node_t
typedef std::deque< path_wp_t > path_t
typedef std::deque
< rndf_t::waypoint_id_t > 
plan_t
typedef grid_t< search_cell_tsearch_grid_t
typedef std::deque
< task_planner_t * > 
tp_plan_t
typedef std::vector
< lane_clipage_info_t
lane_clipage_list_t
typedef work_info_t work_data_t

Enumerations

enum  path_status_t {
  PATH_ERROR = 0, PATH_OKAY = 1, PATH_OVER = 2, PATH_END = 3,
  PATH_BLOCKED = 4, PATH_TOO_LONG = 5
}
 

status of path generated by TPs

More...
enum  path_direction_t { FORWARD, REVERSE, NO_DIRECTION }
enum  mobility_t { STATIC, DYNAMIC, ALL_MOBILITIES }
enum  TP_type_t {
  LANE_TP, INTERSECTION_TP, CHANGE_LANE_TP, PASSING_LANE_TP,
  UTURN_TP, ZONE_TP, PARKING_TP, UNPARKING_TP
}
 

TP Identity.

More...
enum  path_turn_type_t { NO_TURN, LEFT_TURN, RIGHT_TURN }
 

Specify type of turn.

More...
enum  relative_side_t { LEFT, RIGHT }
 

Verbal specify left, right sides.

More...
enum  state_machine_id_t {
  SAFE, CONFIRM_OBSTACLE, LANE_BLOCKED, PRE_STOP_LANE_BLOCKED,
  INTERSECTION_BLOCKED, POST_STOP_LANE_BLOCKED, INTERSECTION_QUEUEING, PASSING_LANE,
  CHANGING_LANE, UTURN
}
 

Labels for state machine states.

More...

Functions

void append_path (path_t &target_path_, const path_t &source_path_)
 Appends the source_path at end of target_path.
bool 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 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 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 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 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 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 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 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 copy_path (path_t &source_p_, path_data_t &des_p_)
 Copy path from source to destination.
void copy_path (path_t &source_p_, path_t &des_p_)
 Copy path from source to destination.
void 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 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 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 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 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 set_last_speed_zero (path_t &path_)
 Set the speed of last point of the path to zero.
void reset_zero_speed (path_t &path_)
 Fillup zero speeds with neighboring point's speed.
void filter_path (path_t &p_)
 Filters the path to remove repeated points.
void filter_path (path_data_t &p_)
 Filters the path to remove repeated points.
void 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 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 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 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 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 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 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 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 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 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 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 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 lane_width (rndf_t const *rndf_, unsigned sid_, unsigned lid_)
 Returns the width of the specified lane.
bool 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 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 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 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 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 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 path_end_orient (path_t const &path_)
 Returns the orientation of the path at the end of the path.
bool 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 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 last_tp_planned (task_planner_t *tp_)
 Returns true if this is the last tp planned, and following tps are not planned.
void set_path_speed (path_t &path_, double min_speed_, double max_speed_)
 Sets the speed limit of the whole path to given values.
void print_path (path_t const &path_)
 Prints the whole path to screen.
bool 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)
void trace_back_global_path (std::deque< task_planner_t * > const &plan_, unsigned tp_ind_, unsigned path_start_ind_, unsigned &LA_tp_ind_, unsigned &LA_path_ind_, double &distance_)
double dis_bet_tp_path (std::deque< task_planner_t * > const &plan_, unsigned tp_id)
 computes distance between 1st point of tp_id TP's path and last point of (tp_id -1) TP's path

Typedef Documentation

typedef grid_t<map_cell_t> cajun::map_grid_t
typedef std::deque<rndf_point_t*> cajun::mission_plan_t
typedef std::deque<path_wp_t> cajun::path_t
typedef std::deque<rndf_t::waypoint_id_t> cajun::plan_t
typedef std::deque<task_planner_t *> cajun::tp_plan_t

Enumeration Type Documentation

Enumerator:
STATIC 
DYNAMIC 
ALL_MOBILITIES 
Enumerator:
FORWARD 
REVERSE 
NO_DIRECTION 

status of path generated by TPs

Enumerator:
PATH_ERROR 
PATH_OKAY 
PATH_OVER 
PATH_END 
PATH_BLOCKED 
PATH_TOO_LONG 

Specify type of turn.

Enumerator:
NO_TURN 
LEFT_TURN 
RIGHT_TURN 

Verbal specify left, right sides.

Enumerator:
LEFT 
RIGHT 

Labels for state machine states.

Enumerator:
SAFE 
CONFIRM_OBSTACLE 
LANE_BLOCKED 
PRE_STOP_LANE_BLOCKED 
INTERSECTION_BLOCKED 
POST_STOP_LANE_BLOCKED 
INTERSECTION_QUEUEING 
PASSING_LANE 
CHANGING_LANE 
UTURN 

TP Identity.

Enumerator:
LANE_TP 
INTERSECTION_TP 
CHANGE_LANE_TP 
PASSING_LANE_TP 
UTURN_TP 
ZONE_TP 
PARKING_TP 
UNPARKING_TP 

Function Documentation

cajun::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 
)
cajun::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.

References copy_path(), message, msg_logger, PATH_ERROR, PATH_OKAY, PATH_OVER, and PATH_TOO_LONG.

Referenced by cajun::passing_lane_task_planner_t::drive_on_passing_lane(), and cajun::lane_task_planner_t::generate_path().

bool cajun::after_intersection_within_dis ( rndf_t const *  rndf_,
unsigned  sid_,
unsigned  lid_,
double  x_,
double  y_,
double  for_dis_ 
)
void cajun::append_path ( path_t &  target_path_,
const path_t &  source_path_ 
)
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::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.

Referenced by cajun::intersection_task_planner_t::intersection_region_free().

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.

References cajun::uc_planner_param_t::m_allowed_post_lane_dis, and cajun::uc_planner_param_t::m_allowed_pre_lane_dis.

Referenced by cajun::traffic_verifier_t::traffic_approach_point().

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.

References LEFT, and RIGHT.

Referenced by add_path_to_switch_lane(), cajun::state_machine_t::change_lane(), and cajun::state_machine_t::switch_lane_possible().

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.

References cajun::rndf_point_t::id().

Referenced by cajun::mission_planner_t::filter_detail_plan().

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.

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_ 
)
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_).

References point_on_path().

void cajun::copy_path ( path_t &  source_p_,
path_t &  des_p_ 
)

Copy path from source to destination.

void cajun::copy_path ( path_t &  source_p_,
path_data_t &  des_p_ 
)
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.

References MIN_ATRACK.

Referenced by add_path_to_switch_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_ 
)
double cajun::dis_bet_tp_path ( std::deque< task_planner_t * > const &  plan_,
unsigned  tp_id 
)

computes distance between 1st point of tp_id TP's path and last point of (tp_id -1) TP's path

Referenced by trace_back_global_path().

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.

References dx, and dy.

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.

Referenced by cajun::uturn_task_planner_t::add_3_point_turn(), cajun::parking_task_planner_t::compute_parking_path(), and cajun::unparking_task_planner_t::compute_unparking_path().

void cajun::filter_path ( path_data_t &  p_  ) 

Filters the path to remove repeated points.

void cajun::filter_path ( path_t &  p_  ) 

Filters the path to remove repeated points.

Referenced by cajun::planner_t::get_steering_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.

Referenced by cajun::mission_handler_t::update_plan().

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.

References danger_entry_point(), cajun::rndf_point_t::id(), cajun::rndf_point_t::is_exit(), and cajun::rndf_point_t::is_stop().

Referenced by cajun::intersection_task_planner_t::set_plan().

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_ 
)
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.

References cajun::rndf_point_t::id().

Referenced by cajun::intersection_task_planner_t::set_plan().

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.

References cajun::rndf_point_t::id(), cajun::rndf_point_t::is_entry(), cajun::rndf_point_t::is_exit(), and cajun::rndf_point_t::is_rndf_wp().

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 
)
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_ 
)
double cajun::lane_width ( rndf_t const *  rndf_,
unsigned  sid_,
unsigned  lid_ 
)

Returns the width of the specified lane.

Referenced by waypt_reached().

bool cajun::last_tp_planned ( task_planner_t tp_  ) 

Returns true if this is the last tp planned, and following tps are not planned.

References PATH_BLOCKED, PATH_END, PATH_ERROR, PATH_OVER, cajun::task_planner_t::path_status(), and PATH_TOO_LONG.

Referenced by cajun::traffic_verifier_t::path_free_of_traffic().

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_ 
)

Referenced by add_path_to_switch_lane().

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.

Referenced by cajun::task_plan_handler_t::pass_lane(), and cajun::state_machine_t::passing_lane_exist().

double cajun::path_end_orient ( path_t const &  path_  ) 

Returns the orientation of the path at the end of the path.

Referenced by cajun::zone_task_planner_t::start_orient().

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 
)
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.

Referenced by cajun::state_machine_t::enough_uturn_region(), cajun::state_machine_t::set_road_blocked(), cajun::traffic_verifier_t::uturn_free_of_traffic(), and cajun::state_machine_t::uturn_region_blocked().

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().

Referenced by copy_path(), cajun::zone_task_planner_t::cut_down_path(), cajun::base_path_provider_t::get_base_path(), cajun::zone_task_planner_t::get_from_local_path(), cajun::zone_task_planner_t::is_path_good(), 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(), and cajun::planner_t::ready_to_handle_blocked_lane().

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).

References MIN_ATRACK.

void cajun::print_path ( path_t const &  path_  ) 

Prints the whole path to screen.

void cajun::reset_zero_speed ( path_t &  path_  ) 

Fillup zero speeds with neighboring point's speed.

void cajun::set_last_speed_zero ( path_t &  path_  ) 

Set the speed of last point of the path to zero.

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.

Referenced by cajun::base_path_provider_t::get_base_path().

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_.

Referenced by cajun::zone_task_planner_t::generate_new_path().

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_ 
)
void cajun::trace_back_global_path ( std::deque< task_planner_t * > const &  plan_,
unsigned  tp_ind_,
unsigned  path_start_ind_,
unsigned &  LA_tp_ind_,
unsigned &  LA_path_ind_,
double &  distance_ 
)
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.

Referenced by trace_back_global_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_).

References lane_width(), and zone_spot_waypt_reached().

Referenced by cajun::mission_handler_t::update_waypoints_reached().

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.

Referenced by waypt_reached().

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_ 
)

Generated on Fri Apr 9 10:45:15 2010 for UCPlanner by  doxygen 1.6.1