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. | |
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. | |
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 | |
void | odomCallback (const nav_msgs::Odometry::ConstPtr &msg) |
Stop the robot taking into account acceleration limits. | |
void | reconfigureCB (AckermannLocalPlannerConfig &config, uint32_t level) |
Callback for dynamic_reconfigure. | |
double | sign (double x) |
Private Attributes | |
geometry_msgs::Twist | ackermann_state_ |
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. | |
iri_ackermann_local_planner::AckermannLocalPlannerConfig | default_config_ |
dynamic_reconfigure::Server < AckermannLocalPlannerConfig > * | dsrv_ |
ros::Publisher | g_plan_pub_ |
std::string | global_frame_ |
The frame in which the controller will run. | |
std::vector < geometry_msgs::PoseStamped > | global_plan_ |
double | inflation_radius_ |
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. | |
boost::recursive_mutex | odom_lock_ |
ros::Subscriber | odom_sub_ |
bool | prune_plan_ |
std::string | robot_base_frame_ |
Used as the base frame id of the robot. | |
double | rot_stopped_velocity_ |
bool | rotating_to_goal_ |
bool | setup_ |
std::vector < geometry_msgs::PoseStamped > | subPath |
unsigned int | subPathIndex |
std::vector< std::vector < geometry_msgs::PoseStamped > > | subPathList |
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 78 of file trajectory_planner_ros.h.
Default constructor for the ros wrapper.
Definition at line 71 of file trajectory_planner_ros.cpp.
iri_ackermann_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 75 of file trajectory_planner_ros.cpp.
Destructor for the wrapper.
Definition at line 179 of file trajectory_planner_ros.cpp.
bool iri_ackermann_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 400 of file trajectory_planner_ros.cpp.
bool iri_ackermann_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 262 of file trajectory_planner_ros.cpp.
void iri_ackermann_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 81 of file trajectory_planner_ros.cpp.
bool iri_ackermann_local_planner::TrajectoryPlannerROS::isGoalReached | ( | void | ) | [virtual] |
Check if the goal pose has been achieved.
Implements nav_core::BaseLocalPlanner.
Definition at line 474 of file trajectory_planner_ros.cpp.
void iri_ackermann_local_planner::TrajectoryPlannerROS::odomCallback | ( | const nav_msgs::Odometry::ConstPtr & | msg | ) | [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 190 of file trajectory_planner_ros.cpp.
void iri_ackermann_local_planner::TrajectoryPlannerROS::reconfigureCB | ( | AckermannLocalPlannerConfig & | config, |
uint32_t | level | ||
) | [private] |
Callback for dynamic_reconfigure.
Definition at line 56 of file trajectory_planner_ros.cpp.
double iri_ackermann_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 437 of file trajectory_planner_ros.cpp.
bool iri_ackermann_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 203 of file trajectory_planner_ros.cpp.
double iri_ackermann_local_planner::TrajectoryPlannerROS::sign | ( | double | x | ) | [inline, private] |
Definition at line 169 of file trajectory_planner_ros.h.
geometry_msgs::Twist iri_ackermann_local_planner::TrajectoryPlannerROS::ackermann_state_ [private] |
Definition at line 202 of file trajectory_planner_ros.h.
nav_msgs::Odometry iri_ackermann_local_planner::TrajectoryPlannerROS::base_odom_ [private] |
Used to get the velocity of the robot.
Definition at line 181 of file trajectory_planner_ros.h.
The costmap the controller will use.
Definition at line 176 of file trajectory_planner_ros.h.
The ROS wrapper for the costmap the controller will use.
Definition at line 175 of file trajectory_planner_ros.h.
iri_ackermann_local_planner::AckermannLocalPlannerConfig iri_ackermann_local_planner::TrajectoryPlannerROS::default_config_ [private] |
Definition at line 195 of file trajectory_planner_ros.h.
dynamic_reconfigure::Server<AckermannLocalPlannerConfig>* iri_ackermann_local_planner::TrajectoryPlannerROS::dsrv_ [private] |
Definition at line 194 of file trajectory_planner_ros.h.
Definition at line 188 of file trajectory_planner_ros.h.
std::string iri_ackermann_local_planner::TrajectoryPlannerROS::global_frame_ [private] |
The frame in which the controller will run.
Definition at line 179 of file trajectory_planner_ros.h.
std::vector<geometry_msgs::PoseStamped> iri_ackermann_local_planner::TrajectoryPlannerROS::global_plan_ [private] |
Definition at line 186 of file trajectory_planner_ros.h.
double iri_ackermann_local_planner::TrajectoryPlannerROS::inflation_radius_ [private] |
Definition at line 185 of file trajectory_planner_ros.h.
Definition at line 191 of file trajectory_planner_ros.h.
Definition at line 188 of file trajectory_planner_ros.h.
Definition at line 193 of file trajectory_planner_ros.h.
The map grid visualizer for outputting the potential field generated by the cost function.
Definition at line 177 of file trajectory_planner_ros.h.
double iri_ackermann_local_planner::TrajectoryPlannerROS::max_sensor_range_ [private] |
Keep track of the effective maximum range of our sensors.
Definition at line 180 of file trajectory_planner_ros.h.
boost::recursive_mutex iri_ackermann_local_planner::TrajectoryPlannerROS::odom_lock_ [private] |
Definition at line 190 of file trajectory_planner_ros.h.
Definition at line 189 of file trajectory_planner_ros.h.
Definition at line 187 of file trajectory_planner_ros.h.
std::string iri_ackermann_local_planner::TrajectoryPlannerROS::robot_base_frame_ [private] |
Used as the base frame id of the robot.
Definition at line 182 of file trajectory_planner_ros.h.
Definition at line 183 of file trajectory_planner_ros.h.
Definition at line 192 of file trajectory_planner_ros.h.
Definition at line 196 of file trajectory_planner_ros.h.
std::vector< geometry_msgs::PoseStamped > iri_ackermann_local_planner::TrajectoryPlannerROS::subPath [private] |
Definition at line 199 of file trajectory_planner_ros.h.
unsigned int iri_ackermann_local_planner::TrajectoryPlannerROS::subPathIndex [private] |
Definition at line 200 of file trajectory_planner_ros.h.
std::vector< std::vector < geometry_msgs::PoseStamped > > iri_ackermann_local_planner::TrajectoryPlannerROS::subPathList [private] |
Definition at line 198 of file trajectory_planner_ros.h.
The trajectory controller.
Definition at line 174 of file trajectory_planner_ros.h.
Used for transforming point clouds.
Definition at line 178 of file trajectory_planner_ros.h.
Definition at line 183 of file trajectory_planner_ros.h.
The world model that the controller will use.
Definition at line 173 of file trajectory_planner_ros.h.
Definition at line 184 of file trajectory_planner_ros.h.
Definition at line 193 of file trajectory_planner_ros.h.
Definition at line 184 of file trajectory_planner_ros.h.