Skip to content

Commit

Permalink
Added grid_map_core from grid_map@1.6.0
Browse files Browse the repository at this point in the history
  • Loading branch information
esteve committed Mar 5, 2019
1 parent 6a5c720 commit 7162edd
Show file tree
Hide file tree
Showing 69 changed files with 7,779 additions and 0 deletions.
105 changes: 105 additions & 0 deletions ros/src/vendor/grid_map/grid_map_core/CHANGELOG.rst
@@ -0,0 +1,105 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package grid_map_core
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1.6.0 (2017-11-24)
------------------
* Added new sliding window iterator.
* Added new `thickenLine()`, triangulation, and bounding box method to polygon.
* Added unit tests for LineIterator with using move function.
* Fixed cpp-check warnings and errors.
* Fixed line iterator for moved maps (`#119 <https://github.com/ethz-asl/grid_map/issues/119>`_).
* Fixed error in SpiralIterator when center is outside the map (`#114 <https://github.com/ethz-asl/grid_map/issues/114>`_).
* Contributors: Péter Fankhauser, 2scholz, Remo Diethelm, Takahiro Miki, Tanja Baumann

1.5.2 (2017-07-25)
------------------

1.5.1 (2017-07-25)
------------------

1.5.0 (2017-07-18)
------------------
* Added new function for polygon triangulation.
* Added Eigen macro for bit-alignment (`#88 <https://github.com/ethz-asl/grid_map/issues/88>`_).
* Added default copy constructor and assign operator methods after the rule of five.
* Fixing return value in `getQuadrant` member function.
* Fixing buffer handling bug for circular and ellipse iterators.
* Capture case when both circles are the same in `convexHullOfTwoCircles`.
* Fixing build error on ROS Kinetic.
* Contributors: Peter Fankhauser, Sascha, Thomas Emter, Martin Wermelinger

1.4.2 (2017-01-24)
------------------
* Added linear interpolation method for data access.
* Increased efficiency for linear interpolation method.
* Addressing C++ compiler warnings.
* Contributors: Dominic Jud, Peter Fankhauser, Horatiu George Todoran

1.4.1 (2016-10-23)
------------------
* Improved line iterator with start and end positions.
* Added method to retrieve submap size for iterators.
* Improved transformation of images to color grid map layers.
* Fixing issues with order of include with Eigen (`#67 <https://github.com/ethz-asl/grid_map/issues/67>`_).
* Contributors: Peter Fankhauser, Dominic Jud

1.4.0 (2016-08-22)
------------------
* Added convenience function to convert a grid map to form with circular buffer at (0,0).
* Contributors: Peter Fankhauser

1.3.3 (2016-05-10)
------------------
* Release for ROS Kinetic.
* Contributors: Peter Fankhauser

1.3.2 (2016-05-10)
------------------

1.3.1 (2016-05-10)
------------------
* Cleanup up Eigen types as preparation for ROS Kinetic release.
* Contributors: Peter Fankhauser

1.3.0 (2016-04-26)
------------------
* Made the `isInside` checks `const`.
* Fixes polygon iterator bug when using moved maps.
* Added unit test for polygon iterator on a moved map.
* Added comment about size of the returning submap.
* Reduced test build warning.
* Contributors: Peter Fankhauser, Martin Wermelinger, Marcus Liebhardt

1.2.0 (2016-03-03)
------------------
* Improved efficiency for the Grid Map iterator (speed increase of 10x for large maps) (`#45 <https://github.com/ethz-asl/grid_map/issues/45>`_).
* New iterator_benchmark demo to exemplify the usage of the iterators and their computational performance (`#45 <https://github.com/ethz-asl/grid_map/issues/45>`_).
* Added new method to set the position of a grid map (`#42 <https://github.com/ethz-asl/grid_map/pull/42>`_).
* Added new move_demo to illustrate the difference between the `move` and `setPosition` method.
* Fixed behavior of checkIfPositionWithinMap() in edge cases (`#41 <https://github.com/ethz-asl/grid_map/issues/41>`_).
* Updated documentation for spiral and ellipse iterator, and iterator performance.
* const correctness for grid's getSubmap.
* Cleanup of arguments and return types.
* Contributors: Péter Fankhauser, Christos Zalidis, Daniel Stonier

1.1.3 (2016-01-11)
------------------

1.1.2 (2016-01-11)
------------------
* Should fix errors on build server regarding Eigen3 and visualization_msgs dependencies.

1.1.1 (2016-01-11)
------------------
* Changes to CMakeLists.txt to enable compatibility with Ubuntu Saucy.

1.1.0 (2016-01-08)
-------------------
* added installation instructions in CMakeLists
* new ellipse iterator tool
* general improvements and bugfixes

1.0.0 (2015-11-20)
-------------------
* release for Springer ROS Book Chapter
126 changes: 126 additions & 0 deletions ros/src/vendor/grid_map/grid_map_core/CMakeLists.txt
@@ -0,0 +1,126 @@
cmake_minimum_required(VERSION 2.8.3)
project(grid_map_core)

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

## Find catkin macros and libraries
find_package(catkin REQUIRED COMPONENTS)

## Define Eigen addons.
include(cmake/${PROJECT_NAME}-extras.cmake)

## System dependencies are found with CMake's conventions
#find_package(Eigen3 REQUIRED)
# Solution to find Eigen3 with Saucy.
find_package(Eigen3 QUIET)
if(NOT EIGEN3_FOUND)
find_package(PkgConfig REQUIRED)
pkg_check_modules(EIGEN3 REQUIRED eigen3)
set(EIGEN3_INCLUDE_DIR ${EIGEN3_INCLUDE_DIRS})
endif()

