A class implementing a local planner using the Dynamic Window Approach. More...
#include <dwa_planner.h>
Public Member Functions | |
bool | checkTrajectory (const Eigen::Vector3f pos, const Eigen::Vector3f vel, const Eigen::Vector3f vel_samples) |
Check if a trajectory is legal for a position/velocity pair. More... | |
DWAPlanner (std::string name, base_local_planner::LocalPlannerUtil *planner_util) | |
Constructor for the planner. More... | |
base_local_planner::Trajectory | findBestPath (tf::Stamped< tf::Pose > global_pose, tf::Stamped< tf::Pose > global_vel, tf::Stamped< tf::Pose > &drive_velocities) |
Given the current position and velocity of the robot, find the best trajectory to exectue. More... | |
bool | getCellCosts (int cx, int cy, float &path_cost, float &goal_cost, float &occ_cost, float &total_cost) |
Compute the components and total cost for a map grid cell. More... | |
double | getSimPeriod () |
Get the period at which the local planner is expected to run. More... | |
void | reconfigure (DWAPlannerConfig &cfg) |
Reconfigures the trajectory planner. More... | |
bool | setPlan (const std::vector< geometry_msgs::PoseStamped > &orig_global_plan) |
void | updatePlanAndLocalCosts (tf::Stamped< tf::Pose > global_pose, const std::vector< geometry_msgs::PoseStamped > &new_plan, const std::vector< geometry_msgs::Point > &footprint_spec) |
Update the cost functions before planning. More... | |
~DWAPlanner () | |
Destructor for the planner. More... | |
A class implementing a local planner using the Dynamic Window Approach.
Definition at line 71 of file dwa_planner.h.
dwa_local_planner::DWAPlanner::DWAPlanner | ( | std::string | name, |
base_local_planner::LocalPlannerUtil * | planner_util | ||
) |
Constructor for the planner.
name | The name of the planner |
costmap_ros | A pointer to the costmap instance the planner should use |
global_frame | the frame id of the tf frame to use |
Definition at line 118 of file dwa_planner.cpp.
|
inline |
Destructor for the planner.
Definition at line 84 of file dwa_planner.h.
bool dwa_local_planner::DWAPlanner::checkTrajectory | ( | const Eigen::Vector3f | pos, |
const Eigen::Vector3f | vel, | ||
const Eigen::Vector3f | vel_samples | ||
) |
Check if a trajectory is legal for a position/velocity pair.
pos | The robot's position |
vel | The robot's velocity |
vel_samples | The desired velocity |
This function is used when other strategies are to be applied, but the cost functions for obstacles are to be reused.
Definition at line 216 of file dwa_planner.cpp.
base_local_planner::Trajectory dwa_local_planner::DWAPlanner::findBestPath | ( | tf::Stamped< tf::Pose > | global_pose, |
tf::Stamped< tf::Pose > | global_vel, | ||
tf::Stamped< tf::Pose > & | drive_velocities | ||
) |
Given the current position and velocity of the robot, find the best trajectory to exectue.
global_pose | The current position of the robot |
global_vel | The current velocity of the robot |
drive_velocities | The velocities to send to the robot base |
Definition at line 298 of file dwa_planner.cpp.
bool dwa_local_planner::DWAPlanner::getCellCosts | ( | int | cx, |
int | cy, | ||
float & | path_cost, | ||
float & | goal_cost, | ||
float & | occ_cost, | ||
float & | total_cost | ||
) |
Compute the components and total cost for a map grid cell.
cx | The x coordinate of the cell in the map grid |
cy | The y coordinate of the cell in the map grid |
path_cost | Will be set to the path distance component of the cost function |
goal_cost | Will be set to the goal distance component of the cost function |
occ_cost | Will be set to the costmap value of the cell |
total_cost | Will be set to the value of the overall cost function, taking into account the scaling parameters |
Definition at line 188 of file dwa_planner.cpp.
|
inline |
Get the period at which the local planner is expected to run.
Definition at line 134 of file dwa_planner.h.
void dwa_local_planner::DWAPlanner::reconfigure | ( | DWAPlannerConfig & | cfg | ) |
Reconfigures the trajectory planner.
Definition at line 52 of file dwa_planner.cpp.
bool dwa_local_planner::DWAPlanner::setPlan | ( | const std::vector< geometry_msgs::PoseStamped > & | orig_global_plan | ) |
sets new plan and resets state
Definition at line 207 of file dwa_planner.cpp.
void dwa_local_planner::DWAPlanner::updatePlanAndLocalCosts | ( | tf::Stamped< tf::Pose > | global_pose, |
const std::vector< geometry_msgs::PoseStamped > & | new_plan, | ||
const std::vector< geometry_msgs::Point > & | footprint_spec | ||
) |
Update the cost functions before planning.
global_pose | The robot's current pose |
new_plan | The new global plan |
footprint_spec | The robot's footprint |
The obstacle cost function gets the footprint. The path and goal cost functions get the global_plan The alignment cost functions get a version of the global plan that is modified based on the global_pose
Definition at line 243 of file dwa_planner.cpp.
|
private |
Definition at line 185 of file dwa_planner.h.
|
private |
Definition at line 174 of file dwa_planner.h.
|
private |
Definition at line 168 of file dwa_planner.h.
|
private |
Definition at line 164 of file dwa_planner.h.
|
private |
Definition at line 158 of file dwa_planner.h.
|
private |
Definition at line 179 of file dwa_planner.h.
|
private |
Definition at line 166 of file dwa_planner.h.
|
private |
Definition at line 183 of file dwa_planner.h.
|
private |
Definition at line 184 of file dwa_planner.h.
|
private |
The map grid visualizer for outputting the potential field generated by the cost function.
Definition at line 176 of file dwa_planner.h.
|
private |
Definition at line 181 of file dwa_planner.h.
|
private |
Definition at line 158 of file dwa_planner.h.
|
private |
Definition at line 180 of file dwa_planner.h.
|
private |
Definition at line 182 of file dwa_planner.h.
|
private |
Definition at line 158 of file dwa_planner.h.
|
private |
Definition at line 155 of file dwa_planner.h.
|
private |
Whether or not to build and publish a PointCloud.
Definition at line 171 of file dwa_planner.h.
|
private |
Definition at line 172 of file dwa_planner.h.
|
private |
Definition at line 162 of file dwa_planner.h.
|
private |
Definition at line 188 of file dwa_planner.h.
|
private |
The number of seconds to use to compute max/min vels for dwa.
Definition at line 161 of file dwa_planner.h.
|
private |
How long before hitting something we're going to enforce that the robot stop.
Definition at line 157 of file dwa_planner.h.
|
private |
Definition at line 169 of file dwa_planner.h.
|
private |
Definition at line 170 of file dwa_planner.h.
|
private |
Definition at line 186 of file dwa_planner.h.
|
private |
Definition at line 159 of file dwa_planner.h.