00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00030
00031
00041 #ifndef PLANNER_INTERFACE_H
00042 #define PLANNER_INTERFACE_H
00043
00044 #include <carmen/robot_messages.h>
00045
00046 #include "navigator.h"
00047 #include "navigator_messages.h"
00048
00049 #ifdef __cplusplus
00050 extern "C" {
00051 #endif
00052
00056 typedef struct {
00057 carmen_traj_point_p points;
00058 int length;
00059 int capacity;
00060 } carmen_planner_path_t, *carmen_planner_path_p;
00061
00065 typedef struct {
00066 carmen_traj_point_t robot;
00067 carmen_point_t goal;
00068 carmen_planner_path_t path;
00069 int goal_set;
00070 } carmen_planner_status_t, *carmen_planner_status_p;
00071
00072
00077 int carmen_planner_update_robot(carmen_traj_point_p new_position,
00078 carmen_navigator_config_t *nav_conf);
00079
00083 int carmen_planner_update_goal(carmen_point_p new_goal, int any_orientation,
00084 carmen_navigator_config_t *nav_conf);
00085
00096 int carmen_planner_next_waypoint(carmen_traj_point_p waypoint,
00097 int *is_goal,
00098 carmen_navigator_config_t *nav_conf);
00099
00102 void carmen_planner_set_map(carmen_map_p map,
00103 carmen_robot_config_t *robot_conf);
00104
00108 void carmen_planner_reset_map(carmen_robot_config_t *robot_conf);
00109
00114 void carmen_planner_update_map(carmen_robot_laser_message *laser_msg,
00115 carmen_navigator_config_t *nav_config,
00116 carmen_robot_config_t *robot_conf);
00117
00122 void carmen_planner_update_grid(carmen_map_p new_map,
00123 carmen_traj_point_p new_position,
00124 carmen_robot_config_t *robot_conf,
00125 carmen_navigator_config_t *nav_conf);
00126
00131 carmen_navigator_map_message* carmen_planner_get_map_message
00132 (carmen_navigator_map_t map_type);
00133
00137 void carmen_planner_get_status(carmen_planner_status_p status);
00138
00145 double *carmen_planner_get_utility(void);
00146
00152 int carmen_planner_goal_reachable(void);
00153
00154 #ifdef __cplusplus
00155 }
00156 #endif
00157
00158 #endif
00159