Skip to content

Commit 1f10668

Browse files
authored
Merge pull request #1 from ANYbotics/master
Merge ANYbotics/grid_map
2 parents 1f9700b + b41708e commit 1f10668

File tree

82 files changed

+4053
-298
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+4053
-298
lines changed

README.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ The source code is released under a [BSD 3-Clause license](LICENSE).
2222
**Author: Péter Fankhauser<br />
2323
Affiliation: [ANYbotics](https://www.anybotics.com/)<br />
2424
Maintainer: Péter Fankhauser, pfankhauser@anybotics.com<br />**
25-
With contributions by: Tanja Baumann, Jeff Delmerico, Remo Diethelm, Perry Franklin, Dominic Jud, Ralph Kaestner, Philipp Krüsi, Alex Millane, Daniel Stonier, Elena Stumm, Martin Wermelinger, Christos Zalidis, Edo Jelavic, Ruben Grandia
25+
With contributions by: Tanja Baumann, Jeff Delmerico, Remo Diethelm, Perry Franklin, Dominic Jud, Ralph Kaestner, Philipp Krüsi, Alex Millane, Daniel Stonier, Elena Stumm, Martin Wermelinger, Christos Zalidis, Edo Jelavic, Ruben Grandia, Simone Arreghini
2626

2727
This projected was initially developed at ETH Zurich (Autonomous Systems Lab & Robotic Systems Lab).
2828

@@ -169,7 +169,24 @@ The *grid_map_demos* package contains several demonstration nodes. Use this code
169169

170170
[![Filters demo results](grid_map_demos/doc/filters_demo_preview.gif)](grid_map_demos/doc/filters_demo.gif)
171171

172-
For more information about grid map filters, see [grid_map_filters](#grid_map_filters).
172+
For more information about grid map filters, see [grid_map_filters](#grid_map_filters).
173+
174+
* *[interpolation_demo](grid_map_demos/src/InterpolationDemo.cpp)* shows the result of different interpolation methods on the resulting surface. The start the demo, use
175+
176+
roslaunch grid_map_demos interpolation_demo.launch
177+
178+
<img src="grid_map_core/doc/interpolationSineWorld.gif" width="256" height="252">
179+
<img src="grid_map_core/doc/interpolationGaussWorld.gif" width="256" height="252">
180+
181+
The user can play with different worlds (surfaces) and different interpolation settings in the [`interpolation_demo.yaml`](grid_map_demos/config/interpolation_demo.yaml) file. The visualization displays the ground truth in green and yellow color. The interpolation result is shown in red and purple colors. Also, the demo computes maximal and average interpolation errors, as well as the average time required for a single interpolation query.
182+
183+
Grid map features four different interpolation methods (in order of increasing accuracy and increasing complexity):
184+
* **NN** - Nearest Neighbour (fastest, but least accurate).
185+
* **Linear** - Linear interpolation.
186+
* **Cubic convolution** - Piecewise cubic interpolation. Implemented using the cubic convolution algorithm.
187+
* **Cubic** - Cubic interpolation (slowest, but most accurate).
188+
189+
For more details check the literature listed in [`CubicInterpolation.hpp`](grid_map_core/include/grid_map_core/CubicInterpolation.hpp) file.
173190

174191
### Conventions & Definitions
175192

grid_map/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 2.8.3)
1+
cmake_minimum_required(VERSION 3.5.1)
22
project(grid_map)
33
find_package(catkin REQUIRED)
44
catkin_metapackage()

grid_map_core/CMakeLists.txt

Lines changed: 46 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
cmake_minimum_required(VERSION 2.8.3)
1+
cmake_minimum_required(VERSION 3.5.1)
22
project(grid_map_core)
33

44
set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
55

66
## Find catkin macros and libraries
7-
find_package(catkin REQUIRED COMPONENTS)
7+
find_package(catkin REQUIRED)
88

99
## Define Eigen addons.
1010
include(cmake/${PROJECT_NAME}-extras.cmake)
@@ -48,8 +48,9 @@ catkin_package(
4848
## Specify additional locations of header files
4949
include_directories(
5050
include
51-
${catkin_INCLUDE_DIRS}
52-
${EIGEN3_INCLUDE_DIR}
51+
SYSTEM
52+
${catkin_INCLUDE_DIRS}
53+
${EIGEN3_INCLUDE_DIR}
5354
)
5455

5556
## Declare a cpp library
@@ -59,6 +60,7 @@ add_library(${PROJECT_NAME}
5960
src/SubmapGeometry.cpp
6061
src/BufferRegion.cpp
6162
src/Polygon.cpp
63+
src/CubicInterpolation.cpp
6264
src/iterators/GridMapIterator.cpp
6365
src/iterators/SubmapIterator.cpp
6466
src/iterators/CircleIterator.cpp
@@ -103,24 +105,45 @@ install(
103105
#############
104106

105107
if(CATKIN_ENABLE_TESTING)
106-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
107-
## Add gtest based cpp test target and link libraries
108-
catkin_add_gtest(${PROJECT_NAME}-test
109-
test/test_grid_map_core.cpp
110-
test/GridMapMathTest.cpp
111-
test/GridMapTest.cpp
112-
test/GridMapIteratorTest.cpp
113-
test/LineIteratorTest.cpp
114-
test/EllipseIteratorTest.cpp
115-
test/SubmapIteratorTest.cpp
116-
test/PolygonIteratorTest.cpp
117-
test/PolygonTest.cpp
118-
test/EigenPluginsTest.cpp
119-
test/SpiralIteratorTest.cpp
120-
test/SlidingWindowIteratorTest.cpp
108+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
109+
110+
## Add gtest based cpp test target and link libraries
111+
catkin_add_gtest(${PROJECT_NAME}-test
112+
test/test_grid_map_core.cpp
113+
test/test_helpers.cpp
114+
test/CubicConvolutionInterpolationTest.cpp
115+
test/CubicInterpolationTest.cpp
116+
test/GridMapMathTest.cpp
117+
test/GridMapTest.cpp
118+
test/GridMapIteratorTest.cpp
119+
test/LineIteratorTest.cpp
120+
test/EllipseIteratorTest.cpp
121+
test/SubmapIteratorTest.cpp
122+
test/PolygonIteratorTest.cpp
123+
test/PolygonTest.cpp
124+
test/EigenPluginsTest.cpp
125+
test/SpiralIteratorTest.cpp
126+
test/SlidingWindowIteratorTest.cpp
127+
)
128+
target_include_directories(${PROJECT_NAME}-test PRIVATE
129+
include
130+
)
131+
target_include_directories(${PROJECT_NAME}-test SYSTEM PUBLIC
132+
${catkin_INCLUDE_DIRS}
133+
${EIGEN3_INCLUDE_DIR}
134+
)
135+
target_link_libraries(${PROJECT_NAME}-test
136+
${PROJECT_NAME}
121137
)
122-
endif()
123138

124-
if(TARGET ${PROJECT_NAME}-test)
125-
target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
126-
endif()
139+
###################
140+
## Code_coverage ##
141+
###################
142+
find_package(cmake_code_coverage QUIET)
143+
if(cmake_code_coverage_FOUND)
144+
add_gtest_coverage(
145+
TEST_BUILD_TARGETS
146+
${PROJECT_NAME}-test
147+
)
148+
endif()
149+
endif()
355 KB
Loading
508 KB
Loading

0 commit comments

Comments
 (0)