###################################
## catkin specific configuration ##
###################################
## The catkin_package macro generates cmake config files for your package
## Declare things to be passed to dependent projects
## INCLUDE_DIRS: uncomment this if you package contains header files
## LIBRARIES: libraries you create in this project that dependent projects also need
## CATKIN_DEPENDS: catkin_packages dependent projects also need
## DEPENDS: system dependencies of this project that dependent projects also need
catkin_package(
INCLUDE_DIRS
include
${EIGEN3_INCLUDE_DIR}
LIBRARIES
${PROJECT_NAME}
CATKIN_DEPENDS
DEPENDS
#Eigen3
CFG_EXTRAS
${PROJECT_NAME}-extras.cmake
)

###########
## Build ##
###########

## Specify additional locations of header files
include_directories(
include
${catkin_INCLUDE_DIRS}
${EIGEN3_INCLUDE_DIR}
)

## Declare a cpp library
add_library(${PROJECT_NAME}
src/GridMap.cpp
src/GridMapMath.cpp
src/SubmapGeometry.cpp
src/BufferRegion.cpp
src/Polygon.cpp
src/iterators/GridMapIterator.cpp
src/iterators/SubmapIterator.cpp
src/iterators/CircleIterator.cpp
src/iterators/EllipseIterator.cpp
src/iterators/SpiralIterator.cpp
src/iterators/PolygonIterator.cpp
src/iterators/LineIterator.cpp
src/iterators/SlidingWindowIterator.cpp
)

target_link_libraries(${PROJECT_NAME}
${catkin_LIBRARIES}
)

#############
## Install ##
#############

# Mark executables and/or libraries for installation
install(
TARGETS ${PROJECT_NAME}
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

# Mark cpp header files for installation
install(
DIRECTORY include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
FILES_MATCHING PATTERN "*.hpp"
)

# Mark other files for installation
install(
DIRECTORY doc
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)

#############
## Testing ##
#############

if(CATKIN_ENABLE_TESTING)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
## Add gtest based cpp test target and link libraries
catkin_add_gtest(${PROJECT_NAME}-test
test/test_grid_map_core.cpp
test/GridMapMathTest.cpp
test/GridMapTest.cpp
test/GridMapIteratorTest.cpp
test/LineIteratorTest.cpp
test/EllipseIteratorTest.cpp
test/SubmapIteratorTest.cpp
test/PolygonIteratorTest.cpp
test/PolygonTest.cpp
test/EigenPluginsTest.cpp
test/SpiralIteratorTest.cpp
test/SlidingWindowIteratorTest.cpp
)
endif()

if(TARGET ${PROJECT_NAME}-test)
target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
endif()
@@ -0,0 +1,17 @@
set(EIGEN_FUNCTORS_PLUGIN_PATH "grid_map_core/eigen_plugins/FunctorsPlugin.hpp")
if (EIGEN_FUNCTORS_PLUGIN)
if (NOT EIGEN_FUNCTORS_PLUGIN STREQUAL EIGEN_FUNCTORS_PLUGIN_PATH)
MESSAGE(FATAL_ERROR "EIGEN_FUNCTORS_PLUGIN already defined!")
endif ()
else (EIGEN_FUNCTORS_PLUGIN)
add_definitions(-DEIGEN_FUNCTORS_PLUGIN=\"${EIGEN_FUNCTORS_PLUGIN_PATH}\")
endif (EIGEN_FUNCTORS_PLUGIN)

set(EIGEN_DENSEBASE_PLUGIN_PATH "grid_map_core/eigen_plugins/DenseBasePlugin.hpp")
if (EIGEN_DENSEBASE_PLUGIN)
if (NOT EIGEN_DENSEBASE_PLUGIN STREQUAL EIGEN_DENSEBASE_PLUGIN_PATH)
MESSAGE(FATAL_ERROR "EIGEN_DENSEBASE_PLUGIN already defined!")
endif ()
else (EIGEN_DENSEBASE_PLUGIN)
add_definitions(-DEIGEN_DENSEBASE_PLUGIN=\"${EIGEN_DENSEBASE_PLUGIN_PATH}\")
endif (EIGEN_DENSEBASE_PLUGIN)
Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@@ -0,0 +1,63 @@
/*
* BufferRegion.hpp
*
* Created on: Aug 19, 2015
* Author: Péter Fankhauser
* Institute: ETH Zurich, Autonomous Systems Lab
*/

#pragma once

#include "grid_map_core/TypeDefs.hpp"

namespace grid_map {

/*!
* This class holds information about a rectangular region
* of cells of the circular buffer.
*/
class BufferRegion
{
public:

/*!
* The definition of the buffer region positions.
*/
enum class Quadrant
{
Undefined,
TopLeft,
TopRight,
BottomLeft,
BottomRight
};

constexpr static unsigned int nQuadrants = 4;

BufferRegion();
BufferRegion(const Index& startIndex, const Size& size, const BufferRegion::Quadrant& quadrant);
virtual ~BufferRegion();

const Index& getStartIndex() const;
void setStartIndex(const Index& startIndex);
const Size& getSize() const;
void setSize(const Size& size);
BufferRegion::Quadrant getQuadrant() const;
void setQuadrant(BufferRegion::Quadrant type);

private:

//! Start index (typically top-left) of the buffer region.
Index staretIndex_;

//! Size of the buffer region.
Size size_;

//! Quadrant type of the buffer region.
Quadrant quadrant_;

public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
};

} /* namespace grid_map */

0 comments on commit 7162edd

Please sign in to comment.