LoRegistry.H

Go to the documentation of this file.
00001 /**
00002    \file Robots/LoBot/misc/LoRegistry.H
00003 
00004    \brief This file acts as a central repository for the names of
00005    different locust models, integartion algorithms, etc. supported by the
00006    Lobot/Robolocust project.
00007 */
00008 
00009 // //////////////////////////////////////////////////////////////////// //
00010 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2005   //
00011 // by the University of Southern California (USC) and the iLab at USC.  //
00012 // See http://iLab.usc.edu for information about this project.          //
00013 // //////////////////////////////////////////////////////////////////// //
00014 // Major portions of the iLab Neuromorphic Vision Toolkit are protected //
00015 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency //
00016 // in Visual Environments, and Applications'' by Christof Koch and      //
00017 // Laurent Itti, California Institute of Technology, 2001 (patent       //
00018 // pending; application number 09/912,225 filed July 23, 2001; see      //
00019 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status).     //
00020 // //////////////////////////////////////////////////////////////////// //
00021 // This file is part of the iLab Neuromorphic Vision C++ Toolkit.       //
00022 //                                                                      //
00023 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can   //
00024 // redistribute it and/or modify it under the terms of the GNU General  //
00025 // Public License as published by the Free Software Foundation; either  //
00026 // version 2 of the License, or (at your option) any later version.     //
00027 //                                                                      //
00028 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope  //
00029 // that it will be useful, but WITHOUT ANY WARRANTY; without even the   //
00030 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      //
00031 // PURPOSE.  See the GNU General Public License for more details.       //
00032 //                                                                      //
00033 // You should have received a copy of the GNU General Public License    //
00034 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write   //
00035 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,   //
00036 // Boston, MA 02111-1307 USA.                                           //
00037 // //////////////////////////////////////////////////////////////////// //
00038 //
00039 // Primary maintainer for this file: mviswana usc edu
00040 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Robots/LoBot/misc/LoRegistry.H $
00041 // $Id: LoRegistry.H 14305 2010-12-08 21:17:33Z mviswana $
00042 //
00043 
00044 #ifndef LOBOT_REGISTRY_DOT_H
00045 #define LOBOT_REGISTRY_DOT_H
00046 
00047 //------------------------ LOCUST MODEL NAMES ---------------------------
00048 
00049 #ifndef LOLM_GABBIANI
00050    #define LOLM_GABBIANI "gabbiani"
00051 #endif
00052 
00053 #ifndef LOLM_STAFFORD
00054    #define LOLM_STAFFORD "stafford"
00055 #endif
00056 
00057 //-------------------------- ROBOT PLATFORMS ----------------------------
00058 
00059 // The Robolocust controller provides support for multiple robot
00060 // platforms. Since each different platform will have a different set of
00061 // sensorimotor primitives, we will need to create appropriate robot
00062 // interface objects for controlling the robot's motors and retrieving
00063 // its sensors. This section names the different robot platforms
00064 // supported by Robolocust.
00065 
00066 // The original Robolocust platform was a hacked R/C car with a mini-ITX
00067 // Debian box, a Propeller board and a Sabertooth motor driver.
00068 #ifndef LORP_LOBOT
00069    #define LORP_RC_CAR "rc_car"
00070 #endif
00071 
00072 // The Robolocust controller may also be run on an appropriately equipped
00073 // iRobot Create/Roomba. The following name is for a Create/Roomba
00074 // equipped with the iRobot Command Module.
00075 #ifndef LORP_ROOMBA_CM
00076    #define LORP_ROOMBA_CM "roomba_cm"
00077 #endif
00078 
00079 //------------------------- ROBOT BEHAVIOURS ----------------------------
00080 
00081 // This behaviour drives the robot forward at the configured cruising
00082 // speed.
00083 #ifndef LOBE_FORWARD
00084    #define LOBE_FORWARD "forward"
00085 #endif
00086 
00087 // This behaviour stops the robot when it senses things are too close for
00088 // comfort.
00089 #ifndef LOBE_EMERGENCY_STOP
00090    #define LOBE_EMERGENCY_STOP "emergency_stop"
00091 #endif
00092 
00093 // This behaviour gets the robot unstuck once the emergency stop
00094 // behaviour has ground it to a halt.
00095 #ifndef LOBE_EXTRICATE
00096    #define LOBE_EXTRICATE "extricate"
00097 #endif
00098 
00099 // This behaviour gets the robot unstuck by spinning the robot around to
00100 // face the direction corresponding to minimal LGMD spiking activity.
00101 #ifndef LOBE_LGMD_EXTRICATE_SIMPLE
00102    #define LOBE_LGMD_EXTRICATE_SIMPLE "lgmd_extricate_sim"
00103 #endif
00104 
00105 // This behaviour gets the robot unstuck by running the LGMD spikes
00106 // through an array of elementary motion detectors.
00107 #ifndef LOBE_LGMD_EXTRICATE_EMD
00108    #define LOBE_LGMD_EXTRICATE_EMD "lgmd_extricate_emd"
00109 #endif
00110 
00111 // This behaviour gets the robot unstuck by applying the virtual force
00112 // field concept to the LGMD spikes rather than relying on the distance
00113 // measurements made by the laser range finder.
00114 #ifndef LOBE_LGMD_EXTRICATE_VFF
00115    #define LOBE_LGMD_EXTRICATE_VFF "lgmd_extricate_vff"
00116 #endif
00117 
00118 // This behaviour gets the robot unstuck by applying the virtual force
00119 // field concept to distance "readings" derived from time-to-impact
00120 // estimates based on LGMD spikes.
00121 #ifndef LOBE_LGMD_EXTRICATE_TTI
00122    #define LOBE_LGMD_EXTRICATE_TTI "lgmd_extricate_tti"
00123 #endif
00124 
00125 // A purely computational, off-line task for computing the sensor model
00126 // required by the lgmd_extricate_tti behaviour.
00127 #ifndef LOBE_CALIBRATE_LET
00128    #define LOBE_CALIBRATE_LET "calibrate_lgmd_extricate_tti"
00129 #endif
00130 
00131 // This behaviour steers the robot towards the most open path that can
00132 // accommodate the robot's width given the current distance measurements
00133 // made by the laser range finder.
00134 #ifndef LOBE_OPEN_PATH
00135    #define LOBE_OPEN_PATH "open_path"
00136 #endif
00137 
00138 // This behaviour implements a SLAM algorithm to obtain an occupancy map
00139 // of the robot's surroundings and to localize the robot within that map.
00140 #ifndef LOBE_SURVEY
00141    #define LOBE_SURVEY "survey"
00142 #endif
00143 
00144 // This behaviour uses the localization module to implement goal seeking.
00145 #ifndef LOBE_GOAL
00146    #define LOBE_GOAL "goal"
00147 #endif
00148 
00149 // This behaviour uses the localization module to maintain a history of
00150 // robot poses and periodically dump that to a file.
00151 #ifndef LOBE_TRACK
00152    #define LOBE_TRACK "track"
00153 #endif
00154 
00155 // This behaviour simply logs bump events.
00156 #ifndef LOBE_BUMP_COUNTER
00157    #define LOBE_BUMP_COUNTER "bump_counter"
00158 #endif
00159 
00160 // This behaviour monitors the danger zone and takes some user-specified
00161 // action after the danger zone has been penetrated for some
00162 // preconfigured duration.
00163 #ifndef LOBE_MONITOR_DZONE
00164    #define LOBE_MONITOR_DZONE "monitor_danger_zone"
00165 #endif
00166 
00167 // This behaviour quits the high-level controller after some
00168 // user-specified amount of time has elapsed since the robot started
00169 // operating.
00170 #ifndef LOBE_COUNTDOWN
00171    #define LOBE_COUNTDOWN "countdown"
00172 #endif
00173 
00174 // This behaviour collects various performance metrics and other useful
00175 // data from other behaviours and periodically dumps this info to a file.
00176 #ifndef LOBE_METRICS
00177    #define LOBE_METRICS "metrics"
00178 #endif
00179 
00180 // This behaviour renders the robot's trajectory and other such info
00181 // collected in a results file (which is output by the lomet dataset
00182 // analysis program) so we can take screenshots to include in papers,
00183 // etc.
00184 #ifndef LOBE_RENDER_RESULTS
00185    #define LOBE_RENDER_RESULTS "render_results"
00186 #endif
00187 
00188 // This behaviour tests Robolocust's laser range finder scan matching
00189 // algorithm using some test data.
00190 #ifndef LOBE_TEST_SCAN_MATCHING
00191    #define LOBE_TEST_SCAN_MATCHING "test_scan_matching"
00192 #endif
00193 
00194 // This behaviour uses the vector field histogram concept for guiding
00195 // robot away from obstacles.
00196 #ifndef LOBE_VFH
00197    #define LOBE_VFH "vfh"
00198 #endif
00199 
00200 // This behaviour can be used to manually control the robot.
00201 //
00202 // NOTE: It only works for the iRobot Roomba/Create, i.e., the
00203 // "roomba_cm" platform.
00204 #ifndef LOBE_REMOTE_CONTROL
00205    #define LOBE_REMOTE_CONTROL "remote_control"
00206 #endif
00207 
00208 //-----------------------------------------------------------------------
00209 
00210 #endif
00211 
00212 /* So things look consistent in everyone's emacs... */
00213 /* Local Variables: */
00214 /* indent-tabs-mode: nil */
00215 /* End: */
Generated on Sun May 8 08:41:31 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3