LoMonitorDZone.C File Reference

This file defines the non-inline member functions of the lobot::MonitorDZone class. More...

#include "Robots/LoBot/control/LoMonitorDZone.H"
#include "Robots/LoBot/control/LoMetrics.H"
#include "Robots/LoBot/control/LoSpinArbiter.H"
#include "Robots/LoBot/LoApp.H"
#include "Robots/LoBot/slam/LoMap.H"
#include "Robots/LoBot/io/LoDangerZone.H"
#include "Robots/LoBot/config/LoConfigHelpers.H"
#include "Robots/LoBot/thread/LoUpdateLock.H"
#include "Robots/LoBot/thread/LoPause.H"
#include "Robots/LoBot/thread/LoShutdown.H"
#include "Robots/LoBot/misc/LoRegistry.H"
#include "Robots/LoBot/misc/singleton.hh"
#include "Robots/LoBot/util/LoString.H"
#include "Robots/LoBot/util/LoMath.H"
#include "Robots/LoBot/util/LoTime.H"
#include <iomanip>
#include <algorithm>
#include <iterator>
Include dependency graph for LoMonitorDZone.C:

Go to the source code of this file.

Enumerations

enum  Action

Functions

static void lobot::log (const std::string &msg)
static void lobot::spin (int angle)

Detailed Description

This file defines the non-inline member functions of the lobot::MonitorDZone class.

Definition in file LoMonitorDZone.C.


Variable Documentation

This setting specifies the action to take when the robot's danger zone has been penetrated. The following actions are supported:

  • Spin, i.e., turn the robot in-place, by some random amount. This is the default action.
  • Pause the robot and wait for the user to take appropriate action, e.g., remote control to get the robot out of the danger zone.

NOTE: The pause action will require the user to explicitly restart the robot's controller, i.e., unpause it by pressing the 'p' key. This also requires that the UI not be disabled.

  • Quit the Robolocust controller application. This can be useful, for instance, when we are running experiments that require us to simply drive the robot up to a wall and then stop and start over.

Definition at line 136 of file LoMonitorDZone.C.

Once the robot's danger zone has been penetrated, the monitor_danger_zone behaviour will start an internal stopwatch ticking and wait for it to reach at least the amount specified by this setting before actually taking any action.

This setting should be a time delay specified in milliseconds.

Definition at line 103 of file LoMonitorDZone.C.

The number of milliseconds between successive iterations of this behaviour.

WARNING: The ability to change a behaviour's update frequency is a very powerful feature whose misuse or abuse can wreak havoc! Be sure to use reasonable values for this setting.

Definition at line 144 of file LoMonitorDZone.C.

By default, the monitor_danger_zone behaviour will wait for the robot to come to a full stop before considering any action. Thus, if the danger zone has been penetrated but the robot is still moving (for example, an extricate behaviour is getting the robot unstuck), then monitor_danger_zone will not interfere.

However, by turning this flag off, we can have this behaviour ignore the robot's current state of motion so that it takes action whenever the danger zone has been penetrated for at least the duration specified by the previous setting regardless of whether the robot is moving or not.

Definition at line 116 of file LoMonitorDZone.C.

Generated on Sun May 8 08:42:49 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3