tu-darmstadt-ros-pkg / hector_navigation

hector_navigation provides packages related to navigation of unmanned vehicles in USAR environments.
125 stars 90 forks source link

Frame of published goal_pose and observation_pose #34

Open sayali-purdue opened 3 years ago

sayali-purdue commented 3 years ago

The HectorExplorationPlanner::makePlan function publishes original_goal on 'goal_pose' topic and adjusted_goal on 'observation_pose' topic. However, the frame info of these published poses (i.e., frame_id field) is not always available:

  1. the function takes original_goal as input and assumes it to be in 'map' frame. To make the code more robust, it should check for the frame of original_goal before computing the plan.
  2. HectorExplorationPlanner class computes adjusted_goal and sets its frame to be 'map' in one program execution path. In other execution paths, adjusted_goal is same as original_goal whose frame_id can be empty. So, the frame of adjusted_goal is not always set. Moreover, the hard-coded 'map' values assumes that costmap global frame is set to 'map' in the config file.

I think checking and specifying frame info would make the code more robust and readable for its users, as well as would force developers to set the frame_id of the goal pose before passing it to makePlan(..) and thus avoid potential issues in their applications.

Would really appreciate if you could explain your perspective on not enforcing the frame info check and its effects/usefulness for the other developers who use this application node.

Thank you!