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>
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) |
This file defines the non-inline member functions of the lobot::MonitorDZone class.
Definition in file LoMonitorDZone.C.
This setting specifies the action to take when the robot's danger zone has been penetrated. The following actions are supported:
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.
Definition at line 136 of file LoMonitorDZone.C.
int m_duration |
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.
int m_update_delay |
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.
bool m_wait_for_stop |
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.