Skip to content
Snippets Groups Projects
Commit 7e6bf6dc authored by Malte Roosen's avatar Malte Roosen
Browse files

Introduce parameter to change behaviour after collision avoidance

parent 734e23c5
No related branches found
No related tags found
1 merge request!1Feature/stop navigation on collision
...@@ -271,6 +271,10 @@ class HomerNavigationNode { ...@@ -271,6 +271,10 @@ class HomerNavigationNode {
* check_path_max_distance to robot */ * check_path_max_distance to robot */
float m_check_path_max_distance; float m_check_path_max_distance;
/** do not replan if lisa avoids an obstacle, instead send target
* unreachable*/
bool m_no_replanning_on_collision;
bool m_avoided_collision; bool m_avoided_collision;
float m_min_turn_angle; float m_min_turn_angle;
......
...@@ -97,6 +97,8 @@ void HomerNavigationNode::loadParameters() { ...@@ -97,6 +97,8 @@ void HomerNavigationNode::loadParameters() {
m_collision_distance_near_target, (float)0.2); m_collision_distance_near_target, (float)0.2);
ros::param::param("/homer_navigation/backward_collision_distance", ros::param::param("/homer_navigation/backward_collision_distance",
m_backward_collision_distance, (float)0.5); m_backward_collision_distance, (float)0.5);
ros::param::param("/homer_navigation/no_replanning_on_collision",
m_no_replanning_on_collision, (bool)false);
// cmd_vel config values // cmd_vel config values
ros::param::param("/homer_navigation/min_turn_angle", m_min_turn_angle, ros::param::param("/homer_navigation/min_turn_angle", m_min_turn_angle,
...@@ -266,6 +268,13 @@ void HomerNavigationNode::startNavigation() { ...@@ -266,6 +268,13 @@ void HomerNavigationNode::startNavigation() {
targetPositionReached(); targetPositionReached();
return; return;
} }
if (m_initial_path_reaches_target && m_no_replanning_on_collision) {
ROS_INFO_STREAM(
"Collision avoided and option no_replanning_on_collision is set.");
ROS_INFO_STREAM("Sending target unreachable.");
sendTargetUnreachableMsg(
homer_mapnav_msgs::TargetUnreachable::LASER_OBSTACLE);
}
ROS_INFO_STREAM("Distance to target still too large (" ROS_INFO_STREAM("Distance to target still too large ("
<< m_distance_to_target << m_distance_to_target
<< "m; requested: " << m_desired_distance << "m)"); << "m; requested: " << m_desired_distance << "m)");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment