Nav2 Navigation Stack - kilted
kilted
ROS 2 Navigation Stack
|
A Conjugate Gradient 2D path smoother implementation. More...
#include <nav2_constrained_smoother/include/nav2_constrained_smoother/smoother.hpp>
Public Member Functions | |
Smoother (const SmootherParams ¶ms) | |
A constructor for nav2_smac_planner::Smoother. | |
~Smoother () | |
A destructor for nav2_smac_planner::Smoother. | |
void | initialize (const double &min_turning_radius) |
Initialization of the smoother. More... | |
bool | smooth (nav_msgs::msg::Path &path, const nav2_costmap_2d::Costmap2D *costmap, const double &max_time) |
Smoother API method. More... | |
Protected Member Functions | |
bool | smoothImpl (nav_msgs::msg::Path &path, bool &reversing_segment, const nav2_costmap_2d::Costmap2D *costmap, const double &max_time) |
Smoother method - does the smoothing on a segment. More... | |
double | getFieldByDim (const geometry_msgs::msg::PoseStamped &msg, const unsigned int &dim) |
Get the field value for a given dimension. More... | |
void | setFieldByDim (geometry_msgs::msg::PoseStamped &msg, const unsigned int dim, const double &value) |
Set the field value for a given dimension. More... | |
std::vector< PathSegment > | findDirectionalPathSegments (const nav_msgs::msg::Path &path) |
Finds the starting and end indices of path segments where the robot is traveling in the same direction (e.g. forward vs reverse) More... | |
void | enforceStartBoundaryConditions (const geometry_msgs::msg::Pose &start_pose, nav_msgs::msg::Path &path, const nav2_costmap_2d::Costmap2D *costmap, const bool &reversing_segment) |
Enforced minimum curvature boundary conditions on plan output the robot is traveling in the same direction (e.g. forward vs reverse) More... | |
void | enforceEndBoundaryConditions (const geometry_msgs::msg::Pose &end_pose, nav_msgs::msg::Path &path, const nav2_costmap_2d::Costmap2D *costmap, const bool &reversing_segment) |
Enforced minimum curvature boundary conditions on plan output the robot is traveling in the same direction (e.g. forward vs reverse) More... | |
unsigned int | findShortestBoundaryExpansionIdx (const BoundaryExpansions &boundary_expansions) |
Given a set of boundary expansion, find the one which is shortest such that it is least likely to contain a loop-de-loop when working with close-by primitive markers. Instead, select a further away marker which generates a shorter `. More... | |
void | findBoundaryExpansion (const geometry_msgs::msg::Pose &start, const geometry_msgs::msg::Pose &end, BoundaryExpansion &expansion, const nav2_costmap_2d::Costmap2D *costmap) |
Populate a motion model expansion from start->end into expansion. More... | |
template<typename IteratorT > | |
BoundaryExpansions | generateBoundaryExpansionPoints (IteratorT start, IteratorT end) |
Generates boundary expansions with end idx at least strategic distances away, using either Reverse or (Forward) Path Iterators. More... | |
void | updateApproximatePathOrientations (nav_msgs::msg::Path &path, bool &reversing_segment) |
For a given path, update the path point orientations based on smoothing. More... | |
|
protected |
Enforced minimum curvature boundary conditions on plan output the robot is traveling in the same direction (e.g. forward vs reverse)
end_pose | End pose of the feasible path to maintain |
path | Path to modify for curvature constraints on start / end of path |
costmap | Costmap to check for collisions |
reversing_segment | Whether this path segment is in reverse |
Definition at line 475 of file smoother.cpp.
|
protected |
Enforced minimum curvature boundary conditions on plan output the robot is traveling in the same direction (e.g. forward vs reverse)
start_pose | Start pose of the feasible path to maintain |
path | Path to modify for curvature constraints on start / end of path |
costmap | Costmap to check for collisions |
reversing_segment | Whether this path segment is in reverse |
Definition at line 429 of file smoother.cpp.
|
protected |
Populate a motion model expansion from start->end into expansion.
start | Start pose of the feasible path to maintain |
end | End pose of the feasible path to maintain |
expansion | Expansion object to populate |
costmap | Costmap to check for collisions |
reversing_segment | Whether this path segment is in reverse |
Definition at line 332 of file smoother.cpp.
References nav2_costmap_2d::Costmap2D::getCost(), and nav2_costmap_2d::Costmap2D::worldToMap().
|
protected |
Finds the starting and end indices of path segments where the robot is traveling in the same direction (e.g. forward vs reverse)
path | Path in which to look for cusps |
Definition at line 224 of file smoother.cpp.
|
protected |
Given a set of boundary expansion, find the one which is shortest such that it is least likely to contain a loop-de-loop when working with close-by primitive markers. Instead, select a further away marker which generates a shorter `.
boundary_expansions | Set of boundary expansions |
Definition at line 310 of file smoother.cpp.
|
protected |
Generates boundary expansions with end idx at least strategic distances away, using either Reverse or (Forward) Path Iterators.
start | iterator to start search in path for |
end | iterator to end search for |
Definition at line 392 of file smoother.cpp.
|
inlineprotected |
Get the field value for a given dimension.
msg | Current pose to sample |
dim | Dimension ID of interest |
Definition at line 199 of file smoother.cpp.
void nav2_smac_planner::Smoother::initialize | ( | const double & | min_turning_radius | ) |
Initialization of the smoother.
min_turning_radius | Minimum turning radius (m) |
motion_model | Motion model type |
Definition at line 44 of file smoother.cpp.
|
inlineprotected |
Set the field value for a given dimension.
msg | Current pose to sample |
dim | Dimension ID of interest |
value | to set the dimension to for the pose |
Definition at line 211 of file smoother.cpp.
bool nav2_smac_planner::Smoother::smooth | ( | nav_msgs::msg::Path & | path, |
const nav2_costmap_2d::Costmap2D * | costmap, | ||
const double & | max_time | ||
) |
Smoother API method.
path | Reference to path |
costmap | Pointer to minimal costmap |
max_time | Maximum time to compute, stop early if over limit |
Definition at line 50 of file smoother.cpp.
|
protected |
Smoother method - does the smoothing on a segment.
path | Reference to path |
reversing_segment | Return if this is a reversing segment |
costmap | Pointer to minimal costmap |
max_time | Maximum time to compute, stop early if over limit |
Definition at line 105 of file smoother.cpp.
References nav2_costmap_2d::Costmap2D::getCost(), and nav2_costmap_2d::Costmap2D::worldToMap().
|
inlineprotected |
For a given path, update the path point orientations based on smoothing.
path | Path to approximate the path orientation in |
reversing_segment | Return if this is a reversing segment |
Definition at line 274 of file smoother.cpp.