diff --git a/scripts/ros2_control/setup-controller-package.bash b/scripts/ros2_control/setup-controller-package.bash
index 764a6092..08d24b03 100755
--- a/scripts/ros2_control/setup-controller-package.bash
+++ b/scripts/ros2_control/setup-controller-package.bash
@@ -183,6 +183,7 @@ for SED_FILE in "${FILES_TO_SED[@]}"; do
sed -i "s/TEMPLATES__ROS2_CONTROL__CONTROLLER__DUMMY_PACKAGE_NAMESPACE/${PKG_NAME^^}/g" $SED_FILE # package name for include guard
sed -i "s/TEMPLATES__ROS2_CONTROL__VISIBILITY/${PKG_NAME^^}__VISIBILITY/g" $SED_FILE # visibility defines
sed -i "s/dummy_package_namespace/${PKG_NAME}/g" $SED_FILE # package name for includes
+ sed -i "s/dummy_library_path/${FILE_NAME}/g" $SED_FILE # library path for pluginlib
sed -i "s/dummy_controller/${FILE_NAME}/g" $SED_FILE # file name
sed -i "s/dummy_chainable_controller/${FILE_NAME}/g" $SED_FILE # file name
sed -i "s/DUMMY_CONTROLLER/${FILE_NAME^^}/g" $SED_FILE # file name for include guard
@@ -355,11 +356,11 @@ if [[ "$package_configured" == "no" ]]; then
for DEP_PKG in "${DEP_PKGS[@]}"; do
# package.xml
- if `grep -q "${DEP_PKG}" package.xml`; then
+ if grep -q "${DEP_PKG}" package.xml; then
echo "'$DEP_PKG' is already listed in package.xml"
else
append_to_string="generate_parameter_library<\/build_depend>"
- sed -i "s/$append_to_string/$append_to_string\\n\\n ${DEP_PKG}<\/depend>/g" package.xml
+ sed -i "s/$append_to_string/$append_to_string\\n ${DEP_PKG}<\/depend>/g" package.xml
fi
done
fi
@@ -371,19 +372,19 @@ TEST_DEP_PKGS=("ros2_control_test_assets" "hardware_interface" "controller_manag
for DEP_PKG in "${TEST_DEP_PKGS[@]}"; do
# CMakeLists.txt
- if `grep -q " find_package(${DEP_PKG} REQUIRED)" CMakeLists.txt`; then
+ if grep -q " find_package(${DEP_PKG} REQUIRED)" CMakeLists.txt; then
echo "'$DEP_PKG' is already listed in CMakeLists.txt"
else
- append_to_string="ament_lint_auto_find_test_dependencies()"
+ append_to_string="if(BUILD_TESTING)"
sed -i "s/$append_to_string/$append_to_string\\n find_package(${DEP_PKG} REQUIRED)/g" CMakeLists.txt
fi
# package.xml
- if `grep -q "${DEP_PKG}" package.xml`; then
+ if grep -q "${DEP_PKG}" package.xml; then
echo "'$DEP_PKG' is already listed in package.xml"
else
- append_to_string="ament_lint_common<\/test_depend>"
- sed -i "s/$append_to_string/$append_to_string\\n ${DEP_PKG}<\/test_depend>/g" package.xml
+ append_to_string=""
+ sed -i "s/$append_to_string/${DEP_PKG}<\/test_depend>\\n $append_to_string/g" package.xml
fi
done
diff --git a/templates/ros2_control/controller/dummy_chainable_controller.cpp b/templates/ros2_control/controller/dummy_chainable_controller.cpp
index bbd10603..36dd0371 100644
--- a/templates/ros2_control/controller/dummy_chainable_controller.cpp
+++ b/templates/ros2_control/controller/dummy_chainable_controller.cpp
@@ -245,7 +245,8 @@ controller_interface::CallbackReturn DummyClassName::on_deactivate(
return controller_interface::CallbackReturn::SUCCESS;
}
-controller_interface::return_type DummyClassName::update_reference_from_subscribers()
+controller_interface::return_type DummyClassName::update_reference_from_subscribers(
+ const rclcpp::Time & /*time*/, const rclcpp::Duration & /*period*/)
{
auto current_ref = input_ref_.readFromRT();
diff --git a/templates/ros2_control/controller/dummy_chainable_controller_pluginlib.xml b/templates/ros2_control/controller/dummy_chainable_controller_pluginlib.xml
index 52768f5a..9b8ccf31 100644
--- a/templates/ros2_control/controller/dummy_chainable_controller_pluginlib.xml
+++ b/templates/ros2_control/controller/dummy_chainable_controller_pluginlib.xml
@@ -18,7 +18,7 @@ Source of this file are templates in
[RosTeamWorkspace](https://github.com/StoglRobotics/ros_team_workspace) repository.
-->
-
+
diff --git a/templates/ros2_control/controller/dummy_package_namespace/dummy_chainable_controller.hpp b/templates/ros2_control/controller/dummy_package_namespace/dummy_chainable_controller.hpp
index aaa47947..772bdcba 100644
--- a/templates/ros2_control/controller/dummy_package_namespace/dummy_chainable_controller.hpp
+++ b/templates/ros2_control/controller/dummy_package_namespace/dummy_chainable_controller.hpp
@@ -80,7 +80,8 @@ class DummyClassName : public controller_interface::ChainableControllerInterface
const rclcpp_lifecycle::State & previous_state) override;
TEMPLATES__ROS2_CONTROL__VISIBILITY_PUBLIC
- controller_interface::return_type update_reference_from_subscribers() override;
+ controller_interface::return_type update_reference_from_subscribers(
+ const rclcpp::Time & time, const rclcpp::Duration & period) override;
TEMPLATES__ROS2_CONTROL__VISIBILITY_PUBLIC
controller_interface::return_type update_and_write_commands(
diff --git a/templates/ros2_control/controller/test_dummy_chainable_controller.hpp b/templates/ros2_control/controller/test_dummy_chainable_controller.hpp
index 208656e4..345b89e9 100644
--- a/templates/ros2_control/controller/test_dummy_chainable_controller.hpp
+++ b/templates/ros2_control/controller/test_dummy_chainable_controller.hpp
@@ -17,8 +17,8 @@
// [RosTeamWorkspace](https://github.com/StoglRobotics/ros_team_workspace) repository.
//
-#ifndef TEMPLATES__ROS2_CONTROL__CONTROLLER__TEST_DUMMY_CHAINABLE_CONTROLLER_HPP_
-#define TEMPLATES__ROS2_CONTROL__CONTROLLER__TEST_DUMMY_CHAINABLE_CONTROLLER_HPP_
+#ifndef TEST_DUMMY_CHAINABLE_CONTROLLER_HPP_
+#define TEST_DUMMY_CHAINABLE_CONTROLLER_HPP_
#include
#include
@@ -128,7 +128,7 @@ class DummyClassNameFixture : public ::testing::Test
command_publisher_node_ = std::make_shared("command_publisher");
command_publisher_ = command_publisher_node_->create_publisher(
- "/test_dummy_controller/commands", rclcpp::SystemDefaultsQoS());
+ "/test_dummy_controller/reference", rclcpp::SystemDefaultsQoS());
service_caller_node_ = std::make_shared("service_caller");
slow_control_service_client_ = service_caller_node_->create_client(
@@ -142,7 +142,12 @@ class DummyClassNameFixture : public ::testing::Test
protected:
void SetUpController(const std::string controller_name = "test_dummy_controller")
{
- ASSERT_EQ(controller_->init(controller_name), controller_interface::return_type::OK);
+ auto options = rclcpp::NodeOptions()
+ .allow_undeclared_parameters(false)
+ .automatically_declare_parameters_from_overrides(false);
+ ASSERT_EQ(
+ controller_->init(controller_name, "", 0, "", options),
+ controller_interface::return_type::OK);
std::vector command_ifs;
command_itfs_.reserve(joint_command_values_.size());
@@ -278,4 +283,4 @@ class DummyClassNameFixture : public ::testing::Test
rclcpp::Client::SharedPtr slow_control_service_client_;
};
-#endif // TEMPLATES__ROS2_CONTROL__CONTROLLER__TEST_DUMMY_CHAINABLE_CONTROLLER_HPP_
+#endif // TEST_DUMMY_CHAINABLE_CONTROLLER_HPP_
diff --git a/templates/ros2_control/controller/test_dummy_controller.hpp b/templates/ros2_control/controller/test_dummy_controller.hpp
index 4fd9e2fe..bd7c54dc 100644
--- a/templates/ros2_control/controller/test_dummy_controller.hpp
+++ b/templates/ros2_control/controller/test_dummy_controller.hpp
@@ -118,7 +118,7 @@ class DummyClassNameFixture : public ::testing::Test
command_publisher_node_ = std::make_shared("command_publisher");
command_publisher_ = command_publisher_node_->create_publisher(
- "/test_dummy_controller/commands", rclcpp::SystemDefaultsQoS());
+ "/test_dummy_controller/reference", rclcpp::SystemDefaultsQoS());
service_caller_node_ = std::make_shared("service_caller");
slow_control_service_client_ = service_caller_node_->create_client(
@@ -132,7 +132,12 @@ class DummyClassNameFixture : public ::testing::Test
protected:
void SetUpController(const std::string controller_name = "test_dummy_controller")
{
- ASSERT_EQ(controller_->init(controller_name), controller_interface::return_type::OK);
+ auto options = rclcpp::NodeOptions()
+ .allow_undeclared_parameters(false)
+ .automatically_declare_parameters_from_overrides(false);
+ ASSERT_EQ(
+ controller_->init(controller_name, "", 0, "", options),
+ controller_interface::return_type::OK);
std::vector command_ifs;
command_itfs_.reserve(joint_command_values_.size());