00001
00002
00003
00004
00005
00006 #ifndef CAJUN_PLANNER_DEFS_H
00007 #define CAJUN_PLANNER_DEFS_H
00008
00009 #include "data_type.H"
00010 #include "rndf.H"
00011 #include "rndf_point.H"
00012
00013 #include <deque>
00014
00015 namespace cajun
00016 {
00017 typedef std::deque <path_wp_t> path_t;
00018 typedef std::deque<rndf_t::waypoint_id_t> plan_t;
00020 enum path_status_t
00021 {
00022 PATH_ERROR = 0,
00023 PATH_OKAY = 1,
00024 PATH_OVER = 2,
00025 PATH_END = 3,
00026 PATH_BLOCKED = 4,
00027 PATH_TOO_LONG = 5,
00028 };
00029
00030 enum path_direction_t
00031 {
00032 FORWARD,
00033 REVERSE,
00034 NO_DIRECTION,
00035 };
00036
00037 enum mobility_t
00038 {
00039 STATIC,
00040 DYNAMIC,
00041 ALL_MOBILITIES
00042 };
00043
00045 enum TP_type_t
00046 {
00047 LANE_TP,
00048 INTERSECTION_TP,
00049 CHANGE_LANE_TP,
00050 PASSING_LANE_TP,
00051 UTURN_TP,
00052 ZONE_TP,
00053 PARKING_TP,
00054 UNPARKING_TP
00055 };
00056
00058 enum path_turn_type_t
00059 {
00060 NO_TURN,
00061 LEFT_TURN,
00062 RIGHT_TURN,
00063 };
00065 struct path_turn_info_t
00066 {
00067 path_turn_info_t () { turn = NO_TURN; };
00068 double distance;
00069 path_turn_type_t turn;
00070 };
00071
00072 struct tp_package_t
00073 {
00074 TP_type_t tp_type;
00075 rndf_point_t *rp_1;
00076 rndf_point_t *rp_2;
00077 };
00078
00080 enum relative_side_t
00081 {
00082 LEFT,
00083 RIGHT,
00084 };
00085
00086 struct radar_info_t
00087 {
00088 unsigned qid;
00089 double min_speed;
00090 };
00091 };
00092 #endif