00001 /* +---------------------------------------------------------------------------+ 00002 | The Mobile Robot Programming Toolkit (MRPT) C++ library | 00003 | | 00004 | http://mrpt.sourceforge.net/ | 00005 | | 00006 | Copyright (C) 2005-2010 University of Malaga | 00007 | | 00008 | This software was written by the Machine Perception and Intelligent | 00009 | Robotics Lab, University of Malaga (Spain). | 00010 | Contact: Jose-Luis Blanco <jlblanco@ctima.uma.es> | 00011 | | 00012 | This file is part of the MRPT project. | 00013 | | 00014 | MRPT is free software: you can redistribute it and/or modify | 00015 | it under the terms of the GNU General Public License as published by | 00016 | the Free Software Foundation, either version 3 of the License, or | 00017 | (at your option) any later version. | 00018 | | 00019 | MRPT is distributed in the hope that it will be useful, | 00020 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 00021 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 00022 | GNU General Public License for more details. | 00023 | | 00024 | You should have received a copy of the GNU General Public License | 00025 | along with MRPT. If not, see <http://www.gnu.org/licenses/>. | 00026 | | 00027 +---------------------------------------------------------------------------+ */ 00028 #ifndef CONSTRAINED_POSE_NETWORK_H 00029 #define CONSTRAINED_POSE_NETWORK_H 00030 00031 #include <mrpt/poses/CPosePDFGaussian.h> 00032 #include <mrpt/poses/CPose3DPDFGaussian.h> 00033 #include <mrpt/math/graphs.h> 00034 00035 namespace mrpt 00036 { 00037 namespace poses 00038 { 00039 /** A network of links constraining the relative pose of pairs of nodes, indentified by their numeric IDs (of type size_t). 00040 * A link between nodes "i" and "j", that is, the pose \f$ p_{ij} \f$ or relative position of "j" with respect to "i", 00041 * is maintained as a multivariate Gaussian distribution. 00042 * 00043 * Valid values for the argument CPOSE are CPosePDFGaussian and CPose3DPDFGaussian, which correspond to the 00044 * typedefs CNetworkOfPoses2D and CNetworkOfPoses3D. 00045 * 00046 * Access to all the links can be done through normal std::map methods, plus the new method "insertLink" 00047 * 00048 * \sa CPosePDFGaussian,CPose3DPDFGaussian,CPose3DQuatPDFGaussian, mrpt::slam::optimizePoseGraph_levmarq 00049 */ 00050 template<class CPOSE> 00051 class CNetworkOfPoses : public mrpt::math::CDirectedGraph< CPOSE > 00052 { 00053 public: 00054 typedef CPOSE type_poses; //!< The type of PDF poses on the network links 00055 typedef std::map<size_t,CPOSE> type_global_poses; //!< A map of pose IDs to their global coordinates - can be used as second parameter of optimizePoseGraph_levmarq 00056 }; 00057 00058 typedef CNetworkOfPoses<CPosePDFGaussian> CNetworkOfPoses2D; //!< The specialization of CNetworkOfPoses for poses of type CPosePDFGaussian 00059 typedef CNetworkOfPoses<CPose3DPDFGaussian> CNetworkOfPoses3D; //!< The specialization of CNetworkOfPoses for poses of type CPose3DPDFGaussian 00060 00061 } // End of namespace 00062 } // End of namespace 00063 00064 #endif
| Page generated by Doxygen 1.6.1 for MRPT 0.9.0 SVN: at Mon Jun 7 06:47:58 UTC 2010 |
