-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathtjtf.html
170 lines (148 loc) · 6.93 KB
/
tjtf.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>OpenSLAM.org</title>
<meta name="description" content="OpenSLAM.org">
<meta name="keywords" content="OpenSLAM SLAM robot mapping localization research">
<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
<meta name="robots" content="index">
<meta http-equiv="expires" content="Sat, 01 Dec 2001 00:00:00 GMT">
<link rel="stylesheet" type="text/css" href="style2.css">
</head>
<body bgcolor="#FFFFFF">
<br>
<br>
<center>
<img src="openslam-logo.png" border=0>
</center>
<br>
<center><h2>Thin Junction Tree Filters for SLAM</h2></center><center><table width=700> <tr><tr><td colspan=2>
This software package implements a filtering technique that
maintains a tractable approximation of the belief state as a
thin junction tree. The junction tree grows under filter
updates and is periodically ``thinned'' via efficient maximum
likelihood projections so inference remains tractable. When
applied to the SLAM problem, these thin junction tree filters
have a linear-space belief state and a linear-time filtering
operation. Further approximation yields a filtering operation
that is often constant-time.
<br><a href="http://ai.stanford.edu/~paskin/slam/" target="_blank">Further information</a>
</td></tr>
</td></tr>
<tr><td colspan=2>
<br><b>Authors</b><br>
<a href="http://ai.stanford.edu/~paskin/" target="_blank">Mark A. Paskin</a>;
</td></tr>
<tr><td colspan=2>
<br><b><a target="_blank" href="https://github.com/OpenSLAM-org/openslam_tjtf">Get the Source Code!</a><br>
</td></tr>
<tr><td colspan=2>
<br> <b>Long Description</b><br>
Simultaneous Localization and Mapping (SLAM) is a fundamental
problem in mobile robotics: while a robot navigates in an
unknown environment, it must incrementally build a map of its
surroundings and, at the same time, localize itself within
that map. One popular solution is to treat SLAM as an
estimation problem and apply the Kalman filter; this approach
is elegant, but it does not scale well: the size of the belief
state and the time complexity of the filter update both grow
quadratically in the number of landmarks in the map. This
paper presents a filtering technique that maintains a
tractable approximation of the belief state as a thin junction
tree. The junction tree grows under filter updates and is
periodically ``thinned'' via efficient maximum likelihood
projections so inference remains tractable. When applied to
the SLAM problem, these thin junction tree filters have a
linear-space belief state and a linear-time filtering
operation. Further approximation yields a filtering operation
that is often constant-time. Experiments on a suite of SLAM
problems validate the approach.
<br><br></td></tr>
<tr><td colspan=2>
<b>Example Images</b><br>
</td></tr>
<tr>
<td colspan=2><a href="http://ai.stanford.edu/~paskin/slam/graphical-model-map.gif"><img src="http://ai.stanford.edu/~paskin/slam/graphical-model-map.gif" border=0><a/><br>TJTF in Action</td>
</tr>
<tr><td colspan=2>
</td></tr>
<tr><td colspan=2>
</td></tr>
<tr><td colspan=2>
<br> <b>Type of Map</b><br> feature maps
</td></tr>
<tr><td colspan=2>
<br> <b> Hardware/Software Requirements</b><br>
Java
<br>
</td></tr>
<tr><td colspan=2>
<br><b>Documentation</b>
<br><a href="http://ai.stanford.edu/~paskin/slam/javadoc" target="_blank">JavaDoc Documentation of the Code</a>
</td></tr>
<tr><td colspan=2>
<br> <b>Papers Describing the Approach</b>
<br> Mark A. Paskin:
Thin Junction Tree Filters for Simultaneous Localization and Mapping,
In the Proceedings of the International Joint Conference on Artificial Intelligence (IJCAI), 2003 (<a href="http://paskin.org/pubs/Paskin2003a.pdf" target="_blank">link</a>)<br>
<br> :
Thin Junction Tree Filters for Simultaneous Localization and Mapping,
Technical Report, University of California, Berkeley, 2002 (<a href="http://paskin.org/pubs/csd-02-1198.pdf" target="_blank">link</a>)<br>
</td></tr>
<tr><td colspan=2>
<br><b>License Information</b><br>
This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.<br>
The authors allow the users of OpenSLAM.org to use and modify the source code for their own research. Any commercial application, redistribution, etc has to be arranged between users and authors individually and is not covered by OpenSLAM.org.<br><br>
Mark A. Paskin is distributing the code he used to run his
experiments (under the GNU public license), but be warned:
this code is research-ware, pure and simple.
</td></tr>
<tr><td colspan=2>
<br>
<b>Further Information</b><br>
While I was writing it, I made every attempt to document the
code and to design it in a modular and extensible
fashion. However, I have not had time to make the code fully
presentable; for example, there is no manual. Thus, this code
will probably be useful only to people that are willing to
spend a decent amount of effort. I do think that the design of
the library is easily understood from the documentation, and I
think it could be very helpful to others that would like to
code up SLAM algorithms. I spent a lot of time on object
design.<br><br>
The code comes in two parts:<br><br>
1. A Java library. This library contains an implementation of
the thin junction tree filter (specialized for SLAM), as well
as the Kalman and Information filters. To see what's included,
you can browse the documentation. <br><br>
2. A Matlab interface to the Java library. This interface
includes code to create SLAM simulations, run filters, and to
visualize and analyze the results. To get a brief idea of
what's included, you can check out the README.txt file.<br><br>
I found this mixture of Java and Matlab to be very nice for
prototyping, because you get the speed of Java, and the
scripting and visualization of Matlab. To learn more about
this, see the Matlab documentation.<br><br>
This code is not supported, although I am happy to answer
questions via e-mail. Furthermore, I do not plan to extend
this code; I am currently working on a new implementation of
the algorithms in Common Lisp, which has an object model that
is far more flexible than that of Java.<br><br>
Acknowledgements. This code uses (and includes) the JAMA Java
matrix package. Some of the routines that count floating-point
operations were adapted from routines in T. Minka's Lightspeed
Matlab library. The Matlab library includes Niclas Borlin's
implementation of the Hungarian algorithm, which is used for
data association.
</td></tr>
</td></tr>
<tr><td colspan=2>
<br><br>
*** OpenSLAM.org is not responsible for the content of this webpage *** <br>
*** Copyright and V.i.S.d.P.:
<a href="http://ai.stanford.edu/~paskin/" target="_blank">Mark A. Paskin</a>;
*** <br>
</td></tr>
</table></center>
</body>
</html>