#include <hector_exploration_planner.h>
|
float | angleDifferenceWall (const geometry_msgs::PoseStamped &start, const geometry_msgs::PoseStamped &goal) |
|
bool | doAlternativeExploration (const geometry_msgs::PoseStamped &start, std::vector< geometry_msgs::PoseStamped > &plan, std::vector< geometry_msgs::PoseStamped > &oldplan) |
|
bool | doExploration (const geometry_msgs::PoseStamped &start, std::vector< geometry_msgs::PoseStamped > &plan) |
|
bool | doInnerExploration (const geometry_msgs::PoseStamped &start, std::vector< geometry_msgs::PoseStamped > &plan) |
|
void | dynRecParamCallback (hector_exploration_planner::ExplorationPlannerConfig &config, uint32_t level) |
|
bool | exploreWalls (const geometry_msgs::PoseStamped &start, std::vector< geometry_msgs::PoseStamped > &goals) |
|
bool | findFrontiers (std::vector< geometry_msgs::PoseStamped > &frontiers, std::vector< geometry_msgs::PoseStamped > &noFrontiers) |
|
bool | findFrontiers (std::vector< geometry_msgs::PoseStamped > &frontiers) |
|
bool | findFrontiersCloseToPath (std::vector< geometry_msgs::PoseStamped > &frontiers) |
|
bool | findInnerFrontier (std::vector< geometry_msgs::PoseStamped > &innerFrontier) |
|
bool | getObservationPose (const geometry_msgs::PoseStamped &observation_pose, const double desired_distance, geometry_msgs::PoseStamped &new_observation_pose) |
|
| HectorExplorationPlanner () |
|
| HectorExplorationPlanner (std::string name, costmap_2d::Costmap2DROS *costmap_ros) |
|
void | initialize (std::string name, costmap_2d::Costmap2DROS *costmap_ros) |
|
bool | makePlan (const geometry_msgs::PoseStamped &start, const geometry_msgs::PoseStamped &original_goal, std::vector< geometry_msgs::PoseStamped > &plan) |
|
| ~HectorExplorationPlanner () |
|
|
unsigned int | angleDanger (float angle) |
|
float | angleDifference (const geometry_msgs::PoseStamped &start, const geometry_msgs::PoseStamped &goal) |
|
bool | buildexploration_trans_array_ (const geometry_msgs::PoseStamped &start, std::vector< geometry_msgs::PoseStamped > goals, bool useAnglePenalty, bool use_cell_danger=true) |
|
bool | buildobstacle_trans_array_ (bool use_inflated_obstacles) |
|
unsigned int | cellDanger (int point) |
|
void | clearFrontiers () |
|
void | deleteMapData () |
|
int | down (int point) |
|
int | downleft (int point) |
|
int | downright (int point) |
|
void | getAdjacentPoints (int point, int points[]) |
|
void | getDiagonalPoints (int point, int points[]) |
|
float | getDistanceWeight (const geometry_msgs::PoseStamped &point1, const geometry_msgs::PoseStamped &point2) |
|
void | getStraightPoints (int point, int points[]) |
|
bool | getTrajectory (const geometry_msgs::PoseStamped &start, std::vector< geometry_msgs::PoseStamped > goals, std::vector< geometry_msgs::PoseStamped > &plan) |
|
double | getYawToUnknown (int point) |
|
bool | isFree (int point) |
|
bool | isFreeFrontiers (int point) |
|
bool | isFrontier (int point) |
|
bool | isFrontierReached (int point) |
|
bool | isSameFrontier (int frontier_point1, int frontier_point2) |
|
bool | isValid (int point) |
|
int | left (int point) |
|
bool | recoveryMakePlan (const geometry_msgs::PoseStamped &start, const geometry_msgs::PoseStamped &goal, std::vector< geometry_msgs::PoseStamped > &plan) |
|
void | resetMaps () |
|
int | right (int point) |
|
void | saveMaps (std::string path) |
|
void | setupMapData () |
|
int | up (int point) |
|
int | upleft (int point) |
|
int | upright (int point) |
|
HectorExplorationPlanner::HectorExplorationPlanner |
( |
| ) |
|
HectorExplorationPlanner::~HectorExplorationPlanner |
( |
| ) |
|
unsigned int HectorExplorationPlanner::angleDanger |
( |
float |
angle | ) |
|
|
private |
float HectorExplorationPlanner::angleDifference |
( |
const geometry_msgs::PoseStamped & |
start, |
|
|
const geometry_msgs::PoseStamped & |
goal |
|
) |
| |
|
private |
float HectorExplorationPlanner::angleDifferenceWall |
( |
const geometry_msgs::PoseStamped & |
start, |
|
|
const geometry_msgs::PoseStamped & |
goal |
|
) |
| |
bool HectorExplorationPlanner::buildexploration_trans_array_ |
( |
const geometry_msgs::PoseStamped & |
start, |
|
|
std::vector< geometry_msgs::PoseStamped > |
goals, |
|
|
bool |
useAnglePenalty, |
|
|
bool |
use_cell_danger = true |
|
) |
| |
|
private |
bool HectorExplorationPlanner::buildobstacle_trans_array_ |
( |
bool |
use_inflated_obstacles | ) |
|
|
private |
unsigned int HectorExplorationPlanner::cellDanger |
( |
int |
point | ) |
|
|
inlineprivate |
void HectorExplorationPlanner::clearFrontiers |
( |
| ) |
|
|
private |
void HectorExplorationPlanner::deleteMapData |
( |
| ) |
|
|
private |
bool HectorExplorationPlanner::doAlternativeExploration |
( |
const geometry_msgs::PoseStamped & |
start, |
|
|
std::vector< geometry_msgs::PoseStamped > & |
plan, |
|
|
std::vector< geometry_msgs::PoseStamped > & |
oldplan |
|
) |
| |
bool HectorExplorationPlanner::doExploration |
( |
const geometry_msgs::PoseStamped & |
start, |
|
|
std::vector< geometry_msgs::PoseStamped > & |
plan |
|
) |
| |
Given a start point, finds a frontier between known and unknown space and generates a plan to go there
- Parameters
-
start | The start point |
plan | The plan to explore into unknown space |
Definition at line 203 of file hector_exploration_planner.cpp.
bool HectorExplorationPlanner::doInnerExploration |
( |
const geometry_msgs::PoseStamped & |
start, |
|
|
std::vector< geometry_msgs::PoseStamped > & |
plan |
|
) |
| |
This can be used if there are no frontiers to unknown space left in the map. The robot will retrieve it's path travelled so far via a service and try to go to places having a large distance to this path.
- Parameters
-
start | The start point |
plan | The plan to explore into unknown space |
Definition at line 269 of file hector_exploration_planner.cpp.
int HectorExplorationPlanner::down |
( |
int |
point | ) |
|
|
inlineprivate |
int HectorExplorationPlanner::downleft |
( |
int |
point | ) |
|
|
inlineprivate |
int HectorExplorationPlanner::downright |
( |
int |
point | ) |
|
|
inlineprivate |
void HectorExplorationPlanner::dynRecParamCallback |
( |
hector_exploration_planner::ExplorationPlannerConfig & |
config, |
|
|
uint32_t |
level |
|
) |
| |
bool HectorExplorationPlanner::exploreWalls |
( |
const geometry_msgs::PoseStamped & |
start, |
|
|
std::vector< geometry_msgs::PoseStamped > & |
goals |
|
) |
| |
bool HectorExplorationPlanner::findFrontiers |
( |
std::vector< geometry_msgs::PoseStamped > & |
frontiers, |
|
|
std::vector< geometry_msgs::PoseStamped > & |
noFrontiers |
|
) |
| |
bool HectorExplorationPlanner::findFrontiers |
( |
std::vector< geometry_msgs::PoseStamped > & |
frontiers | ) |
|
bool HectorExplorationPlanner::findFrontiersCloseToPath |
( |
std::vector< geometry_msgs::PoseStamped > & |
frontiers | ) |
|
bool HectorExplorationPlanner::findInnerFrontier |
( |
std::vector< geometry_msgs::PoseStamped > & |
innerFrontier | ) |
|
void HectorExplorationPlanner::getAdjacentPoints |
( |
int |
point, |
|
|
int |
points[] |
|
) |
| |
|
inlineprivate |
void HectorExplorationPlanner::getDiagonalPoints |
( |
int |
point, |
|
|
int |
points[] |
|
) |
| |
|
inlineprivate |
float HectorExplorationPlanner::getDistanceWeight |
( |
const geometry_msgs::PoseStamped & |
point1, |
|
|
const geometry_msgs::PoseStamped & |
point2 |
|
) |
| |
|
private |
bool HectorExplorationPlanner::getObservationPose |
( |
const geometry_msgs::PoseStamped & |
observation_pose, |
|
|
const double |
desired_distance, |
|
|
geometry_msgs::PoseStamped & |
new_observation_pose |
|
) |
| |
void HectorExplorationPlanner::getStraightPoints |
( |
int |
point, |
|
|
int |
points[] |
|
) |
| |
|
inlineprivate |
bool HectorExplorationPlanner::getTrajectory |
( |
const geometry_msgs::PoseStamped & |
start, |
|
|
std::vector< geometry_msgs::PoseStamped > |
goals, |
|
|
std::vector< geometry_msgs::PoseStamped > & |
plan |
|
) |
| |
|
private |
double HectorExplorationPlanner::getYawToUnknown |
( |
int |
point | ) |
|
|
private |
bool HectorExplorationPlanner::isFree |
( |
int |
point | ) |
|
|
private |
bool HectorExplorationPlanner::isFreeFrontiers |
( |
int |
point | ) |
|
|
private |
bool HectorExplorationPlanner::isFrontier |
( |
int |
point | ) |
|
|
private |
bool HectorExplorationPlanner::isFrontierReached |
( |
int |
point | ) |
|
|
private |
bool HectorExplorationPlanner::isSameFrontier |
( |
int |
frontier_point1, |
|
|
int |
frontier_point2 |
|
) |
| |
|
private |
bool HectorExplorationPlanner::isValid |
( |
int |
point | ) |
|
|
inlineprivate |
int HectorExplorationPlanner::left |
( |
int |
point | ) |
|
|
inlineprivate |
bool HectorExplorationPlanner::makePlan |
( |
const geometry_msgs::PoseStamped & |
start, |
|
|
const geometry_msgs::PoseStamped & |
original_goal, |
|
|
std::vector< geometry_msgs::PoseStamped > & |
plan |
|
) |
| |
Plans from start to given goal. If orientation quaternion of goal is all zeros, calls exploration instead. This is a hacky workaround that has to be refactored.
- Parameters
-
start | The start point |
goal | The goal point (Use orientation quaternion all 0 to let exploration find goal point) |
plan | The generated plan |
Definition at line 127 of file hector_exploration_planner.cpp.
bool hector_exploration_planner::HectorExplorationPlanner::recoveryMakePlan |
( |
const geometry_msgs::PoseStamped & |
start, |
|
|
const geometry_msgs::PoseStamped & |
goal, |
|
|
std::vector< geometry_msgs::PoseStamped > & |
plan |
|
) |
| |
|
private |
void HectorExplorationPlanner::resetMaps |
( |
| ) |
|
|
private |
int HectorExplorationPlanner::right |
( |
int |
point | ) |
|
|
inlineprivate |
void hector_exploration_planner::HectorExplorationPlanner::saveMaps |
( |
std::string |
path | ) |
|
|
private |
void HectorExplorationPlanner::setupMapData |
( |
| ) |
|
|
private |
Updates costmap data and resizes internal data structures if costmap size has changed. Should be called once before every planning command
Definition at line 782 of file hector_exploration_planner.cpp.
int HectorExplorationPlanner::up |
( |
int |
point | ) |
|
|
inlineprivate |
int HectorExplorationPlanner::upleft |
( |
int |
point | ) |
|
|
inlineprivate |
int HectorExplorationPlanner::upright |
( |
int |
point | ) |
|
|
inlineprivate |
boost::shared_ptr<dynamic_reconfigure::Server<hector_exploration_planner::ExplorationPlannerConfig> > hector_exploration_planner::HectorExplorationPlanner::dyn_rec_server_ |
|
private |
boost::shared_array<unsigned int> hector_exploration_planner::HectorExplorationPlanner::exploration_trans_array_ |
|
private |
boost::shared_array<int> hector_exploration_planner::HectorExplorationPlanner::frontier_map_array_ |
|
private |
ros::Publisher hector_exploration_planner::HectorExplorationPlanner::goal_pose_pub_ |
|
private |
bool hector_exploration_planner::HectorExplorationPlanner::initialized_ |
|
private |
unsigned int hector_exploration_planner::HectorExplorationPlanner::map_height_ |
|
private |
unsigned int hector_exploration_planner::HectorExplorationPlanner::map_width_ |
|
private |
std::string hector_exploration_planner::HectorExplorationPlanner::name |
|
private |
unsigned int hector_exploration_planner::HectorExplorationPlanner::num_map_cells_ |
|
private |
ros::Publisher hector_exploration_planner::HectorExplorationPlanner::observation_pose_pub_ |
|
private |
boost::shared_array<unsigned int> hector_exploration_planner::HectorExplorationPlanner::obstacle_trans_array_ |
|
private |
const unsigned char* hector_exploration_planner::HectorExplorationPlanner::occupancy_grid_array_ |
|
private |
double hector_exploration_planner::HectorExplorationPlanner::p_alpha_ |
|
private |
double hector_exploration_planner::HectorExplorationPlanner::p_close_to_path_target_distance_ |
|
private |
double hector_exploration_planner::HectorExplorationPlanner::p_cos_of_allowed_observation_pose_angle_ |
|
private |
double hector_exploration_planner::HectorExplorationPlanner::p_dist_for_goal_reached_ |
|
private |
bool hector_exploration_planner::HectorExplorationPlanner::p_explore_close_to_path_ |
|
private |
int hector_exploration_planner::HectorExplorationPlanner::p_goal_angle_penalty_ |
|
private |
int hector_exploration_planner::HectorExplorationPlanner::p_min_frontier_size_ |
|
private |
int hector_exploration_planner::HectorExplorationPlanner::p_min_obstacle_dist_ |
|
private |
double hector_exploration_planner::HectorExplorationPlanner::p_observation_pose_desired_dist_ |
|
private |
double hector_exploration_planner::HectorExplorationPlanner::p_obstacle_cutoff_dist_ |
|
private |
bool hector_exploration_planner::HectorExplorationPlanner::p_plan_in_unknown_ |
|
private |
double hector_exploration_planner::HectorExplorationPlanner::p_same_frontier_dist_ |
|
private |
bool hector_exploration_planner::HectorExplorationPlanner::p_use_inflated_obs_ |
|
private |
bool hector_exploration_planner::HectorExplorationPlanner::p_use_observation_pose_calculation_ |
|
private |
ros::ServiceClient hector_exploration_planner::HectorExplorationPlanner::path_service_client_ |
|
private |
int hector_exploration_planner::HectorExplorationPlanner::previous_goal_ |
|
private |
ros::Publisher hector_exploration_planner::HectorExplorationPlanner::visualization_pub_ |
|
private |
The documentation for this class was generated from the following files: