-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathCHANGELOG.txt
255 lines (224 loc) · 10.8 KB
/
CHANGELOG.txt
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
v1.8.1: 2017-01-13
==================
- Disambiguated isnan (C++11)
- Fixed #123: Set root=NULL in clear()
- Fixed #131: Portable binary read/write of Pointcloud and ScanGraph (uint32_t)
v1.8.0: 2016-04-20
==================
- Fixed #98: The tree structure in memory is now maintained in OcTreeBaseImpl to
enable safely deriving custom node classes. The following functions were
moved from OcTreeDataNode into OcTreeBaseImpl:
createChild(...) -> OcTreeBaseImpl::createNodeChild(...)
getChild(...) -> OcTreeBaseImpl::getNodeChild(...)
expandNode() -> OcTreeBaseImpl::expandNode(...)
pruneNode() -> OcTreeBaseImpl::pruneNode(...)
hasChildren() -> OcTreeBaseImpl::nodeHasChildren(...)
childExists(...) -> OcTreeBaseImpl::nodeChildExist(...)
collapsible() -> OcTreeBaseImpl::isNodeCollapsible(...)
If you use custom derived node classes, you need to adjust your code to the
new API (have a look at ColorOcTree.h as an example). In particular, you
should no longer use the above node member functions in your nodes.
- Extended unit tests for the new memory management
- Added valgrind memcheck suppression file with known ("wanted") leaks due to
StaticMemberInitializer.
- Replaced `unsigned short int` for key values with octomap::key_type
(=uint16_t) and unsigned char with uint8_t in API.
- Cleaned up OcTreeKey and KeyRay API (used internally)
- Reduced unneeded memory for StaticMemberInitializer
- Cleaned up const refs to primitive types in ColorOcTree interface
- Removed deprecated insertScan functions (replaced by insertPointCloud)
- Removed no longer used ROS logging macros and unmaintained OcTreeLUT,
OcTreeBaseSE classes
- octovis: Internal version of libQGLViewer updated to 2.6.3
v1.7.2: 2016-03-26
==================
- BBX iterators fixed for empty trees (point3d version)
- Removed qglviewer.h from some public octovis headers
- Fixed QGLViewer library names for Ubuntu wily and xenial
- Fixed install path in CMakeConfigs
v1.7.1: 2016-01-31
==================
- Fixed #82: Enable uninstall target for complete project
- Fixed #47: Exported CMake library paths for Windows no longer
have the Release/Debug prefix and correctly contain the .lib file
- Fixed #51: IO factory class registry with MSVC. Calling a dummy
function from an OcTree class c'tor enables reading general .ot files
when compiling with MSVC
- Fixed #100: Explicit casts to avoid warnings with MSVC
v1.7.0: 2015-11-27
==================
- BBX iterators fixed for empty trees (thx to F. Boniardi)
- graph2tree tool option for nodes in global frame
- New octree2pointcloud PCL conversion tool (thx to F. Ferri)
- Improved change detection / diff calculation (thx to C. Brew)
- getUnknownLeafCenters now allows queries at a specified depth (thx to
A. Ecins)
- Fixed hashing overflow with clang (thx to L. Riano)
v1.6.9: 2016-01-13
==================
- Maintenance release for ROS:
Added function to determine state of change detection
v1.6.7: 2014-08-31
==================
- FSF address in octovis license header for OctoMap package in Fedora
- Separate build options for octovis and dynamicEDT3D. Thanks to C. Reist!
v1.6.6: 2014-05-26
==================
- Support for SOVERSION in the libraries for better packaging
- Warning for unknown space in castRay() removed (needs to be inferred by
calling code depending on return value and endpoint voxel)
- Marching cubes for ray surface intersection extended
- Fixed QGLViewer include paths
- ScanGraph read error no longer exits the process
v1.6.5: 2014-03-14
==================
- Fix octovis includes for QGLViewer > 2.5
v1.6.4: 2014-01-20
==================
- Fix for raycasting termination condition in computeRayKeys() (affects
insertScan / insertRay). Thanks to C. Sprunk!
v1.6.3: 2014-01-13
==================
- New function setNodeValue(...) to directly set a node's value (#31)
- New approximate point cloud insertion as fast variant (#39, see flag for
insertPointCloud(...) / new function computeDiscreteUpdate(...)
v1.6.2: 2013-11-26
==================
- Improved OSX 10.9 compatibility (thx to B. Jensen)
- Improved VC++ compatibility (thx to tmdiv)
- New fct. getRayIntersection to get real intersection of raycasting on
voxel (thanks to F-M. de Rainville)
- Fix #54: Quote paths in CMake configs to avoid problems with spaces
- Fix #53: Auto-pruning after updateNode
- Fix #44: CMAKE_SHARED_LIBRARY_SUFFIX in CMakeConfig (Win / Mac compatibility)
- octovis now includes QGLViewer 2.4 (Qt5 support)
- octovis now looks for the octomap version of the same number
v1.6.1: 2013-06-19
==================
- New function swapContent to exchange the contents of two octrees (issue #32)
- New normal estimation based on marching cubes (thanks to F-M. de Rainville)
- Fixed octovis edit box affecting small selection ranges
- Fixed compilation with gcc 4.8 and OSX (issues #23 #28)
v1.6.0: 2013-04-05
==================
- Speedup: Pruning is now done only on affected nodes on each call to
updateNode(). You no longer have to call prune(), except when you manually
change nodes or use lazy_update.
- insertScan() renamed to insertPointCloud(), removed parameter "pruning"
- insertScanNaive() renamed to insertScanRays(), removed parameter "pruning"
- insertScan() / insertPointCloud() / insertScanRays() can now be parallelized
with OpenMP, currently disabled by default. Enable with CMake flag OCTOMAP_OMP
- Empty octrees no longer contain a root node (#11)
- Library names in CMake configs are now absolute paths, you should no longer
use OCTOMAP_LIBRARY_DIRS with FIND_PACKAGE (#14)
- graph2tree: pointcloud is transformed in batch before insertion, small changes
in command line options
- octovis: more map editing options, fixed setting nodes to free/occupied (thx
to C. Dornhege)
- Sample data is now in octomap/share
v1.5.7: 2014-01-20
==================
- Fix for raycasting termination condition in computeRayKeys() (affects
insertScan / insertRay). Thanks to C. Sprunk!
v1.5.6: 2013-06-10
==================
- Fixed compilation with OSX 10.8 (issue #23)
v1.5.5: 2013-05-05
==================
- Fixed compilation of external code against OctoMap with gcc4.8 (issue #28)
v1.5.4: 2013-02-27
==================
- Removed binvox binaries from sources for improved packaging compatibility
(ticket #18). Download from www.cs.princeton.edu/~min/binvox/ instead.
v1.5.3: 2012-12-18
==================
- CMakeConfig now installs into share/octomap instead of lib/cmake/octomap for
better compatibility with ROS
- ROS package.xml removed, will be added in the release process
- added sensor model parameters to graph2tree
- new octree evaluation tool: eval_octree_accuracy and compare_octrees
v1.5.2: 2012-11-02
==================
- Fixed compilation with gcc 4.7 (Ubuntu Quantal)
v1.5.1: 2012-10-16
===================
- Fixed raycasting corner cases, expanded unit tests
- added double precision 3D coordinate conversions (ticket #13)
- Fixed compatibility with MSVC
v1.5.0: 2012-08-28
===================
- dynamicEDT3D, a library for dynamically updatable distance maps by C. Sprunk,
B. Lau, and W. Burgard is now available as part of the OctoMap distribution
- added AbstractOccupancyOcTree interface class, moved binary file IO
- delete functionality added to octrees and nodes
- octovis can now delete nodes inside or outside of a selection box
- operator== and copy constructor for octree nodes and octrees
- key / coordinate conversion functions are now clearly named and documented.
genPos/genKey deprecated in favor of coordToKey, keyToCoord
- added limited-depth search
- deep-copy constructor for octrees and nodes, assignment op. is private
- improved compatibility with MSVC (thx to J. Aguado)
- internal QGLViewer version increased to 2.3.17
- cleanup: functions removed /deprecated in favor or iterator-base node traversal
- cleanup: private members renamed (tree root / node children)
v1.4.3: 2012-10-07
==================
- Fixed raycasting corner cases, expanded unit tests
- iterator_base derives public for boost::filter
v1.4.2: 2012-04-24
===================
- extended graph2tree with more verbose logging / statistics
- fixed conversion from color .ot to .bt in convert_octree
- minor fixes in octovis with color rendering
- fixed octovis compilation with Qt 4.8 (Ubuntu 12.04)
- experimental editing functionality in octovis to clear and fill volumes
v1.4.1: 2012-03-12
===================
- added stack.yaml for release in ROS with catkin
v1.4: 2012-02-22
===================
- New generalized file IO for all kinds of OcTrees to .ot files. The updated
file format requires a conversion of your old bt and ot files with the
"convert_octree" tool. bt files are read and written as before.
To write the general .ot file format use tree.write(...) and read it with
AbstractOcTree::read(...) as factory (dynamic_cast to the correct class
afterwards).
- New ColorOcTree class to store color in addition to occupancy
(e.g. from Kinect), with visualization in octovis
- New map collections of octrees (hierarchical octree maps, experimental)
- Support for Linux, Mac OSX, and Windows
- enhancements and fixes in changeDetection
- minor fixes and unit tests added
v1.2: 2011-08-17
===================
- divided code into a library (octomap) and visualization part (octvis) to
remove dependencies on Qt / OpenGL from library. Both can be built
independently or as a complete package.
- iterators for fast and flexible tree access (check doxygen of OcTreeBase::
iterator) are the preferred way to traverse tree nodes now
- improved speed of map update / scan insertion. A further speedup is possible
when using the "lazy evaluation" flag for batch insertion
- unit tests based on CTest ("make test")
- CMake improvements: new targets "dist" (build package) and "uninstall",
dynamic and static libs are built. CMake package config to ease integration
into other CMake-based systems (install octomap globally, or set the
environment variable octomap_DIR to your OctoMap location
- occupancy and sensor parameters are now a property of the tree and not the
nodes. Use e.g. tree->isNodeOccupied(node) instead of node->isOccupied()
- cleanup of OcTree and OccupancyOcTree: the latter now holds most of the
implementation to ease deriving own tree and node types.
See OcTreeStamped for an example.
- debug output is now muted when not compiling as "Debug", ROS logging levels
are used when compiled in ROS
- experimental change detection in occupancy octrees
- bugfixes and general compatibility improvements
v1.0: 2011-03-15
===================
- cleanup of insertScan methods
- key-based raycasting with pre-allocated KeyRay
- speedup and cleanup of math, inlining
v0.8: 2010-11-16
===================
- improved speed of map update / scan insertion
- improved speed of map queries (isOccupied / castRay)
- key-based computations to improve numerical stability and efficiency