|
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.