Public Member Functions | Protected Attributes
nav_grid::NavGrid< T > Class Template Reference

#include <nav_grid.h>

Inheritance diagram for nav_grid::NavGrid< T >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

std::string getFrameId () const
unsigned int getHeight () const
NavGridInfo getInfo () const
double getOriginX () const
double getOriginY () const
double getResolution () const
virtual T getValue (const unsigned int x, const unsigned int y) const =0
 get the value of the grid at (x,y)
unsigned int getWidth () const
 NavGrid (const T default_value=T{})
virtual void reset ()=0
 Reset the contents of the grid.
void setDefaultValue (const T new_value)
 Set the default value.
virtual void setInfo (const NavGridInfo &new_info)=0
 Change the info while attempting to keep the values associated with the grid coordinates.
virtual void setValue (const unsigned int x, const unsigned int y, const T &value)=0
 set the value of the grid at (x,y)
virtual void updateInfo (const NavGridInfo &new_info)
 Change the info while attempting to keep the values associated with the world coordinates.
Convenience Aliases
getValue (const Index &index)
operator() (const unsigned int x, const unsigned int y) const
operator() (const Index &index) const
void setValue (const Index &index, const T &value)

Protected Attributes

default_value_
NavGridInfo info_

Detailed Description

template<typename T>
class nav_grid::NavGrid< T >

This class is a spiritual successor to the costmap_2d::Costmap2D class, with the key differences being that the datatype and data storage methods are not specified, and the frame_id is specified.

The templatized nature of the class allows you to store whatever you like at each grid location, including unsigned chars if emulating Costmap2D or floating point numbers if emulating the grid_map package, or whatever else.

The VectorNavGrid class in this package implements this class with a straight-forward single-dimensional vector representing the two dimensional grid. Other classes could implement the data storage differently.

Getting data from the grid can be done either through the getValue methods or the parenthetical operators (which call getValue internally). Implementing classes must implement getValue. x = grid(0, 0) + grid.getValue(0, 1);

Writing data to the grid must be done through the setValue method (which implementing classes must implement) grid.setValue(0, 0, x);

You can also use nav_grid::Index objects nav_grid::Index index(0, 0); x = grid(index) + grid.getValue(index); index.y = 3; grid.setCost(index, x); The Index methods also internally call setValue/getValue

The geometry of the grid is specified by the NavGridInfo. Borrowing an idea from the grid_map package, two separate methods are defined for changing the info. setInfo will change the info without changing the grid values. updateInfo will change the info while trying to preserve the contents of the grid.

The final component is a collection of methods inspired by Costmap2D for converting coordinates of different types.

Definition at line 76 of file nav_grid.h.


Constructor & Destructor Documentation

template<typename T >
nav_grid::NavGrid< T >::NavGrid ( ) [inline, explicit]

Definition at line 79 of file nav_grid.h.


Member Function Documentation

template<typename T >
std::string nav_grid::NavGrid< T >::getFrameId ( ) const [inline]

Definition at line 146 of file nav_grid.h.

template<typename T >
unsigned int nav_grid::NavGrid< T >::getHeight ( ) const [inline]

Definition at line 144 of file nav_grid.h.

template<typename T >
NavGridInfo nav_grid::NavGrid< T >::getInfo ( ) const [inline]

Definition at line 129 of file nav_grid.h.

template<typename T >
double nav_grid::NavGrid< T >::getOriginX ( ) const [inline]

Definition at line 147 of file nav_grid.h.

template<typename T >
double nav_grid::NavGrid< T >::getOriginY ( ) const [inline]

Definition at line 148 of file nav_grid.h.

template<typename T >
double nav_grid::NavGrid< T >::getResolution ( ) const [inline]

Definition at line 145 of file nav_grid.h.

template<typename T >
virtual T nav_grid::NavGrid< T >::getValue ( const unsigned int  x,
const unsigned int  y 
) const [pure virtual]

get the value of the grid at (x,y)

Parameters:
x[in]Valid x coordinate
y[in]Valid y coordinate
Returns:
value at (x,y)

Implemented in nav_grid::VectorNavGrid< T >.

template<typename T >
T nav_grid::NavGrid< T >::getValue ( const Index &  index) [inline]

Definition at line 106 of file nav_grid.h.

template<typename T >
unsigned int nav_grid::NavGrid< T >::getWidth ( ) const [inline]

Definition at line 143 of file nav_grid.h.

template<typename T >
T nav_grid::NavGrid< T >::operator() ( const unsigned int  x,
const unsigned int  y 
) const [inline]

Definition at line 107 of file nav_grid.h.

template<typename T >
T nav_grid::NavGrid< T >::operator() ( const Index &  index) const [inline]

Definition at line 108 of file nav_grid.h.

template<typename T >
virtual void nav_grid::NavGrid< T >::reset ( ) [pure virtual]

Reset the contents of the grid.

Implemented in nav_grid::VectorNavGrid< T >.

template<typename T >
void nav_grid::NavGrid< T >::setDefaultValue ( const T  new_value) [inline]

Set the default value.

Parameters:
[in]new_valueNew Default Value

Definition at line 135 of file nav_grid.h.

template<typename T >
virtual void nav_grid::NavGrid< T >::setInfo ( const NavGridInfo new_info) [pure virtual]

Change the info while attempting to keep the values associated with the grid coordinates.

Parameters:
[in]new_infoNew grid info

Implemented in nav_grid::VectorNavGrid< T >.

template<typename T >
virtual void nav_grid::NavGrid< T >::setValue ( const unsigned int  x,
const unsigned int  y,
const T &  value 
) [pure virtual]

set the value of the grid at (x,y)

Parameters:
x[in]Valid x coordinate
y[in]Valid y coordinate
value[in]New Value

Implemented in nav_grid::VectorNavGrid< T >.

template<typename T >
void nav_grid::NavGrid< T >::setValue ( const Index &  index,
const T &  value 
) [inline]

Definition at line 109 of file nav_grid.h.

template<typename T >
virtual void nav_grid::NavGrid< T >::updateInfo ( const NavGridInfo new_info) [inline, virtual]

Change the info while attempting to keep the values associated with the world coordinates.

For example, if the only change to the info is to the origin's x coordinate (increasing by an amount equal to the resolution), then all the values should be shifted one grid cell to the left.

Parameters:
[in]new_infoNew grid info

Reimplemented in nav_grid::VectorNavGrid< T >.

Definition at line 127 of file nav_grid.h.


Member Data Documentation

template<typename T >
T nav_grid::NavGrid< T >::default_value_ [protected]

Definition at line 152 of file nav_grid.h.

template<typename T >
NavGridInfo nav_grid::NavGrid< T >::info_ [protected]

Definition at line 151 of file nav_grid.h.


The documentation for this class was generated from the following file:


nav_grid
Author(s):
autogenerated on Wed Jun 26 2019 20:09:30