|
Package Summary
Tags | No category tags. |
Version | 0.3.0 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/locusrobotics/robot_navigation.git |
VCS Type | git |
VCS Version | noetic |
Last Updated | 2022-06-27 |
Dev Status | DEVELOPED |
CI status |
|
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- David V. Lu!!
Authors
nav_grid_iterators
This package provides C++ iterators for iterating over some portion of a NavGrid
. There are two sets. The first are signed line iterators which are not constrained to valid NavGrid
indexes. Second, are the general iterators which are constrained to valid NavGrid
indexes.
Signed Line Iteration
As a building block for the general iterators, we provide two line iterators that iterate over int
coordinates. Both take two pairs of coordinates for start and end points, as well as a boolean for whether to include the coordinates of the end point in the iteration.
-
Bresenham
takes integer coordinates as input and implements Bresenham’s line algorithm, which means that there is either only one cell per column or one cell per row. -
RayTrace
takes double coordinates as input and implements Ray tracing, which means that it iterates over all cells that the line passes through, even if only briefly.
General Iterators
-
WholeGrid
iterates over every cell in the grid in row major order. -
SubGrid
iterates over a rectangular subportion of the grid in row major order. -
Line
iterates over a line, using either of the above algorithms, but the coordinates are constrained to the grid. -
PolygonFill
iterates over all the cells whose centers fall within anav_2d_msgs::Polygon2D
-
PolygonOutline
iterates over the outline of anav_2d_msgs::Polygon2D
using either of the two above line iterators. -
CircleFill
iterates over all the cells whose centers fall within a given circle, iterating in row major order. -
Spiral
iterates over the same cells asCircleFill
but from the center of the circle outward. -
CircleOutline
iterates around the outline of a circle.
Demo
A demonstration of all the general iterators can be seen by running roslaunch nav_grid_iterators demo.launch
or by looking at this video.
- The purple iterator is
WholeGrid
- The bottom row, left to right, are
-
SubGrid
(green) -
PolygonFill
(yellow) -
PolygonOutline+Bresenham
(blue) -
PolygonOutline+RayTrace
(blue)
-
- In the middle are a
Line+Bresenham
(bottom) and aLine+RayTrace
(top) - The top row, left to right, are
-
CircleFill
(grey) -
Spiral
(green) -
CircleOutline
(cyan)
-
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin | |
roslint | |
rosunit | |
nav_2d_msgs | |
nav_2d_utils | |
nav_grid | |
nav_msgs | |
roscpp |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged nav_grid_iterators at Robotics Stack Exchange
|
Package Summary
Tags | No category tags. |
Version | 0.3.0 |
License | BSD |
Build type | CATKIN |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/locusrobotics/robot_navigation.git |
VCS Type | git |
VCS Version | melodic |
Last Updated | 2021-07-30 |
Dev Status | DEVELOPED |
CI status |
|
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- David V. Lu!!
Authors
nav_grid_iterators
This package provides C++ iterators for iterating over some portion of a NavGrid
. There are two sets. The first are signed line iterators which are not constrained to valid NavGrid
indexes. Second, are the general iterators which are constrained to valid NavGrid
indexes.
Signed Line Iteration
As a building block for the general iterators, we provide two line iterators that iterate over int
coordinates. Both take two pairs of coordinates for start and end points, as well as a boolean for whether to include the coordinates of the end point in the iteration.
-
Bresenham
takes integer coordinates as input and implements Bresenham’s line algorithm, which means that there is either only one cell per column or one cell per row. -
RayTrace
takes double coordinates as input and implements Ray tracing, which means that it iterates over all cells that the line passes through, even if only briefly.
General Iterators
-
WholeGrid
iterates over every cell in the grid in row major order. -
SubGrid
iterates over a rectangular subportion of the grid in row major order. -
Line
iterates over a line, using either of the above algorithms, but the coordinates are constrained to the grid. -
PolygonFill
iterates over all the cells whose centers fall within anav_2d_msgs::Polygon2D
-
PolygonOutline
iterates over the outline of anav_2d_msgs::Polygon2D
using either of the two above line iterators. -
CircleFill
iterates over all the cells whose centers fall within a given circle, iterating in row major order. -
Spiral
iterates over the same cells asCircleFill
but from the center of the circle outward. -
CircleOutline
iterates around the outline of a circle.
Demo
A demonstration of all the general iterators can be seen by running roslaunch nav_grid_iterators demo.launch
or by looking at this video.
- The purple iterator is
WholeGrid
- The bottom row, left to right, are
-
SubGrid
(green) -
PolygonFill
(yellow) -
PolygonOutline+Bresenham
(blue) -
PolygonOutline+RayTrace
(blue)
-
- In the middle are a
Line+Bresenham
(bottom) and aLine+RayTrace
(top) - The top row, left to right, are
-
CircleFill
(grey) -
Spiral
(green) -
CircleOutline
(cyan)
-
Wiki Tutorials
Package Dependencies
Deps | Name |
---|---|
catkin | |
roslint | |
rosunit | |
nav_2d_msgs | |
nav_2d_utils | |
nav_grid | |
nav_msgs | |
roscpp |