A ROS wrapper for the trajectory controller that queries the param server to construct a controller. More...
#include <trajectory_planner_ros.h>
Public Member Functions | |
bool | checkTrajectory (double vx_samp, double vy_samp, double vtheta_samp, bool update_map=true) |
Generate and score a single trajectory. | |
bool | computeVelocityCommands (geometry_msgs::Twist &cmd_vel) |
Given the current position, orientation, and velocity of the robot, compute velocity commands to send to the base. | |
TrajectoryPlanner * | getPlanner () const |
Return the inner TrajectoryPlanner object. Only valid after initialize(). | |
void | initialize (std::string name, tf::TransformListener *tf, costmap_2d::Costmap2DROS *costmap_ros) |
Constructs the ros wrapper. | |
bool | isGoalReached () |
Check if the goal pose has been achieved. | |
bool | isInitialized () |
double | scoreTrajectory (double vx_samp, double vy_samp, double vtheta_samp, bool update_map=true) |
Generate and score a single trajectory. | |
bool | setPlan (const std::vector< geometry_msgs::PoseStamped > &orig_global_plan) |
Set the plan that the controller is following. | |
TrajectoryPlannerROS () | |
Default constructor for the ros wrapper. | |
TrajectoryPlannerROS (std::string name, tf::TransformListener *tf, costmap_2d::Costmap2DROS *costmap_ros) | |
Constructs the ros wrapper. | |
~TrajectoryPlannerROS () | |
Destructor for the wrapper. | |
Private Member Functions | |
std::vector< double > | loadYVels (ros::NodeHandle node) |
void | reconfigureCB (BaseLocalPlannerConfig &config, uint32_t level) |
Callback to update the local planner's parameters based on dynamic reconfigure. | |
bool | rotateToGoal (const tf::Stamped< tf::Pose > &global_pose, const tf::Stamped< tf::Pose > &robot_vel, double goal_th, geometry_msgs::Twist &cmd_vel) |
Once a goal position is reached... rotate to the goal orientation. | |
double | sign (double x) |
bool | stopWithAccLimits (const tf::Stamped< tf::Pose > &global_pose, const tf::Stamped< tf::Pose > &robot_vel, geometry_msgs::Twist &cmd_vel) |
Stop the robot taking into account acceleration limits. | |
Private Attributes | |
double | acc_lim_theta_ |
double | acc_lim_x_ |
double | acc_lim_y_ |
nav_msgs::Odometry | base_odom_ |
Used to get the velocity of the robot. | |
costmap_2d::Costmap2D * | costmap_ |
The costmap the controller will use. | |
costmap_2d::Costmap2DROS * | costmap_ros_ |
The ROS wrapper for the costmap the controller will use. | |
base_local_planner::BaseLocalPlannerConfig | default_config_ |
dynamic_reconfigure::Server < BaseLocalPlannerConfig > * | dsrv_ |
std::vector< geometry_msgs::Point > | footprint_spec_ |
ros::Publisher | g_plan_pub_ |
std::string | global_frame_ |
The frame in which the controller will run. | |
std::vector < geometry_msgs::PoseStamped > | global_plan_ |
bool | initialized_ |
ros::Publisher | l_plan_pub_ |
bool | latch_xy_goal_tolerance_ |
MapGridVisualizer | map_viz_ |
The map grid visualizer for outputting the potential field generated by the cost function. | |
double | max_sensor_range_ |
Keep track of the effective maximum range of our sensors. | |
double | max_vel_th_ |
double | min_in_place_vel_th_ |
double | min_vel_th_ |
base_local_planner::OdometryHelperRos | odom_helper_ |
boost::recursive_mutex | odom_lock_ |
bool | prune_plan_ |
bool | reached_goal_ |
std::string | robot_base_frame_ |
Used as the base frame id of the robot. | |
double | rot_stopped_velocity_ |
bool | rotating_to_goal_ |
bool | setup_ |
double | sim_period_ |
TrajectoryPlanner * | tc_ |
The trajectory controller. | |
tf::TransformListener * | tf_ |
Used for transforming point clouds. | |
double | trans_stopped_velocity_ |
WorldModel * | world_model_ |
The world model that the controller will use. | |
double | xy_goal_tolerance_ |
bool | xy_tolerance_latch_ |
double | yaw_goal_tolerance_ |
A ROS wrapper for the trajectory controller that queries the param server to construct a controller.
Definition at line 80 of file trajectory_planner_ros.h.
Default constructor for the ros wrapper.
Definition at line 74 of file trajectory_planner_ros.cpp.
base_local_planner::TrajectoryPlannerROS::TrajectoryPlannerROS | ( | std::string | name, |
tf::TransformListener * | tf, | ||
costmap_2d::Costmap2DROS * | costmap_ros | ||
) |
Constructs the ros wrapper.
name | The name to give this instance of the trajectory planner |
tf | A pointer to a transform listener |
costmap | The cost map to use for assigning costs to trajectories |
Definition at line 77 of file trajectory_planner_ros.cpp.
Destructor for the wrapper.
Definition at line 279 of file trajectory_planner_ros.cpp.
bool base_local_planner::TrajectoryPlannerROS::checkTrajectory | ( | double | vx_samp, |
double | vy_samp, | ||
double | vtheta_samp, | ||
bool | update_map = true |
||
) |
Generate and score a single trajectory.
vx_samp | The x velocity used to seed the trajectory |
vy_samp | The y velocity used to seed the trajectory |
vtheta_samp | The theta velocity used to seed the trajectory |
update_map | Whether or not to update the map for the planner when computing the legality of the trajectory, this is useful to set to false if you're going to be doing a lot of trajectory checking over a short period of time |
Definition at line 535 of file trajectory_planner_ros.cpp.
bool base_local_planner::TrajectoryPlannerROS::computeVelocityCommands | ( | geometry_msgs::Twist & | cmd_vel | ) | [virtual] |
Given the current position, orientation, and velocity of the robot, compute velocity commands to send to the base.
cmd_vel | Will be filled with the velocity command to be passed to the robot base |
Implements nav_core::BaseLocalPlanner.
Definition at line 379 of file trajectory_planner_ros.cpp.
TrajectoryPlanner* base_local_planner::TrajectoryPlannerROS::getPlanner | ( | ) | const [inline] |
Return the inner TrajectoryPlanner object. Only valid after initialize().
Definition at line 163 of file trajectory_planner_ros.h.
void base_local_planner::TrajectoryPlannerROS::initialize | ( | std::string | name, |
tf::TransformListener * | tf, | ||
costmap_2d::Costmap2DROS * | costmap_ros | ||
) | [virtual] |
Constructs the ros wrapper.
name | The name to give this instance of the trajectory planner |
tf | A pointer to a transform listener |
costmap | The cost map to use for assigning costs to trajectories |
Implements nav_core::BaseLocalPlanner.
Definition at line 84 of file trajectory_planner_ros.cpp.
bool base_local_planner::TrajectoryPlannerROS::isGoalReached | ( | ) | [virtual] |
Check if the goal pose has been achieved.
Implements nav_core::BaseLocalPlanner.
Definition at line 597 of file trajectory_planner_ros.cpp.
bool base_local_planner::TrajectoryPlannerROS::isInitialized | ( | ) | [inline] |
Definition at line 158 of file trajectory_planner_ros.h.
std::vector< double > base_local_planner::TrajectoryPlannerROS::loadYVels | ( | ros::NodeHandle | node | ) | [private] |
Definition at line 255 of file trajectory_planner_ros.cpp.
void base_local_planner::TrajectoryPlannerROS::reconfigureCB | ( | BaseLocalPlannerConfig & | config, |
uint32_t | level | ||
) | [private] |
Callback to update the local planner's parameters based on dynamic reconfigure.
Definition at line 60 of file trajectory_planner_ros.cpp.
bool base_local_planner::TrajectoryPlannerROS::rotateToGoal | ( | const tf::Stamped< tf::Pose > & | global_pose, |
const tf::Stamped< tf::Pose > & | robot_vel, | ||
double | goal_th, | ||
geometry_msgs::Twist & | cmd_vel | ||
) | [private] |
Once a goal position is reached... rotate to the goal orientation.
global_pose | The pose of the robot in the global frame |
robot_vel | The velocity of the robot |
goal_th | The desired th value for the goal |
cmd_vel | The velocity commands to be filled |
Definition at line 319 of file trajectory_planner_ros.cpp.
double base_local_planner::TrajectoryPlannerROS::scoreTrajectory | ( | double | vx_samp, |
double | vy_samp, | ||
double | vtheta_samp, | ||
bool | update_map = true |
||
) |
Generate and score a single trajectory.
vx_samp | The x velocity used to seed the trajectory |
vy_samp | The y velocity used to seed the trajectory |
vtheta_samp | The theta velocity used to seed the trajectory |
update_map | Whether or not to update the map for the planner when computing the legality of the trajectory, this is useful to set to false if you're going to be doing a lot of trajectory checking over a short period of time |
Definition at line 566 of file trajectory_planner_ros.cpp.
bool base_local_planner::TrajectoryPlannerROS::setPlan | ( | const std::vector< geometry_msgs::PoseStamped > & | orig_global_plan | ) | [virtual] |
Set the plan that the controller is following.
orig_global_plan | The plan to pass to the controller |
Implements nav_core::BaseLocalPlanner.
Definition at line 362 of file trajectory_planner_ros.cpp.
double base_local_planner::TrajectoryPlannerROS::sign | ( | double | x | ) | [inline, private] |
Definition at line 192 of file trajectory_planner_ros.h.
bool base_local_planner::TrajectoryPlannerROS::stopWithAccLimits | ( | const tf::Stamped< tf::Pose > & | global_pose, |
const tf::Stamped< tf::Pose > & | robot_vel, | ||
geometry_msgs::Twist & | cmd_vel | ||
) | [private] |
Stop the robot taking into account acceleration limits.
global_pose | The pose of the robot in the global frame |
robot_vel | The velocity of the robot |
cmd_vel | The velocity commands to be filled |
Definition at line 290 of file trajectory_planner_ros.cpp.
double base_local_planner::TrajectoryPlannerROS::acc_lim_theta_ [private] |
Definition at line 214 of file trajectory_planner_ros.h.
double base_local_planner::TrajectoryPlannerROS::acc_lim_x_ [private] |
Definition at line 214 of file trajectory_planner_ros.h.
double base_local_planner::TrajectoryPlannerROS::acc_lim_y_ [private] |
Definition at line 214 of file trajectory_planner_ros.h.
nav_msgs::Odometry base_local_planner::TrajectoryPlannerROS::base_odom_ [private] |
Used to get the velocity of the robot.
Definition at line 205 of file trajectory_planner_ros.h.
The costmap the controller will use.
Definition at line 200 of file trajectory_planner_ros.h.
The ROS wrapper for the costmap the controller will use.
Definition at line 199 of file trajectory_planner_ros.h.
base_local_planner::BaseLocalPlannerConfig base_local_planner::TrajectoryPlannerROS::default_config_ [private] |
Definition at line 223 of file trajectory_planner_ros.h.
dynamic_reconfigure::Server<BaseLocalPlannerConfig>* base_local_planner::TrajectoryPlannerROS::dsrv_ [private] |
Definition at line 222 of file trajectory_planner_ros.h.
std::vector<geometry_msgs::Point> base_local_planner::TrajectoryPlannerROS::footprint_spec_ [private] |
Definition at line 230 of file trajectory_planner_ros.h.
Definition at line 220 of file trajectory_planner_ros.h.
std::string base_local_planner::TrajectoryPlannerROS::global_frame_ [private] |
The frame in which the controller will run.
Definition at line 203 of file trajectory_planner_ros.h.
std::vector<geometry_msgs::PoseStamped> base_local_planner::TrajectoryPlannerROS::global_plan_ [private] |
Definition at line 209 of file trajectory_planner_ros.h.
bool base_local_planner::TrajectoryPlannerROS::initialized_ [private] |
Definition at line 227 of file trajectory_planner_ros.h.
Definition at line 220 of file trajectory_planner_ros.h.
Definition at line 218 of file trajectory_planner_ros.h.
The map grid visualizer for outputting the potential field generated by the cost function.
Definition at line 201 of file trajectory_planner_ros.h.
double base_local_planner::TrajectoryPlannerROS::max_sensor_range_ [private] |
Keep track of the effective maximum range of our sensors.
Definition at line 204 of file trajectory_planner_ros.h.
double base_local_planner::TrajectoryPlannerROS::max_vel_th_ [private] |
Definition at line 213 of file trajectory_planner_ros.h.
double base_local_planner::TrajectoryPlannerROS::min_in_place_vel_th_ [private] |
Definition at line 208 of file trajectory_planner_ros.h.
double base_local_planner::TrajectoryPlannerROS::min_vel_th_ [private] |
Definition at line 213 of file trajectory_planner_ros.h.
base_local_planner::OdometryHelperRos base_local_planner::TrajectoryPlannerROS::odom_helper_ [private] |
Definition at line 228 of file trajectory_planner_ros.h.
boost::recursive_mutex base_local_planner::TrajectoryPlannerROS::odom_lock_ [private] |
Definition at line 211 of file trajectory_planner_ros.h.
bool base_local_planner::TrajectoryPlannerROS::prune_plan_ [private] |
Definition at line 210 of file trajectory_planner_ros.h.
bool base_local_planner::TrajectoryPlannerROS::reached_goal_ [private] |
Definition at line 217 of file trajectory_planner_ros.h.
std::string base_local_planner::TrajectoryPlannerROS::robot_base_frame_ [private] |
Used as the base frame id of the robot.
Definition at line 206 of file trajectory_planner_ros.h.
double base_local_planner::TrajectoryPlannerROS::rot_stopped_velocity_ [private] |
Definition at line 207 of file trajectory_planner_ros.h.
bool base_local_planner::TrajectoryPlannerROS::rotating_to_goal_ [private] |
Definition at line 216 of file trajectory_planner_ros.h.
bool base_local_planner::TrajectoryPlannerROS::setup_ [private] |
Definition at line 224 of file trajectory_planner_ros.h.
double base_local_planner::TrajectoryPlannerROS::sim_period_ [private] |
Definition at line 215 of file trajectory_planner_ros.h.
The trajectory controller.
Definition at line 197 of file trajectory_planner_ros.h.
Used for transforming point clouds.
Definition at line 202 of file trajectory_planner_ros.h.
double base_local_planner::TrajectoryPlannerROS::trans_stopped_velocity_ [private] |
Definition at line 207 of file trajectory_planner_ros.h.
The world model that the controller will use.
Definition at line 196 of file trajectory_planner_ros.h.
double base_local_planner::TrajectoryPlannerROS::xy_goal_tolerance_ [private] |
Definition at line 208 of file trajectory_planner_ros.h.
Definition at line 218 of file trajectory_planner_ros.h.
double base_local_planner::TrajectoryPlannerROS::yaw_goal_tolerance_ [private] |
Definition at line 208 of file trajectory_planner_ros.h.