What does getRobotFootprint() refer?
There is a function footprintCost() in carrot_planner.cpp
double CarrotPlanner::footprintCost(double x_i, double y_i, double theta_i){ if(!initialized_){ ROS_ERROR("The planner has not been initialized, please call initialize() to use the planner"); return -1.0; } std::vector<geometry_msgs::point> footprint = costmap_ros_->getRobotFootprint(); //if we have no footprint... do nothing if(footprint.size() < 3) return -1.0; //check if the footprint is legal double footprint_cost = world_model_->footprintCost(x_i, y_i, theta_i, footprint); return footprint_cost; }
The thing I want to know is a part of footprint.size()
. I think that costmap_common_params.yaml has footprint like this vector.
footprint: [[0.18, 0.18],[0.18, -0.18],[-0.18,-0.18],[-0.18,0.18]]
So, I have to set above footprint instead of robot_radius. But global_planner doesn't need the footprint.
Am I correct?
Does the footprint mean x, y, theta?