Skip to content

Commit

Permalink
Initialize the controller manager services after initializing resourc…
Browse files Browse the repository at this point in the history
…e manager (#1271)

(cherry picked from commit bdad009)

# Conflicts:
#	controller_manager/src/controller_manager.cpp
  • Loading branch information
saikishor authored and mergify[bot] committed Jan 8, 2024
1 parent fc4d31e commit 1e923b9
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
16 changes: 14 additions & 2 deletions controller_manager/src/controller_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -280,13 +280,17 @@ ControllerManager::ControllerManager(
get_logger(),
"[Deprecated] Passing the robot description parameter directly to the control_manager node "
"is deprecated. Use '~/robot_description' topic from 'robot_state_publisher' instead.");
<<<<<<< HEAD
init_resource_manager(robot_description);
=======
init_resource_manager(robot_description_);
init_services();
>>>>>>> bdad009 (Initialize the controller manager services after initializing resource manager (#1271))
}

diagnostics_updater_.setHardwareID("ros2_control");
diagnostics_updater_.add(
"Controllers Activity", this, &ControllerManager::controller_activity_diagnostic_callback);
init_services();
}

ControllerManager::ControllerManager(
Expand All @@ -308,12 +312,15 @@ ControllerManager::ControllerManager(
RCLCPP_WARN(get_logger(), "'update_rate' parameter not set, using default value.");
}

if (resource_manager_->is_urdf_already_loaded())
{
init_services();
}
subscribe_to_robot_description_topic();

diagnostics_updater_.setHardwareID("ros2_control");
diagnostics_updater_.add(
"Controllers Activity", this, &ControllerManager::controller_activity_diagnostic_callback);
init_services();
}

void ControllerManager::subscribe_to_robot_description_topic()
Expand Down Expand Up @@ -345,7 +352,12 @@ void ControllerManager::robot_description_callback(const std_msgs::msg::String &
"description file.");
return;
}
<<<<<<< HEAD
init_resource_manager(robot_description.data.c_str());
=======
init_resource_manager(robot_description_);
init_services();
>>>>>>> bdad009 (Initialize the controller manager services after initializing resource manager (#1271))
}
catch (std::runtime_error & e)
{
Expand Down
12 changes: 9 additions & 3 deletions controller_manager/test/test_hardware_management_srvs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,9 @@ class TestControllerManagerHWManagementSrvs : public TestControllerManagerSrvs
"Unable to initialize resource manager, no robot description found.");
}

cm_->init_resource_manager(robot_description);
auto msg = std_msgs::msg::String();
msg.data = robot_description_;
cm_->robot_description_callback(msg);

SetUpSrvsCMExecutor();
}
Expand Down Expand Up @@ -383,7 +385,9 @@ class TestControllerManagerHWManagementSrvsWithoutParams
"Unable to initialize resource manager, no robot description found.");
}

cm_->init_resource_manager(robot_description);
auto msg = std_msgs::msg::String();
msg.data = robot_description_;
cm_->robot_description_callback(msg);

SetUpSrvsCMExecutor();
}
Expand Down Expand Up @@ -440,7 +444,9 @@ class TestControllerManagerHWManagementSrvsOldParameters
"Unable to initialize resource manager, no robot description found.");
}

cm_->init_resource_manager(robot_description);
auto msg = std_msgs::msg::String();
msg.data = robot_description_;
cm_->robot_description_callback(msg);

SetUpSrvsCMExecutor();
}
Expand Down

0 comments on commit 1e923b9

Please sign in to comment.