root / rgbdslam / mainpage.dox @ master
History | View | Annotate | Download (1.93 KB)
1 | 9240aaa3 | Alex | /** |
---|---|---|---|
2 | \mainpage |
||
3 | \htmlinclude manifest.html |
||
4 | |||
5 | \b RGBD-SLAM Implements a SLAM-Frontend based on structure from |
||
6 | motion using visual features to identify keypoints in the RGBD |
||
7 | image of a kinect. It makes use of the HOG-MAN SLAM backend to |
||
8 | compute a globally consistent trajectory from the individual |
||
9 | transformations provided by the frontend. |
||
10 | |||
11 | <!-- |
||
12 | Provide an overview of your package. |
||
13 | --> |
||
14 | |||
15 | |||
16 | \section codeapi Code API |
||
17 | |||
18 | The main classes are the following: |
||
19 | <ul> |
||
20 | <li>Node - Holds the data for a graph node, e.g., the extracted features and their position in the image plane and the local 3D coordinate systems. |
||
21 | It provides functionality to find the transformation to another node and for publishing the associated pointcloud.</li> |
||
22 | <li>GraphManager - Decides for each Node, which edges are included in the graph. Stores all Nodes with valid edges and optimizes the camera pose graph globally with HOG-MAN as SLAM backend. |
||
23 | Provides functionality to send (ROS-Msgs) or save (to PCD File) the globally consistent whole model.</li> |
||
24 | </ul> |
||
25 | The following classes are mainly for communication with ROS and the user: |
||
26 | <ul> |
||
27 | <li>OpenNIListener - Subscribes to the openni topics, constructs a node for each image-pointcloud pair and hands it to the graph manager. Online visualization results are sent out.</li> |
||
28 | <li>UserInterface - Constructs a QT GUI for easy control of the program</li> |
||
29 | <li>QtROS - Sets up a thread for ROS event processing, to seperate SLAM-computations from the GUI</li> |
||
30 | <li>GLViewer - OpenGL based display of the 3d model</li> |
||
31 | </ul> |
||
32 | |||
33 | <!-- |
||
34 | Provide links to specific auto-generated API documentation within your |
||
35 | package that is of particular interest to a reader. Doxygen will |
||
36 | document pretty much every part of your code, so do your best here to |
||
37 | point the reader to the actual API. |
||
38 | |||
39 | If your codebase is fairly large or has different sets of APIs, you |
||
40 | should use the doxygen 'group' tag to keep these APIs together. For |
||
41 | example, the roscpp documentation has 'libros' group. |
||
42 | --> |
||
43 | |||
44 | |||
45 | */ |