00001 /** 00002 \file Robots/LoBot/irccm/LoWheelDrops.h 00003 \brief Low-level reactions for the wheel drop sensors. 00004 00005 This file defines an API for examining the iRobot Create's wheel drop 00006 sensor states and stopping lobot's motors in case it has teetered off 00007 the edge of a stairway or been picked up. Additionally, this module 00008 provides an API for sending the wheel drops acknowledgement to the 00009 high level. 00010 */ 00011 00012 /* 00013 ************************************************************************ 00014 * The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2005 * 00015 * by the University of Southern California (USC) and the iLab at USC. * 00016 * See http://iLab.usc.edu for information about this project. * 00017 * * 00018 * Major portions of the iLab Neuromorphic Vision Toolkit are protected * 00019 * under the U.S. patent ``Computation of Intrinsic Perceptual Saliency * 00020 * in Visual Environments, and Applications'' by Christof Koch and * 00021 * Laurent Itti, California Institute of Technology, 2001 (patent * 00022 * pending; application number 09/912,225 filed July 23, 2001; see * 00023 * http://pair.uspto.gov/cgi-bin/final/home.pl for current status). * 00024 ************************************************************************ 00025 * This file is part of the iLab Neuromorphic Vision C++ Toolkit. * 00026 * * 00027 * The iLab Neuromorphic Vision C++ Toolkit is free software; you can * 00028 * redistribute it and/or modify it under the terms of the GNU General * 00029 * Public License as published by the Free Software Foundation; either * 00030 * version 2 of the License, or (at your option) any later version. * 00031 * * 00032 * The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope * 00033 * that it will be useful, but WITHOUT ANY WARRANTY; without even the * 00034 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * 00035 * PURPOSE. See the GNU General Public License for more details. * 00036 * * 00037 * You should have received a copy of the GNU General Public License * 00038 * along with the iLab Neuromorphic Vision C++ Toolkit; if not, write * 00039 * to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * 00040 * Boston, MA 02111-1307 USA. * 00041 ************************************************************************ 00042 */ 00043 00044 /* 00045 Primary maintainer for this file: mviswana usc edu 00046 $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Robots/LoBot/irccm/LoWheelDrops.h $ 00047 $Id: LoWheelDrops.h 13745 2010-08-02 05:27:16Z mviswana $ 00048 */ 00049 00050 #ifndef LOBOT_IRCCM_WHEEL_DROPS_DOT_H 00051 #define LOBOT_IRCCM_WHEEL_DROPS_DOT_H 00052 00053 /*------------------------- LOW-LEVEL ACTIONS -------------------------*/ 00054 00055 /// This function reacts to the iRobot Create's wheel drop sensors. If 00056 /// any of them are indeed active, it sets a flag to indicate to the main 00057 /// program that a wheel drops acknowledgement needs to be sent to the 00058 /// high level. 00059 void lo_wheel_drops(void) ; 00060 00061 /*---------------- WHEEL DROP SENSOR ACKNOWLEDGEMENTS -----------------*/ 00062 00063 /// This function returns true if Robolocust's low-level Command Module 00064 /// control program reacted to the Create robot's wheel drop sensors and 00065 /// needs to send an acknowledgement to the high level letting it know 00066 /// what the low level did. 00067 char lo_wheel_drops_pending(void) ; 00068 00069 /// Send pending wheel drops acknowledgement to the high level. 00070 void lo_send_wheel_drops(void) ; 00071 00072 /*--------------------- WHEEL DROP STATE QUERIES ----------------------*/ 00073 00074 /// Returns true if the wheel drop module's internal state indicates that 00075 /// a wheel is dropped; false otherwise. 00076 #define lo_is_wheel_dropped() lo_wheel_drops_pending() 00077 00078 /*---------------------------------------------------------------------*/ 00079 00080 #endif