00001 /********************************************************* 00002 * 00003 * This source code is part of the Carnegie Mellon Robot 00004 * Navigation Toolkit (CARMEN) 00005 * 00006 * CARMEN Copyright (c) 2002 Michael Montemerlo, Nicholas 00007 * Roy, and Sebastian Thrun 00008 * 00009 * CARMEN is free software; you can redistribute it and/or 00010 * modify it under the terms of the GNU General Public 00011 * License as published by the Free Software Foundation; 00012 * either version 2 of the License, or (at your option) 00013 * any later version. 00014 * 00015 * CARMEN is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied 00017 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00018 * PURPOSE. See the GNU General Public License for more 00019 * details. 00020 * 00021 * You should have received a copy of the GNU General 00022 * Public License along with CARMEN; if not, write to the 00023 * Free Software Foundation, Inc., 59 Temple Place, 00024 * Suite 330, Boston, MA 02111-1307 USA 00025 * 00026 ********************************************************/ 00027 00028 00030 // @{ 00031 00039 #ifndef NAVIGATOR_INTERFACE_H 00040 #define NAVIGATOR_INTERFACE_H 00041 00042 #include <carmen/navigator_messages.h> 00043 00044 #ifdef __cplusplus 00045 extern "C" { 00046 #endif 00047 00052 void carmen_navigator_subscribe_status_message(carmen_navigator_status_message 00053 *status, 00054 carmen_handler_t handler, 00055 carmen_subscribe_t 00056 subscribe_how); 00057 00061 void carmen_navigator_subscribe_plan_message(carmen_navigator_plan_message 00062 *plan, 00063 carmen_handler_t handler, 00064 carmen_subscribe_t subscribe_how); 00065 00071 void carmen_navigator_subscribe_autonomous_stopped_message 00072 (carmen_navigator_autonomous_stopped_message *autonomous_stopped, 00073 carmen_handler_t handler, 00074 carmen_subscribe_t subscribe_how); 00075 00076 int carmen_navigator_query_status(carmen_navigator_status_message **status); 00077 int carmen_navigator_query_plan(carmen_navigator_plan_message **plan); 00078 00084 int carmen_navigator_set_goal(double x, double y); 00085 00090 int carmen_navigator_set_goal_triplet(carmen_point_p goal); 00091 00102 int carmen_navigator_set_goal_place(char *name); 00103 00109 int carmen_navigator_stop(void); 00112 int carmen_navigator_go(void); 00113 00118 int carmen_navigator_get_map(carmen_navigator_map_t map_type, 00119 carmen_map_t *map); 00120 00121 #ifdef __cplusplus 00122 } 00123 #endif 00124 00125 #endif 00126 // @}