LoGoal.C File Reference

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

#include "Robots/LoBot/control/LoGoal.H"
#include "Robots/LoBot/control/LoMetrics.H"
#include "Robots/LoBot/control/LoTurnArbiter.H"
#include "Robots/LoBot/control/LoSpinArbiter.H"
#include "Robots/LoBot/LoApp.H"
#include "Robots/LoBot/slam/LoMap.H"
#include "Robots/LoBot/slam/LoSlamParams.H"
#include "Robots/LoBot/config/LoConfigHelpers.H"
#include "Robots/LoBot/thread/LoShutdown.H"
#include "Robots/LoBot/thread/LoUpdateLock.H"
#include "Robots/LoBot/thread/LoPause.H"
#include "Robots/LoBot/misc/LoExcept.H"
#include "Robots/LoBot/misc/LoRegistry.H"
#include "Robots/LoBot/misc/singleton.hh"
#include "Robots/LoBot/util/LoGL.H"
#include "Robots/LoBot/util/LoMath.H"
#include <GL/glu.h>
#include <GL/gl.h>
#include <iomanip>
#include <sstream>
#include <numeric>
#include <algorithm>
#include <functional>
#include <iterator>
#include <utility>
Include dependency graph for LoGoal.C:

Go to the source code of this file.

Functions

static std::string lobot::mag (char label, const Vector &v)

Detailed Description

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

Definition in file LoGoal.C.


Variable Documentation

In loop mode, instead of starting over at the first goal, we can have the goal behaviour backtrack over the goal list, i.e., seek each of the goals in reverse. This flag enables backtracking. It is off by default.

Definition at line 146 of file LoGoal.C.

bool m_loop

By default, when the final goal in the goal list is reached, the goal behaviour will maintain that goal. Thus, if another behaviour causes the robot to move away from the final goal in the goal list, the goal behaviour will redirect the robot back to that goal.

However, by setting this flag, we can have the goal behaviour loop back to the first goal in the list and start over.

Definition at line 140 of file LoGoal.C.

bool m_pause

What should we do when we reach a goal? The options are:

  • continue on to the next goal
  • pause robot and wait for user to start it moving again

This setting specifies which of the above two actions to use. By default, the goal behaviour implements the "continue" action, i.e., when the robot reaches a goal, it simply carries on to the next one. However, by setting this flag, the behaviour will pause the robot and wait for the user to explicitly signal resumption of normal operations.

Definition at line 130 of file LoGoal.C.

In addition to rendering its steering votes, the goal behaviour can also render the goal list on the Robolocust map. This flag turns on goal list rendering. It is off by default.

Definition at line 200 of file LoGoal.C.

This behaviour can be configured to actively steer the robot to each goal or to simply monitor the robot's current location to check if the robot is at a goal or not. When set, this flag will make the goal behaviour actively seek each goal in its list. By default, this flag is off, i.e., the behaviour only monitors the robot's location without affecting its steering in any way.

Definition at line 117 of file LoGoal.C.

Usually, steering control is effected using the turn arbiter, which veers the robot in different directions while it moves, i.e., smooth car-like turns. However, the lgmd_extricate_tti behaviour also supports spin-style steering, i.e., momentarily stopping the robot and then turning it cw/ccw in-place. This flag turns on spin-style steering. By default, the behaviour uses the normal car-like steering mode.

Definition at line 182 of file LoGoal.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 190 of file LoGoal.C.

std::pair<float, float> m_vff_forces

The VFF method mentioned above computes a repulsive force vector for each cell within the active window and an attractive force vector for the goal. The sum of all the repulsive forces and the single attractive force result in a final steering vector.

This setting specifies the force constants to use for the individual force vectors. It should be a pair of numbers. The first number is the repulsive force constant and the second one is the attractive force constant.

Definition at line 173 of file LoGoal.C.

When configured to actively steer the robot towards goals, the goal behaviour directs the robot towards the current goal by implementing the VFF method described by Borenstein and Koren (see "Real-time Obstacle Avoidance for Fast Mobile Robots," IEEE Transactions on Systems, Man, and Cybernetics 19(5):1179--1187, Sep/Oct 1989).

The following setting specifies the size of the active window within the certainty grid (i.e., occupancy map). This size is specified in terms of the number of cells occupied by the active window.

NOTE: Actually, this setting specifies half of the active window's size. That is, internally, this number is doubled.

Definition at line 162 of file LoGoal.C.

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