Main MRPT website > C++ reference
MRPT logo
CAbstractHolonomicReactiveMethod.h
Go to the documentation of this file.
1 /* +---------------------------------------------------------------------------+
2  | The Mobile Robot Programming Toolkit (MRPT) C++ library |
3  | |
4  | http://www.mrpt.org/ |
5  | |
6  | Copyright (C) 2005-2012 University of Malaga |
7  | |
8  | This software was written by the Machine Perception and Intelligent |
9  | Robotics Lab, University of Malaga (Spain). |
10  | Contact: Jose-Luis Blanco <jlblanco@ctima.uma.es> |
11  | |
12  | This file is part of the MRPT project. |
13  | |
14  | MRPT is free software: you can redistribute it and/or modify |
15  | it under the terms of the GNU General Public License as published by |
16  | the Free Software Foundation, either version 3 of the License, or |
17  | (at your option) any later version. |
18  | |
19  | MRPT is distributed in the hope that it will be useful, |
20  | but WITHOUT ANY WARRANTY; without even the implied warranty of |
21  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
22  | GNU General Public License for more details. |
23  | |
24  | You should have received a copy of the GNU General Public License |
25  | along with MRPT. If not, see <http://www.gnu.org/licenses/>. |
26  | |
27  +---------------------------------------------------------------------------+ */
28 #ifndef CAbstractHolonomicReactiveMethod_H
29 #define CAbstractHolonomicReactiveMethod_H
30 
31 #include <mrpt/utils.h>
32 #include <mrpt/poses.h>
34 
35 namespace mrpt
36 {
37  namespace reactivenav
38  {
39  using namespace mrpt::utils;
40  using namespace mrpt::poses;
41 
42  /** A base class for holonomic reactive navigation methods.
43  * \sa CHolonomicVFF,CHolonomicND, CReactiveNavigationSystem
44  * \ingroup mrpt_reactivenav_grp
45  */
47  {
48  public:
49  /** This method performs the holonomic navigation itself.
50  * \param target [IN] The relative location (x,y) of target point.
51  * \param obstacles [IN] Distance to obstacles from robot location (0,0). First index refers to -PI direction, and last one to +PI direction. Distances can be dealed as "meters", although they are "pseudometers", see note below, but normalized in the range [0,1]
52  * \param maxRobotSpeed [IN] Maximum robot speed, in "pseudometers/sec". See note below.
53  * \param desiredDirection [OUT] The desired motion direction, in the range [-PI,PI]
54  * \param desiredSpeed [OUT] The desired motion speed in that direction, in "pseudometers"/sec. (See note below)
55  * \param logRecord [IN/OUT] A placeholder for a pointer to a log record with extra info about the execution. Set to NULL if not required. User <b>must free memory</b> using "delete logRecord" after using it.
56  *
57  * NOTE: With "pseudometers" we refer to the distance unit in TP-Space, thus:
58  * <br><center><code>pseudometer<sup>2</sup>= meter<sup>2</sup> + (rad ยท r)<sup>2</sup></code><br></center>
59  */
60  virtual void navigate( poses::CPoint2D &target,
61  vector_double &obstacles,
62  double maxRobotSpeed,
63  double &desiredDirection,
64  double &desiredSpeed,
65  CHolonomicLogFileRecordPtr &logRecord) = 0;
66 
67  /** Virtual destructor
68  */
70 
71  /** Initialize the parameters of the navigator.
72  */
73  virtual void initialize( const mrpt::utils::CConfigFileBase &INI_FILE ) = 0;
74 
75  };
76  }
77 }
78 
79 
80 #endif
81 



Page generated by Doxygen 1.8.3 for MRPT 0.9.6 SVN: at Fri Feb 15 22:05:02 EST 2013