Main MRPT website > C++ reference
MRPT logo
CHolonomicVFF.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 CHolonomicVFF_H
29 #define CHolonomicVFF_H
30 
33 
34 namespace mrpt
35 {
36  namespace reactivenav
37  {
39 
40  /** A class for storing extra information about the execution of
41  * CHolonomicVFF navigation.
42  * \sa CHolonomicVFF, CHolonomicLogFileRecord
43  * \ingroup mrpt_reactivenav_grp
44  */
46  {
48  public:
49 
50  /** Member data.
51  */
52 
53  };
54 
55 
56  /** A holonomic reactive navigation method, based on Virtual Force Fields (VFF).
57  * \sa CAbstractHolonomicReactiveMethod,CReactiveNavigationSystem
58  */
60  {
61  public:
62  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
63  public:
64  /** Initialize the parameters of the navigator, from some configuration file, or default values if set to NULL.
65  */
66  CHolonomicVFF(const mrpt::utils::CConfigFileBase *INI_FILE=NULL);
67 
68  /** This method performs the holonomic navigation itself.
69  * \param target [IN] The relative location (x,y) of target point.
70  * \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.
71  * \param maxRobotSpeed [IN] Maximum robot speed, in "pseudometers/sec". See note below.
72  * \param desiredDirection [OUT] The desired motion direction, in the range [-PI,PI]
73  * \param desiredSpeed [OUT] The desired motion speed in that direction, in "pseudometers"/sec. (See note below)
74  * \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.
75  *
76  * NOTE: With "pseudometers" we refer to the distance unit in TP-Space, thus:
77  * <br><center><code>pseudometer<sup>2</sup>= meter<sup>2</sup> + (rad ยท r)<sup>2</sup></code><br></center>
78  */
79  void navigate( poses::CPoint2D &target,
80  vector_double &obstacles,
81  double maxRobotSpeed,
82  double &desiredDirection,
83  double &desiredSpeed,
84  CHolonomicLogFileRecordPtr &logRecord );
85 
86  /** Initialize the parameters of the navigator.
87  */
88  void initialize( const mrpt::utils::CConfigFileBase &INI_FILE );
89 
90  };
91  }
92 }
93 
94 
95 #endif
96 
97 
98 



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