From 6089c45715664701cc5931f24a0e688026b56b2e Mon Sep 17 00:00:00 2001 From: Dmitri Date: Mon, 6 Sep 2021 20:04:44 -0700 Subject: [PATCH 1/9] added dt to controller interface and controller manager, and some rough changes to the tests --- .../controller_interface/controller_interface.hpp | 2 +- .../test/test_controller_with_options.hpp | 2 +- .../include/controller_manager/controller_manager.hpp | 2 +- controller_manager/src/controller_manager.cpp | 4 ++-- controller_manager/src/ros2_control_node.cpp | 2 +- .../test/controller_manager_test_common.hpp | 2 +- .../test/test_controller/test_controller.cpp | 2 +- .../test/test_controller/test_controller.hpp | 2 +- .../test_controller_failed_init.cpp | 2 +- .../test_controller_failed_init.hpp | 2 +- controller_manager/test/test_controller_manager.cpp | 10 +++++----- .../test/test_controller_manager_srvs.cpp | 4 ++-- .../test_controller_with_interfaces.cpp | 2 +- .../test_controller_with_interfaces.hpp | 2 +- controller_manager/test/test_spawner_unspawner.cpp | 2 +- 15 files changed, 21 insertions(+), 21 deletions(-) diff --git a/controller_interface/include/controller_interface/controller_interface.hpp b/controller_interface/include/controller_interface/controller_interface.hpp index 23e215f1db..ba7ab587f6 100644 --- a/controller_interface/include/controller_interface/controller_interface.hpp +++ b/controller_interface/include/controller_interface/controller_interface.hpp @@ -95,7 +95,7 @@ class ControllerInterface : public rclcpp_lifecycle::node_interfaces::LifecycleN virtual return_type init(const std::string & controller_name, rclcpp::NodeOptions & node_options); CONTROLLER_INTERFACE_PUBLIC - virtual return_type update() = 0; + virtual return_type update(rclcpp::Duration dt) = 0; CONTROLLER_INTERFACE_PUBLIC std::shared_ptr get_node(); diff --git a/controller_interface/test/test_controller_with_options.hpp b/controller_interface/test/test_controller_with_options.hpp index 39174e87d8..18b30e4912 100644 --- a/controller_interface/test/test_controller_with_options.hpp +++ b/controller_interface/test/test_controller_with_options.hpp @@ -63,7 +63,7 @@ class ControllerWithOptions : public controller_interface::ControllerInterface controller_interface::interface_configuration_type::NONE}; } - controller_interface::return_type update() override + controller_interface::return_type update(rclcpp::Duration dt) override { return controller_interface::return_type::OK; } diff --git a/controller_manager/include/controller_manager/controller_manager.hpp b/controller_manager/include/controller_manager/controller_manager.hpp index 3139571e79..003ff686af 100644 --- a/controller_manager/include/controller_manager/controller_manager.hpp +++ b/controller_manager/include/controller_manager/controller_manager.hpp @@ -129,7 +129,7 @@ class ControllerManager : public rclcpp::Node void read(); CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update(); + controller_interface::return_type update(rclcpp::Duration dt); CONTROLLER_MANAGER_PUBLIC void write(); diff --git a/controller_manager/src/controller_manager.cpp b/controller_manager/src/controller_manager.cpp index 4f1c8ccb0e..309e8ba8c0 100644 --- a/controller_manager/src/controller_manager.cpp +++ b/controller_manager/src/controller_manager.cpp @@ -1125,7 +1125,7 @@ std::vector ControllerManager::get_controller_names() void ControllerManager::read() { resource_manager_->read(); } -controller_interface::return_type ControllerManager::update() +controller_interface::return_type ControllerManager::update(rclcpp::Duration dt) { std::vector & rt_controller_list = rt_controllers_wrapper_.update_and_get_used_by_rt_list(); @@ -1137,7 +1137,7 @@ controller_interface::return_type ControllerManager::update() // https://github.com/ros-controls/ros2_control/issues/153 if (is_controller_running(*loaded_controller.c)) { - auto controller_ret = loaded_controller.c->update(); + auto controller_ret = loaded_controller.c->update(dt); if (controller_ret != controller_interface::return_type::OK) { ret = controller_ret; diff --git a/controller_manager/src/ros2_control_node.cpp b/controller_manager/src/ros2_control_node.cpp index 11e550e5b6..2617e6d7ff 100644 --- a/controller_manager/src/ros2_control_node.cpp +++ b/controller_manager/src/ros2_control_node.cpp @@ -52,7 +52,7 @@ int main(int argc, char ** argv) { std::chrono::system_clock::time_point begin = std::chrono::system_clock::now(); cm->read(); - cm->update(); + cm->update(rclcpp::Duration::from_nanoseconds(1000000000 / update_rate)); cm->write(); std::chrono::system_clock::time_point end = std::chrono::system_clock::now(); std::this_thread::sleep_for(std::max( diff --git a/controller_manager/test/controller_manager_test_common.hpp b/controller_manager/test/controller_manager_test_common.hpp index e325f8c6f9..855f38cc98 100644 --- a/controller_manager/test/controller_manager_test_common.hpp +++ b/controller_manager/test/controller_manager_test_common.hpp @@ -63,7 +63,7 @@ class ControllerManagerFixture : public ::testing::Test updater_ = std::thread([&](void) -> void { while (run_updater_) { - cm_->update(); + cm_->update(rclcpp::Duration::from_nanoseconds(100000000)); std::this_thread::sleep_for(std::chrono::milliseconds(10)); } }); diff --git a/controller_manager/test/test_controller/test_controller.cpp b/controller_manager/test/test_controller/test_controller.cpp index 3e894426ed..d24e6731c6 100644 --- a/controller_manager/test/test_controller/test_controller.cpp +++ b/controller_manager/test/test_controller/test_controller.cpp @@ -27,7 +27,7 @@ TestController::TestController() { } -controller_interface::return_type TestController::update() +controller_interface::return_type TestController::update(rclcpp::Duration dt) { ++internal_counter; return controller_interface::return_type::OK; diff --git a/controller_manager/test/test_controller/test_controller.hpp b/controller_manager/test/test_controller/test_controller.hpp index cdb6124507..ff5620ee26 100644 --- a/controller_manager/test/test_controller/test_controller.hpp +++ b/controller_manager/test/test_controller/test_controller.hpp @@ -49,7 +49,7 @@ class TestController : public controller_interface::ControllerInterface } CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update() override; + controller_interface::return_type update(rclcpp::Duration dt) override; CONTROLLER_MANAGER_PUBLIC rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_configure( diff --git a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp index 9159571315..9ed7b02abf 100644 --- a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp +++ b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp @@ -31,7 +31,7 @@ controller_interface::return_type TestControllerFailedInit::init( return controller_interface::return_type::ERROR; } -controller_interface::return_type TestControllerFailedInit::update() +controller_interface::return_type TestControllerFailedInit::update(rclcpp::Duration dt) { return controller_interface::return_type::OK; } diff --git a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp index 005fb8e723..e3632c45be 100644 --- a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp +++ b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp @@ -54,7 +54,7 @@ class TestControllerFailedInit : public controller_interface::ControllerInterfac } CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update() override; + controller_interface::return_type update(rclcpp::Duration dt) override; }; } // namespace test_controller_failed_init diff --git a/controller_manager/test/test_controller_manager.cpp b/controller_manager/test/test_controller_manager.cpp index 7c03bce87f..1f7418515a 100644 --- a/controller_manager/test/test_controller_manager.cpp +++ b/controller_manager/test/test_controller_manager.cpp @@ -39,7 +39,7 @@ TEST_F(TestControllerManager, controller_lifecycle) EXPECT_EQ(1u, cm_->get_loaded_controllers().size()); EXPECT_EQ(2, test_controller.use_count()); - EXPECT_EQ(controller_interface::return_type::OK, cm_->update()); + EXPECT_EQ(controller_interface::return_type::OK, cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); EXPECT_EQ(0u, test_controller->internal_counter) << "Update should not reach an unconfigured controller"; @@ -48,7 +48,7 @@ TEST_F(TestControllerManager, controller_lifecycle) // configure controller cm_->configure_controller(test_controller::TEST_CONTROLLER_NAME); - EXPECT_EQ(controller_interface::return_type::OK, cm_->update()); + EXPECT_EQ(controller_interface::return_type::OK, cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); EXPECT_EQ(0u, test_controller->internal_counter) << "Controller is not started"; EXPECT_EQ(lifecycle_msgs::msg::State::PRIMARY_STATE_INACTIVE, test_controller->get_state().id()); @@ -63,7 +63,7 @@ TEST_F(TestControllerManager, controller_lifecycle) ASSERT_EQ(std::future_status::timeout, switch_future.wait_for(std::chrono::milliseconds(100))) << "switch_controller should be blocking until next update cycle"; - EXPECT_EQ(controller_interface::return_type::OK, cm_->update()); + EXPECT_EQ(controller_interface::return_type::OK, cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); EXPECT_EQ(0u, test_controller->internal_counter) << "Controller is started at the end of update"; { ControllerManagerRunner cm_runner(this); @@ -71,7 +71,7 @@ TEST_F(TestControllerManager, controller_lifecycle) } EXPECT_EQ(lifecycle_msgs::msg::State::PRIMARY_STATE_ACTIVE, test_controller->get_state().id()); - EXPECT_EQ(controller_interface::return_type::OK, cm_->update()); + EXPECT_EQ(controller_interface::return_type::OK, cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); EXPECT_GE(test_controller->internal_counter, 1u); auto last_internal_counter = test_controller->internal_counter; @@ -85,7 +85,7 @@ TEST_F(TestControllerManager, controller_lifecycle) ASSERT_EQ(std::future_status::timeout, switch_future.wait_for(std::chrono::milliseconds(100))) << "switch_controller should be blocking until next update cycle"; - EXPECT_EQ(controller_interface::return_type::OK, cm_->update()); + EXPECT_EQ(controller_interface::return_type::OK, cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); EXPECT_EQ(last_internal_counter + 1u, test_controller->internal_counter) << "Controller is stopped at the end of update, so it should have done one more update"; { diff --git a/controller_manager/test/test_controller_manager_srvs.cpp b/controller_manager/test/test_controller_manager_srvs.cpp index 0f0197ba9e..f99bb6d339 100644 --- a/controller_manager/test/test_controller_manager_srvs.cpp +++ b/controller_manager/test/test_controller_manager_srvs.cpp @@ -42,7 +42,7 @@ class TestControllerManagerSrvs : public ControllerManagerFixture update_timer_ = cm_->create_wall_timer(std::chrono::milliseconds(10), [&]() { cm_->read(); - cm_->update(); + cm_->update(rclcpp::Duration::from_nanoseconds(100000000)); cm_->write(); }); @@ -69,7 +69,7 @@ class TestControllerManagerSrvs : public ControllerManagerFixture while (service_executor.spin_until_future_complete(result, 50ms) != rclcpp::FutureReturnCode::SUCCESS) { - cm_->update(); + cm_->update(rclcpp::Duration::from_nanoseconds(100000000)); } } else diff --git a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp index 439112699c..4b6848645d 100644 --- a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp +++ b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp @@ -26,7 +26,7 @@ TestControllerWithInterfaces::TestControllerWithInterfaces() { } -controller_interface::return_type TestControllerWithInterfaces::update() +controller_interface::return_type TestControllerWithInterfaces::update(rclcpp::Duration dt) { return controller_interface::return_type::OK; } diff --git a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp index 7c44afeba4..1505743d03 100644 --- a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp +++ b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp @@ -51,7 +51,7 @@ class TestControllerWithInterfaces : public controller_interface::ControllerInte } CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update() override; + controller_interface::return_type update(rclcpp::Duration dt) override; CONTROLLER_MANAGER_PUBLIC rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_configure( diff --git a/controller_manager/test/test_spawner_unspawner.cpp b/controller_manager/test/test_spawner_unspawner.cpp index 078ef8bd31..f59d143b5a 100644 --- a/controller_manager/test/test_spawner_unspawner.cpp +++ b/controller_manager/test/test_spawner_unspawner.cpp @@ -36,7 +36,7 @@ class TestLoadController : public ControllerManagerFixture update_timer_ = cm_->create_wall_timer(std::chrono::milliseconds(10), [&]() { cm_->read(); - cm_->update(); + cm_->update(rclcpp::Duration::from_nanoseconds(100000000)); cm_->write(); }); From 4582de458a29fa41f4b0faea41f0c7549c449109 Mon Sep 17 00:00:00 2001 From: Dmitri Date: Tue, 7 Sep 2021 11:39:01 -0400 Subject: [PATCH 2/9] broke up statements to keep line length < 100 --- .../test/test_controller_manager.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/controller_manager/test/test_controller_manager.cpp b/controller_manager/test/test_controller_manager.cpp index 1f7418515a..edd3c27665 100644 --- a/controller_manager/test/test_controller_manager.cpp +++ b/controller_manager/test/test_controller_manager.cpp @@ -39,7 +39,8 @@ TEST_F(TestControllerManager, controller_lifecycle) EXPECT_EQ(1u, cm_->get_loaded_controllers().size()); EXPECT_EQ(2, test_controller.use_count()); - EXPECT_EQ(controller_interface::return_type::OK, cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); + EXPECT_EQ(controller_interface::return_type::OK, + cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); EXPECT_EQ(0u, test_controller->internal_counter) << "Update should not reach an unconfigured controller"; @@ -48,7 +49,8 @@ TEST_F(TestControllerManager, controller_lifecycle) // configure controller cm_->configure_controller(test_controller::TEST_CONTROLLER_NAME); - EXPECT_EQ(controller_interface::return_type::OK, cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); + EXPECT_EQ(controller_interface::return_type::OK, + cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); EXPECT_EQ(0u, test_controller->internal_counter) << "Controller is not started"; EXPECT_EQ(lifecycle_msgs::msg::State::PRIMARY_STATE_INACTIVE, test_controller->get_state().id()); @@ -63,7 +65,8 @@ TEST_F(TestControllerManager, controller_lifecycle) ASSERT_EQ(std::future_status::timeout, switch_future.wait_for(std::chrono::milliseconds(100))) << "switch_controller should be blocking until next update cycle"; - EXPECT_EQ(controller_interface::return_type::OK, cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); + EXPECT_EQ(controller_interface::return_type::OK, + cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); EXPECT_EQ(0u, test_controller->internal_counter) << "Controller is started at the end of update"; { ControllerManagerRunner cm_runner(this); @@ -71,7 +74,8 @@ TEST_F(TestControllerManager, controller_lifecycle) } EXPECT_EQ(lifecycle_msgs::msg::State::PRIMARY_STATE_ACTIVE, test_controller->get_state().id()); - EXPECT_EQ(controller_interface::return_type::OK, cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); + EXPECT_EQ(controller_interface::return_type::OK, + cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); EXPECT_GE(test_controller->internal_counter, 1u); auto last_internal_counter = test_controller->internal_counter; @@ -85,7 +89,8 @@ TEST_F(TestControllerManager, controller_lifecycle) ASSERT_EQ(std::future_status::timeout, switch_future.wait_for(std::chrono::milliseconds(100))) << "switch_controller should be blocking until next update cycle"; - EXPECT_EQ(controller_interface::return_type::OK, cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); + EXPECT_EQ(controller_interface::return_type::OK, + cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); EXPECT_EQ(last_internal_counter + 1u, test_controller->internal_counter) << "Controller is stopped at the end of update, so it should have done one more update"; { From e1ef652ae043d7f78ebe6d1f35e6da34f9d4b740 Mon Sep 17 00:00:00 2001 From: Dmitri Date: Tue, 7 Sep 2021 13:19:56 -0400 Subject: [PATCH 3/9] undid messed up line endings --- .../test_controller_failed_init.hpp | 130 +++++++++--------- .../test_controller_with_interfaces.cpp | 116 ++++++++-------- 2 files changed, 123 insertions(+), 123 deletions(-) diff --git a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp index 4de2631d97..998871955d 100644 --- a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp +++ b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp @@ -1,65 +1,65 @@ -// Copyright 2021 ros2_control development team -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef TEST_CONTROLLER_FAILED_INIT__TEST_CONTROLLER_FAILED_INIT_HPP_ -#define TEST_CONTROLLER_FAILED_INIT__TEST_CONTROLLER_FAILED_INIT_HPP_ - -#include -#include - -#include "controller_interface/visibility_control.h" -#include "controller_manager/controller_manager.hpp" - -namespace test_controller_failed_init -{ -// indicating the node name under which the controller node -// is being loaded. -constexpr char TEST_CONTROLLER_NAME[] = "test_controller_failed_init_name"; -// corresponds to the name listed within the pluginlib xml -constexpr char TEST_CONTROLLER_FAILED_INIT_CLASS_NAME[] = - "controller_manager/test_controller_failed_init"; -class TestControllerFailedInit : public controller_interface::ControllerInterface -{ -public: - CONTROLLER_MANAGER_PUBLIC - TestControllerFailedInit(); - - CONTROLLER_MANAGER_PUBLIC - virtual ~TestControllerFailedInit() = default; - - CONTROLLER_INTERFACE_PUBLIC - controller_interface::return_type init(const std::string & controller_name) override; - - controller_interface::InterfaceConfiguration command_interface_configuration() const override - { - return controller_interface::InterfaceConfiguration{ - controller_interface::interface_configuration_type::NONE}; - } - - controller_interface::InterfaceConfiguration state_interface_configuration() const override - { - return controller_interface::InterfaceConfiguration{ - controller_interface::interface_configuration_type::NONE}; - } - - CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update(rclcpp::Duration dt) override; - - CONTROLLER_MANAGER_PUBLIC - rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_init() override; -}; - -} // namespace test_controller_failed_init - -#endif // TEST_CONTROLLER_FAILED_INIT__TEST_CONTROLLER_FAILED_INIT_HPP_ +// Copyright 2021 ros2_control development team +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef TEST_CONTROLLER_FAILED_INIT__TEST_CONTROLLER_FAILED_INIT_HPP_ +#define TEST_CONTROLLER_FAILED_INIT__TEST_CONTROLLER_FAILED_INIT_HPP_ + +#include +#include + +#include "controller_interface/visibility_control.h" +#include "controller_manager/controller_manager.hpp" + +namespace test_controller_failed_init +{ +// indicating the node name under which the controller node +// is being loaded. +constexpr char TEST_CONTROLLER_NAME[] = "test_controller_failed_init_name"; +// corresponds to the name listed within the pluginlib xml +constexpr char TEST_CONTROLLER_FAILED_INIT_CLASS_NAME[] = + "controller_manager/test_controller_failed_init"; +class TestControllerFailedInit : public controller_interface::ControllerInterface +{ +public: + CONTROLLER_MANAGER_PUBLIC + TestControllerFailedInit(); + + CONTROLLER_MANAGER_PUBLIC + virtual ~TestControllerFailedInit() = default; + + CONTROLLER_INTERFACE_PUBLIC + controller_interface::return_type init(const std::string & controller_name) override; + + controller_interface::InterfaceConfiguration command_interface_configuration() const override + { + return controller_interface::InterfaceConfiguration{ + controller_interface::interface_configuration_type::NONE}; + } + + controller_interface::InterfaceConfiguration state_interface_configuration() const override + { + return controller_interface::InterfaceConfiguration{ + controller_interface::interface_configuration_type::NONE}; + } + + CONTROLLER_MANAGER_PUBLIC + controller_interface::return_type update(rclcpp::Duration dt) override; + + CONTROLLER_MANAGER_PUBLIC + rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_init() override; +}; + +} // namespace test_controller_failed_init + +#endif // TEST_CONTROLLER_FAILED_INIT__TEST_CONTROLLER_FAILED_INIT_HPP_ diff --git a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp index 816cb865d8..eb95bf90a6 100644 --- a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp +++ b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp @@ -1,58 +1,58 @@ -// Copyright 2021 Department of Engineering Cybernetics, NTNU. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "test_controller_with_interfaces.hpp" - -#include -#include - -#include "lifecycle_msgs/msg/transition.hpp" - -namespace test_controller_with_interfaces -{ -TestControllerWithInterfaces::TestControllerWithInterfaces() -: controller_interface::ControllerInterface() -{ -} - -rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn -TestControllerWithInterfaces::on_init() -{ - return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS; -} - -controller_interface::return_type TestControllerWithInterfaces::update(rclcpp::Duration dt) -{ - return controller_interface::return_type::OK; -} - -rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn -TestControllerWithInterfaces::on_configure(const rclcpp_lifecycle::State & /*previous_state&*/) -{ - return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS; -} - -rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn -TestControllerWithInterfaces::on_cleanup(const rclcpp_lifecycle::State & /*previous_state*/) -{ - return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS; -} - -} // namespace test_controller_with_interfaces - -#include "pluginlib/class_list_macros.hpp" - -PLUGINLIB_EXPORT_CLASS( - test_controller_with_interfaces::TestControllerWithInterfaces, - controller_interface::ControllerInterface) +// Copyright 2021 Department of Engineering Cybernetics, NTNU. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "test_controller_with_interfaces.hpp" + +#include +#include + +#include "lifecycle_msgs/msg/transition.hpp" + +namespace test_controller_with_interfaces +{ +TestControllerWithInterfaces::TestControllerWithInterfaces() +: controller_interface::ControllerInterface() +{ +} + +rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn +TestControllerWithInterfaces::on_init() +{ + return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS; +} + +controller_interface::return_type TestControllerWithInterfaces::update(rclcpp::Duration dt) +{ + return controller_interface::return_type::OK; +} + +rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn +TestControllerWithInterfaces::on_configure(const rclcpp_lifecycle::State & /*previous_state&*/) +{ + return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS; +} + +rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn +TestControllerWithInterfaces::on_cleanup(const rclcpp_lifecycle::State & /*previous_state*/) +{ + return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS; +} + +} // namespace test_controller_with_interfaces + +#include "pluginlib/class_list_macros.hpp" + +PLUGINLIB_EXPORT_CLASS( + test_controller_with_interfaces::TestControllerWithInterfaces, + controller_interface::ControllerInterface) From 2e81b69c44123d0b92ddd9e1d7d0c205a078f641 Mon Sep 17 00:00:00 2001 From: Dmitri <810523+dignakov@users.noreply.github.com> Date: Tue, 7 Sep 2021 15:16:09 -0700 Subject: [PATCH 4/9] Update controller_manager/src/ros2_control_node.cpp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Denis Štogl --- controller_manager/src/ros2_control_node.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controller_manager/src/ros2_control_node.cpp b/controller_manager/src/ros2_control_node.cpp index 2617e6d7ff..f7b235a029 100644 --- a/controller_manager/src/ros2_control_node.cpp +++ b/controller_manager/src/ros2_control_node.cpp @@ -52,7 +52,7 @@ int main(int argc, char ** argv) { std::chrono::system_clock::time_point begin = std::chrono::system_clock::now(); cm->read(); - cm->update(rclcpp::Duration::from_nanoseconds(1000000000 / update_rate)); + cm->update(rclcpp::Duration::from_seconds(1 / update_rate)); cm->write(); std::chrono::system_clock::time_point end = std::chrono::system_clock::now(); std::this_thread::sleep_for(std::max( From ccfaa7fa13921f1fa788d7d1c978dd9007c387eb Mon Sep 17 00:00:00 2001 From: Dmitri Date: Wed, 8 Sep 2021 11:08:17 -0400 Subject: [PATCH 5/9] switched from using Duration::from_nanoseconds to Duration::from_seconds --- .../test/controller_manager_test_common.hpp | 2 +- controller_manager/test/test_controller_manager.cpp | 10 +++++----- .../test/test_controller_manager_srvs.cpp | 4 ++-- controller_manager/test/test_spawner_unspawner.cpp | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/controller_manager/test/controller_manager_test_common.hpp b/controller_manager/test/controller_manager_test_common.hpp index 855f38cc98..fc905f54eb 100644 --- a/controller_manager/test/controller_manager_test_common.hpp +++ b/controller_manager/test/controller_manager_test_common.hpp @@ -63,7 +63,7 @@ class ControllerManagerFixture : public ::testing::Test updater_ = std::thread([&](void) -> void { while (run_updater_) { - cm_->update(rclcpp::Duration::from_nanoseconds(100000000)); + cm_->update(rclcpp::Duration::from_seconds(0.01)); std::this_thread::sleep_for(std::chrono::milliseconds(10)); } }); diff --git a/controller_manager/test/test_controller_manager.cpp b/controller_manager/test/test_controller_manager.cpp index edd3c27665..6fd5fe4331 100644 --- a/controller_manager/test/test_controller_manager.cpp +++ b/controller_manager/test/test_controller_manager.cpp @@ -40,7 +40,7 @@ TEST_F(TestControllerManager, controller_lifecycle) EXPECT_EQ(2, test_controller.use_count()); EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); + cm_->update(rclcpp::Duration::from_seconds(0.01))); EXPECT_EQ(0u, test_controller->internal_counter) << "Update should not reach an unconfigured controller"; @@ -50,7 +50,7 @@ TEST_F(TestControllerManager, controller_lifecycle) // configure controller cm_->configure_controller(test_controller::TEST_CONTROLLER_NAME); EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); + cm_->update(rclcpp::Duration::from_seconds(0.01))); EXPECT_EQ(0u, test_controller->internal_counter) << "Controller is not started"; EXPECT_EQ(lifecycle_msgs::msg::State::PRIMARY_STATE_INACTIVE, test_controller->get_state().id()); @@ -66,7 +66,7 @@ TEST_F(TestControllerManager, controller_lifecycle) << "switch_controller should be blocking until next update cycle"; EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); + cm_->update(rclcpp::Duration::from_seconds(0.01))); EXPECT_EQ(0u, test_controller->internal_counter) << "Controller is started at the end of update"; { ControllerManagerRunner cm_runner(this); @@ -75,7 +75,7 @@ TEST_F(TestControllerManager, controller_lifecycle) EXPECT_EQ(lifecycle_msgs::msg::State::PRIMARY_STATE_ACTIVE, test_controller->get_state().id()); EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); + cm_->update(rclcpp::Duration::from_seconds(0.01))); EXPECT_GE(test_controller->internal_counter, 1u); auto last_internal_counter = test_controller->internal_counter; @@ -90,7 +90,7 @@ TEST_F(TestControllerManager, controller_lifecycle) << "switch_controller should be blocking until next update cycle"; EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Duration::from_nanoseconds(100000000))); + cm_->update(rclcpp::Duration::from_seconds(0.01))); EXPECT_EQ(last_internal_counter + 1u, test_controller->internal_counter) << "Controller is stopped at the end of update, so it should have done one more update"; { diff --git a/controller_manager/test/test_controller_manager_srvs.cpp b/controller_manager/test/test_controller_manager_srvs.cpp index f99bb6d339..4248c7f6d6 100644 --- a/controller_manager/test/test_controller_manager_srvs.cpp +++ b/controller_manager/test/test_controller_manager_srvs.cpp @@ -42,7 +42,7 @@ class TestControllerManagerSrvs : public ControllerManagerFixture update_timer_ = cm_->create_wall_timer(std::chrono::milliseconds(10), [&]() { cm_->read(); - cm_->update(rclcpp::Duration::from_nanoseconds(100000000)); + cm_->update(rclcpp::Duration::from_seconds(0.01)); cm_->write(); }); @@ -69,7 +69,7 @@ class TestControllerManagerSrvs : public ControllerManagerFixture while (service_executor.spin_until_future_complete(result, 50ms) != rclcpp::FutureReturnCode::SUCCESS) { - cm_->update(rclcpp::Duration::from_nanoseconds(100000000)); + cm_->update(rclcpp::Duration::from_seconds(0.01)); } } else diff --git a/controller_manager/test/test_spawner_unspawner.cpp b/controller_manager/test/test_spawner_unspawner.cpp index f59d143b5a..712f7f1f01 100644 --- a/controller_manager/test/test_spawner_unspawner.cpp +++ b/controller_manager/test/test_spawner_unspawner.cpp @@ -36,7 +36,7 @@ class TestLoadController : public ControllerManagerFixture update_timer_ = cm_->create_wall_timer(std::chrono::milliseconds(10), [&]() { cm_->read(); - cm_->update(rclcpp::Duration::from_nanoseconds(100000000)); + cm_->update(rclcpp::Duration::from_seconds(0.01)); cm_->write(); }); From d572e2df1f28038367b7df186ef69e33f64eb4a8 Mon Sep 17 00:00:00 2001 From: Dmitri Date: Wed, 8 Sep 2021 11:56:09 -0400 Subject: [PATCH 6/9] dt is timed instead of using theoretical update_rate --- controller_manager/src/ros2_control_node.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/controller_manager/src/ros2_control_node.cpp b/controller_manager/src/ros2_control_node.cpp index f7b235a029..d7047d899b 100644 --- a/controller_manager/src/ros2_control_node.cpp +++ b/controller_manager/src/ros2_control_node.cpp @@ -48,11 +48,17 @@ int main(int argc, char ** argv) } RCLCPP_INFO(cm->get_logger(), "update rate is %d Hz", update_rate); + + std::chrono::system_clock::time_point begin = std::chrono::system_clock::now(); + std::this_thread::sleep_for(std::chrono::nanoseconds(1000000000 / update_rate)); while (rclcpp::ok()) { - std::chrono::system_clock::time_point begin = std::chrono::system_clock::now(); + std::chrono::system_clock::time_point begin_last = begin; + begin = std::chrono::system_clock::now(); cm->read(); - cm->update(rclcpp::Duration::from_seconds(1 / update_rate)); + cm->update( + rclcpp::Duration(std::chrono::duration_cast(begin - begin_last)) + ); cm->write(); std::chrono::system_clock::time_point end = std::chrono::system_clock::now(); std::this_thread::sleep_for(std::max( From 835560b7b284cdddea801f5d02fb8231a5082e6d Mon Sep 17 00:00:00 2001 From: Dmitri Date: Wed, 8 Sep 2021 19:00:59 -0400 Subject: [PATCH 7/9] update() signature changed to include both time and period --- .../controller_interface/controller_interface.hpp | 2 +- .../test/test_controller_with_options.hpp | 2 +- .../include/controller_manager/controller_manager.hpp | 2 +- controller_manager/src/controller_manager.cpp | 4 ++-- controller_manager/src/ros2_control_node.cpp | 4 +++- .../test/controller_manager_test_common.hpp | 2 +- .../test/test_controller/test_controller.cpp | 2 +- .../test/test_controller/test_controller.hpp | 2 +- .../test_controller_failed_init.cpp | 2 +- .../test_controller_failed_init.hpp | 2 +- controller_manager/test/test_controller_manager.cpp | 10 +++++----- .../test/test_controller_manager_srvs.cpp | 4 ++-- .../test_controller_with_interfaces.cpp | 2 +- .../test_controller_with_interfaces.hpp | 2 +- controller_manager/test/test_spawner_unspawner.cpp | 2 +- 15 files changed, 23 insertions(+), 21 deletions(-) diff --git a/controller_interface/include/controller_interface/controller_interface.hpp b/controller_interface/include/controller_interface/controller_interface.hpp index c3fa78aa3c..bf95f94aa0 100644 --- a/controller_interface/include/controller_interface/controller_interface.hpp +++ b/controller_interface/include/controller_interface/controller_interface.hpp @@ -95,7 +95,7 @@ class ControllerInterface : public rclcpp_lifecycle::node_interfaces::LifecycleN virtual return_type init(const std::string & controller_name); CONTROLLER_INTERFACE_PUBLIC - virtual return_type update(rclcpp::Duration dt) = 0; + virtual return_type update(const rclcpp::Time& time, const rclcpp::Duration& period) = 0; CONTROLLER_INTERFACE_PUBLIC std::shared_ptr get_node(); diff --git a/controller_interface/test/test_controller_with_options.hpp b/controller_interface/test/test_controller_with_options.hpp index f84e694272..e8a63dc9ff 100644 --- a/controller_interface/test/test_controller_with_options.hpp +++ b/controller_interface/test/test_controller_with_options.hpp @@ -80,7 +80,7 @@ class ControllerWithOptions : public controller_interface::ControllerInterface controller_interface::interface_configuration_type::NONE}; } - controller_interface::return_type update(rclcpp::Duration dt) override + controller_interface::return_type update(const rclcpp::Time& time, const rclcpp::Duration& period) override { return controller_interface::return_type::OK; } diff --git a/controller_manager/include/controller_manager/controller_manager.hpp b/controller_manager/include/controller_manager/controller_manager.hpp index 003ff686af..a91bfd4e7f 100644 --- a/controller_manager/include/controller_manager/controller_manager.hpp +++ b/controller_manager/include/controller_manager/controller_manager.hpp @@ -129,7 +129,7 @@ class ControllerManager : public rclcpp::Node void read(); CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update(rclcpp::Duration dt); + controller_interface::return_type update(const rclcpp::Time& time, const rclcpp::Duration& period); CONTROLLER_MANAGER_PUBLIC void write(); diff --git a/controller_manager/src/controller_manager.cpp b/controller_manager/src/controller_manager.cpp index 1fc9f79fc0..f98578f2e5 100644 --- a/controller_manager/src/controller_manager.cpp +++ b/controller_manager/src/controller_manager.cpp @@ -1146,7 +1146,7 @@ std::vector ControllerManager::get_controller_names() void ControllerManager::read() { resource_manager_->read(); } -controller_interface::return_type ControllerManager::update(rclcpp::Duration dt) +controller_interface::return_type ControllerManager::update(const rclcpp::Time& time, const rclcpp::Duration& period) { std::vector & rt_controller_list = rt_controllers_wrapper_.update_and_get_used_by_rt_list(); @@ -1158,7 +1158,7 @@ controller_interface::return_type ControllerManager::update(rclcpp::Duration dt) // https://github.com/ros-controls/ros2_control/issues/153 if (is_controller_running(*loaded_controller.c)) { - auto controller_ret = loaded_controller.c->update(dt); + auto controller_ret = loaded_controller.c->update(time, period); if (controller_ret != controller_interface::return_type::OK) { ret = controller_ret; diff --git a/controller_manager/src/ros2_control_node.cpp b/controller_manager/src/ros2_control_node.cpp index d7047d899b..09830d3fa6 100644 --- a/controller_manager/src/ros2_control_node.cpp +++ b/controller_manager/src/ros2_control_node.cpp @@ -49,7 +49,8 @@ int main(int argc, char ** argv) RCLCPP_INFO(cm->get_logger(), "update rate is %d Hz", update_rate); - std::chrono::system_clock::time_point begin = std::chrono::system_clock::now(); + std::chrono::system_clock::time_point timepoint_start = std::chrono::system_clock::now(); + std::chrono::system_clock::time_point begin = timepoint_start; std::this_thread::sleep_for(std::chrono::nanoseconds(1000000000 / update_rate)); while (rclcpp::ok()) { @@ -57,6 +58,7 @@ int main(int argc, char ** argv) begin = std::chrono::system_clock::now(); cm->read(); cm->update( + rclcpp::Time(std::chrono::duration_cast(begin - timepoint_start).count()), rclcpp::Duration(std::chrono::duration_cast(begin - begin_last)) ); cm->write(); diff --git a/controller_manager/test/controller_manager_test_common.hpp b/controller_manager/test/controller_manager_test_common.hpp index fc905f54eb..75ca71496f 100644 --- a/controller_manager/test/controller_manager_test_common.hpp +++ b/controller_manager/test/controller_manager_test_common.hpp @@ -63,7 +63,7 @@ class ControllerManagerFixture : public ::testing::Test updater_ = std::thread([&](void) -> void { while (run_updater_) { - cm_->update(rclcpp::Duration::from_seconds(0.01)); + cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01)); std::this_thread::sleep_for(std::chrono::milliseconds(10)); } }); diff --git a/controller_manager/test/test_controller/test_controller.cpp b/controller_manager/test/test_controller/test_controller.cpp index 1f4bef9746..4e1d4429ec 100644 --- a/controller_manager/test/test_controller/test_controller.cpp +++ b/controller_manager/test/test_controller/test_controller.cpp @@ -27,7 +27,7 @@ TestController::TestController() { } -controller_interface::return_type TestController::update(rclcpp::Duration dt) +controller_interface::return_type TestController::update(const rclcpp::Time& time, const rclcpp::Duration& period) { ++internal_counter; return controller_interface::return_type::OK; diff --git a/controller_manager/test/test_controller/test_controller.hpp b/controller_manager/test/test_controller/test_controller.hpp index 934ae0c9d2..162608e0a8 100644 --- a/controller_manager/test/test_controller/test_controller.hpp +++ b/controller_manager/test/test_controller/test_controller.hpp @@ -49,7 +49,7 @@ class TestController : public controller_interface::ControllerInterface } CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update(rclcpp::Duration dt) override; + controller_interface::return_type update(const rclcpp::Time& time, const rclcpp::Duration& period) override; CONTROLLER_MANAGER_PUBLIC rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_init() override; diff --git a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp index 983c789a40..20589d914f 100644 --- a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp +++ b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp @@ -37,7 +37,7 @@ controller_interface::return_type TestControllerFailedInit::init( return controller_interface::return_type::ERROR; } -controller_interface::return_type TestControllerFailedInit::update(rclcpp::Duration dt) +controller_interface::return_type TestControllerFailedInit::update(const rclcpp::Time& time, const rclcpp::Duration& period) { return controller_interface::return_type::OK; } diff --git a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp index 998871955d..5975dccf4f 100644 --- a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp +++ b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp @@ -54,7 +54,7 @@ class TestControllerFailedInit : public controller_interface::ControllerInterfac } CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update(rclcpp::Duration dt) override; + controller_interface::return_type update(const rclcpp::Time& time, const rclcpp::Duration& period) override; CONTROLLER_MANAGER_PUBLIC rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_init() override; diff --git a/controller_manager/test/test_controller_manager.cpp b/controller_manager/test/test_controller_manager.cpp index 6fd5fe4331..d544af8cd4 100644 --- a/controller_manager/test/test_controller_manager.cpp +++ b/controller_manager/test/test_controller_manager.cpp @@ -40,7 +40,7 @@ TEST_F(TestControllerManager, controller_lifecycle) EXPECT_EQ(2, test_controller.use_count()); EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Duration::from_seconds(0.01))); + cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); EXPECT_EQ(0u, test_controller->internal_counter) << "Update should not reach an unconfigured controller"; @@ -50,7 +50,7 @@ TEST_F(TestControllerManager, controller_lifecycle) // configure controller cm_->configure_controller(test_controller::TEST_CONTROLLER_NAME); EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Duration::from_seconds(0.01))); + cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); EXPECT_EQ(0u, test_controller->internal_counter) << "Controller is not started"; EXPECT_EQ(lifecycle_msgs::msg::State::PRIMARY_STATE_INACTIVE, test_controller->get_state().id()); @@ -66,7 +66,7 @@ TEST_F(TestControllerManager, controller_lifecycle) << "switch_controller should be blocking until next update cycle"; EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Duration::from_seconds(0.01))); + cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); EXPECT_EQ(0u, test_controller->internal_counter) << "Controller is started at the end of update"; { ControllerManagerRunner cm_runner(this); @@ -75,7 +75,7 @@ TEST_F(TestControllerManager, controller_lifecycle) EXPECT_EQ(lifecycle_msgs::msg::State::PRIMARY_STATE_ACTIVE, test_controller->get_state().id()); EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Duration::from_seconds(0.01))); + cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); EXPECT_GE(test_controller->internal_counter, 1u); auto last_internal_counter = test_controller->internal_counter; @@ -90,7 +90,7 @@ TEST_F(TestControllerManager, controller_lifecycle) << "switch_controller should be blocking until next update cycle"; EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Duration::from_seconds(0.01))); + cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); EXPECT_EQ(last_internal_counter + 1u, test_controller->internal_counter) << "Controller is stopped at the end of update, so it should have done one more update"; { diff --git a/controller_manager/test/test_controller_manager_srvs.cpp b/controller_manager/test/test_controller_manager_srvs.cpp index 4248c7f6d6..7e1d5235b7 100644 --- a/controller_manager/test/test_controller_manager_srvs.cpp +++ b/controller_manager/test/test_controller_manager_srvs.cpp @@ -42,7 +42,7 @@ class TestControllerManagerSrvs : public ControllerManagerFixture update_timer_ = cm_->create_wall_timer(std::chrono::milliseconds(10), [&]() { cm_->read(); - cm_->update(rclcpp::Duration::from_seconds(0.01)); + cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01)); cm_->write(); }); @@ -69,7 +69,7 @@ class TestControllerManagerSrvs : public ControllerManagerFixture while (service_executor.spin_until_future_complete(result, 50ms) != rclcpp::FutureReturnCode::SUCCESS) { - cm_->update(rclcpp::Duration::from_seconds(0.01)); + cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01)); } } else diff --git a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp index eb95bf90a6..b9bebcbb81 100644 --- a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp +++ b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp @@ -32,7 +32,7 @@ TestControllerWithInterfaces::on_init() return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS; } -controller_interface::return_type TestControllerWithInterfaces::update(rclcpp::Duration dt) +controller_interface::return_type TestControllerWithInterfaces::update(const rclcpp::Time& time, const rclcpp::Duration& period) { return controller_interface::return_type::OK; } diff --git a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp index e2a3209707..72de8cfce2 100644 --- a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp +++ b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp @@ -51,7 +51,7 @@ class TestControllerWithInterfaces : public controller_interface::ControllerInte } CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update(rclcpp::Duration dt) override; + controller_interface::return_type update(const rclcpp::Time& time, const rclcpp::Duration& period) override; CONTROLLER_MANAGER_PUBLIC rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_init() override; diff --git a/controller_manager/test/test_spawner_unspawner.cpp b/controller_manager/test/test_spawner_unspawner.cpp index 712f7f1f01..a29a68b045 100644 --- a/controller_manager/test/test_spawner_unspawner.cpp +++ b/controller_manager/test/test_spawner_unspawner.cpp @@ -36,7 +36,7 @@ class TestLoadController : public ControllerManagerFixture update_timer_ = cm_->create_wall_timer(std::chrono::milliseconds(10), [&]() { cm_->read(); - cm_->update(rclcpp::Duration::from_seconds(0.01)); + cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01)); cm_->write(); }); From 72b0d1c884775ed8bfd67f9b9d3170e131ff8d80 Mon Sep 17 00:00:00 2001 From: Dmitri Date: Wed, 15 Sep 2021 18:13:44 -0400 Subject: [PATCH 8/9] split some lines to be under 100 chars. --- controller_interface/test/test_controller_with_options.hpp | 3 ++- .../include/controller_manager/controller_manager.hpp | 3 ++- controller_manager/src/controller_manager.cpp | 3 ++- controller_manager/src/ros2_control_node.cpp | 3 ++- controller_manager/test/test_controller/test_controller.cpp | 3 ++- controller_manager/test/test_controller/test_controller.hpp | 3 ++- .../test_controller_failed_init.cpp | 3 ++- .../test_controller_failed_init.hpp | 3 ++- .../test_controller_with_interfaces.cpp | 4 +++- .../test_controller_with_interfaces.hpp | 3 ++- 10 files changed, 21 insertions(+), 10 deletions(-) diff --git a/controller_interface/test/test_controller_with_options.hpp b/controller_interface/test/test_controller_with_options.hpp index e8a63dc9ff..9984a463d1 100644 --- a/controller_interface/test/test_controller_with_options.hpp +++ b/controller_interface/test/test_controller_with_options.hpp @@ -80,7 +80,8 @@ class ControllerWithOptions : public controller_interface::ControllerInterface controller_interface::interface_configuration_type::NONE}; } - controller_interface::return_type update(const rclcpp::Time& time, const rclcpp::Duration& period) override + controller_interface::return_type update(const rclcpp::Time& time, + const rclcpp::Duration& period) override { return controller_interface::return_type::OK; } diff --git a/controller_manager/include/controller_manager/controller_manager.hpp b/controller_manager/include/controller_manager/controller_manager.hpp index a91bfd4e7f..be297d7d16 100644 --- a/controller_manager/include/controller_manager/controller_manager.hpp +++ b/controller_manager/include/controller_manager/controller_manager.hpp @@ -129,7 +129,8 @@ class ControllerManager : public rclcpp::Node void read(); CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update(const rclcpp::Time& time, const rclcpp::Duration& period); + controller_interface::return_type update(const rclcpp::Time& time, + const rclcpp::Duration& period); CONTROLLER_MANAGER_PUBLIC void write(); diff --git a/controller_manager/src/controller_manager.cpp b/controller_manager/src/controller_manager.cpp index f98578f2e5..ace1883043 100644 --- a/controller_manager/src/controller_manager.cpp +++ b/controller_manager/src/controller_manager.cpp @@ -1146,7 +1146,8 @@ std::vector ControllerManager::get_controller_names() void ControllerManager::read() { resource_manager_->read(); } -controller_interface::return_type ControllerManager::update(const rclcpp::Time& time, const rclcpp::Duration& period) +controller_interface::return_type ControllerManager::update(const rclcpp::Time& time, + const rclcpp::Duration& period) { std::vector & rt_controller_list = rt_controllers_wrapper_.update_and_get_used_by_rt_list(); diff --git a/controller_manager/src/ros2_control_node.cpp b/controller_manager/src/ros2_control_node.cpp index 09830d3fa6..ceaddc83e4 100644 --- a/controller_manager/src/ros2_control_node.cpp +++ b/controller_manager/src/ros2_control_node.cpp @@ -58,7 +58,8 @@ int main(int argc, char ** argv) begin = std::chrono::system_clock::now(); cm->read(); cm->update( - rclcpp::Time(std::chrono::duration_cast(begin - timepoint_start).count()), + rclcpp::Time( + std::chrono::duration_cast(begin - timepoint_start).count()), rclcpp::Duration(std::chrono::duration_cast(begin - begin_last)) ); cm->write(); diff --git a/controller_manager/test/test_controller/test_controller.cpp b/controller_manager/test/test_controller/test_controller.cpp index 4e1d4429ec..f5f5e3e11d 100644 --- a/controller_manager/test/test_controller/test_controller.cpp +++ b/controller_manager/test/test_controller/test_controller.cpp @@ -27,7 +27,8 @@ TestController::TestController() { } -controller_interface::return_type TestController::update(const rclcpp::Time& time, const rclcpp::Duration& period) +controller_interface::return_type TestController::update(const rclcpp::Time& time, + const rclcpp::Duration& period) { ++internal_counter; return controller_interface::return_type::OK; diff --git a/controller_manager/test/test_controller/test_controller.hpp b/controller_manager/test/test_controller/test_controller.hpp index 162608e0a8..592cf6fcae 100644 --- a/controller_manager/test/test_controller/test_controller.hpp +++ b/controller_manager/test/test_controller/test_controller.hpp @@ -49,7 +49,8 @@ class TestController : public controller_interface::ControllerInterface } CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update(const rclcpp::Time& time, const rclcpp::Duration& period) override; + controller_interface::return_type update(const rclcpp::Time& time, + const rclcpp::Duration& period) override; CONTROLLER_MANAGER_PUBLIC rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_init() override; diff --git a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp index 20589d914f..2cca6fdb7f 100644 --- a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp +++ b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp @@ -37,7 +37,8 @@ controller_interface::return_type TestControllerFailedInit::init( return controller_interface::return_type::ERROR; } -controller_interface::return_type TestControllerFailedInit::update(const rclcpp::Time& time, const rclcpp::Duration& period) +controller_interface::return_type TestControllerFailedInit::update(const rclcpp::Time& time, + const rclcpp::Duration& period) { return controller_interface::return_type::OK; } diff --git a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp index 5975dccf4f..cab962674a 100644 --- a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp +++ b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp @@ -54,7 +54,8 @@ class TestControllerFailedInit : public controller_interface::ControllerInterfac } CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update(const rclcpp::Time& time, const rclcpp::Duration& period) override; + controller_interface::return_type update(const rclcpp::Time& time, + const rclcpp::Duration& period) override; CONTROLLER_MANAGER_PUBLIC rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_init() override; diff --git a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp index b9bebcbb81..d2554d539e 100644 --- a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp +++ b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp @@ -32,7 +32,9 @@ TestControllerWithInterfaces::on_init() return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS; } -controller_interface::return_type TestControllerWithInterfaces::update(const rclcpp::Time& time, const rclcpp::Duration& period) +controller_interface::return_type +TestControllerWithInterfaces::update(const rclcpp::Time& time, + const rclcpp::Duration& period) { return controller_interface::return_type::OK; } diff --git a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp index 72de8cfce2..c4064343c5 100644 --- a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp +++ b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp @@ -51,7 +51,8 @@ class TestControllerWithInterfaces : public controller_interface::ControllerInte } CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update(const rclcpp::Time& time, const rclcpp::Duration& period) override; + controller_interface::return_type update(const rclcpp::Time& time, + const rclcpp::Duration& period) override; CONTROLLER_MANAGER_PUBLIC rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_init() override; From 6db36797558c679550b6354522397c3da7ebfe10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20=C5=A0togl?= Date: Fri, 17 Sep 2021 10:31:52 +0200 Subject: [PATCH 9/9] Correct formatting. --- .../controller_interface.hpp | 2 +- .../test/test_controller_with_options.hpp | 4 +-- .../controller_manager/controller_manager.hpp | 4 +-- controller_manager/src/controller_manager.cpp | 4 +-- controller_manager/src/ros2_control_node.cpp | 4 +-- .../test/test_controller/test_controller.cpp | 4 +-- .../test/test_controller/test_controller.hpp | 4 +-- .../test_controller_failed_init.cpp | 4 +-- .../test_controller_failed_init.hpp | 4 +-- .../test/test_controller_manager.cpp | 25 +++++++++++-------- .../test_controller_with_interfaces.cpp | 5 ++-- .../test_controller_with_interfaces.hpp | 4 +-- 12 files changed, 35 insertions(+), 33 deletions(-) diff --git a/controller_interface/include/controller_interface/controller_interface.hpp b/controller_interface/include/controller_interface/controller_interface.hpp index bf95f94aa0..7861707784 100644 --- a/controller_interface/include/controller_interface/controller_interface.hpp +++ b/controller_interface/include/controller_interface/controller_interface.hpp @@ -95,7 +95,7 @@ class ControllerInterface : public rclcpp_lifecycle::node_interfaces::LifecycleN virtual return_type init(const std::string & controller_name); CONTROLLER_INTERFACE_PUBLIC - virtual return_type update(const rclcpp::Time& time, const rclcpp::Duration& period) = 0; + virtual return_type update(const rclcpp::Time & time, const rclcpp::Duration & period) = 0; CONTROLLER_INTERFACE_PUBLIC std::shared_ptr get_node(); diff --git a/controller_interface/test/test_controller_with_options.hpp b/controller_interface/test/test_controller_with_options.hpp index 9984a463d1..901979f384 100644 --- a/controller_interface/test/test_controller_with_options.hpp +++ b/controller_interface/test/test_controller_with_options.hpp @@ -80,8 +80,8 @@ class ControllerWithOptions : public controller_interface::ControllerInterface controller_interface::interface_configuration_type::NONE}; } - controller_interface::return_type update(const rclcpp::Time& time, - const rclcpp::Duration& period) override + controller_interface::return_type update( + const rclcpp::Time & time, const rclcpp::Duration & period) override { return controller_interface::return_type::OK; } diff --git a/controller_manager/include/controller_manager/controller_manager.hpp b/controller_manager/include/controller_manager/controller_manager.hpp index be297d7d16..e204647cc1 100644 --- a/controller_manager/include/controller_manager/controller_manager.hpp +++ b/controller_manager/include/controller_manager/controller_manager.hpp @@ -129,8 +129,8 @@ class ControllerManager : public rclcpp::Node void read(); CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update(const rclcpp::Time& time, - const rclcpp::Duration& period); + controller_interface::return_type update( + const rclcpp::Time & time, const rclcpp::Duration & period); CONTROLLER_MANAGER_PUBLIC void write(); diff --git a/controller_manager/src/controller_manager.cpp b/controller_manager/src/controller_manager.cpp index ace1883043..d35517242b 100644 --- a/controller_manager/src/controller_manager.cpp +++ b/controller_manager/src/controller_manager.cpp @@ -1146,8 +1146,8 @@ std::vector ControllerManager::get_controller_names() void ControllerManager::read() { resource_manager_->read(); } -controller_interface::return_type ControllerManager::update(const rclcpp::Time& time, - const rclcpp::Duration& period) +controller_interface::return_type ControllerManager::update( + const rclcpp::Time & time, const rclcpp::Duration & period) { std::vector & rt_controller_list = rt_controllers_wrapper_.update_and_get_used_by_rt_list(); diff --git a/controller_manager/src/ros2_control_node.cpp b/controller_manager/src/ros2_control_node.cpp index ceaddc83e4..1aacecf12f 100644 --- a/controller_manager/src/ros2_control_node.cpp +++ b/controller_manager/src/ros2_control_node.cpp @@ -48,7 +48,6 @@ int main(int argc, char ** argv) } RCLCPP_INFO(cm->get_logger(), "update rate is %d Hz", update_rate); - std::chrono::system_clock::time_point timepoint_start = std::chrono::system_clock::now(); std::chrono::system_clock::time_point begin = timepoint_start; std::this_thread::sleep_for(std::chrono::nanoseconds(1000000000 / update_rate)); @@ -60,8 +59,7 @@ int main(int argc, char ** argv) cm->update( rclcpp::Time( std::chrono::duration_cast(begin - timepoint_start).count()), - rclcpp::Duration(std::chrono::duration_cast(begin - begin_last)) - ); + rclcpp::Duration(std::chrono::duration_cast(begin - begin_last))); cm->write(); std::chrono::system_clock::time_point end = std::chrono::system_clock::now(); std::this_thread::sleep_for(std::max( diff --git a/controller_manager/test/test_controller/test_controller.cpp b/controller_manager/test/test_controller/test_controller.cpp index f5f5e3e11d..156a98a993 100644 --- a/controller_manager/test/test_controller/test_controller.cpp +++ b/controller_manager/test/test_controller/test_controller.cpp @@ -27,8 +27,8 @@ TestController::TestController() { } -controller_interface::return_type TestController::update(const rclcpp::Time& time, - const rclcpp::Duration& period) +controller_interface::return_type TestController::update( + const rclcpp::Time & time, const rclcpp::Duration & period) { ++internal_counter; return controller_interface::return_type::OK; diff --git a/controller_manager/test/test_controller/test_controller.hpp b/controller_manager/test/test_controller/test_controller.hpp index 592cf6fcae..0d75f1a152 100644 --- a/controller_manager/test/test_controller/test_controller.hpp +++ b/controller_manager/test/test_controller/test_controller.hpp @@ -49,8 +49,8 @@ class TestController : public controller_interface::ControllerInterface } CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update(const rclcpp::Time& time, - const rclcpp::Duration& period) override; + controller_interface::return_type update( + const rclcpp::Time & time, const rclcpp::Duration & period) override; CONTROLLER_MANAGER_PUBLIC rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_init() override; diff --git a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp index 2cca6fdb7f..af0f2ebbac 100644 --- a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp +++ b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.cpp @@ -37,8 +37,8 @@ controller_interface::return_type TestControllerFailedInit::init( return controller_interface::return_type::ERROR; } -controller_interface::return_type TestControllerFailedInit::update(const rclcpp::Time& time, - const rclcpp::Duration& period) +controller_interface::return_type TestControllerFailedInit::update( + const rclcpp::Time & time, const rclcpp::Duration & period) { return controller_interface::return_type::OK; } diff --git a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp index cab962674a..23a16df1cb 100644 --- a/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp +++ b/controller_manager/test/test_controller_failed_init/test_controller_failed_init.hpp @@ -54,8 +54,8 @@ class TestControllerFailedInit : public controller_interface::ControllerInterfac } CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update(const rclcpp::Time& time, - const rclcpp::Duration& period) override; + controller_interface::return_type update( + const rclcpp::Time & time, const rclcpp::Duration & period) override; CONTROLLER_MANAGER_PUBLIC rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_init() override; diff --git a/controller_manager/test/test_controller_manager.cpp b/controller_manager/test/test_controller_manager.cpp index d544af8cd4..ebc4961b1f 100644 --- a/controller_manager/test/test_controller_manager.cpp +++ b/controller_manager/test/test_controller_manager.cpp @@ -39,8 +39,9 @@ TEST_F(TestControllerManager, controller_lifecycle) EXPECT_EQ(1u, cm_->get_loaded_controllers().size()); EXPECT_EQ(2, test_controller.use_count()); - EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); + EXPECT_EQ( + controller_interface::return_type::OK, + cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); EXPECT_EQ(0u, test_controller->internal_counter) << "Update should not reach an unconfigured controller"; @@ -49,8 +50,9 @@ TEST_F(TestControllerManager, controller_lifecycle) // configure controller cm_->configure_controller(test_controller::TEST_CONTROLLER_NAME); - EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); + EXPECT_EQ( + controller_interface::return_type::OK, + cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); EXPECT_EQ(0u, test_controller->internal_counter) << "Controller is not started"; EXPECT_EQ(lifecycle_msgs::msg::State::PRIMARY_STATE_INACTIVE, test_controller->get_state().id()); @@ -65,8 +67,9 @@ TEST_F(TestControllerManager, controller_lifecycle) ASSERT_EQ(std::future_status::timeout, switch_future.wait_for(std::chrono::milliseconds(100))) << "switch_controller should be blocking until next update cycle"; - EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); + EXPECT_EQ( + controller_interface::return_type::OK, + cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); EXPECT_EQ(0u, test_controller->internal_counter) << "Controller is started at the end of update"; { ControllerManagerRunner cm_runner(this); @@ -74,8 +77,9 @@ TEST_F(TestControllerManager, controller_lifecycle) } EXPECT_EQ(lifecycle_msgs::msg::State::PRIMARY_STATE_ACTIVE, test_controller->get_state().id()); - EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); + EXPECT_EQ( + controller_interface::return_type::OK, + cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); EXPECT_GE(test_controller->internal_counter, 1u); auto last_internal_counter = test_controller->internal_counter; @@ -89,8 +93,9 @@ TEST_F(TestControllerManager, controller_lifecycle) ASSERT_EQ(std::future_status::timeout, switch_future.wait_for(std::chrono::milliseconds(100))) << "switch_controller should be blocking until next update cycle"; - EXPECT_EQ(controller_interface::return_type::OK, - cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); + EXPECT_EQ( + controller_interface::return_type::OK, + cm_->update(rclcpp::Time(0), rclcpp::Duration::from_seconds(0.01))); EXPECT_EQ(last_internal_counter + 1u, test_controller->internal_counter) << "Controller is stopped at the end of update, so it should have done one more update"; { diff --git a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp index d2554d539e..fde72b70bc 100644 --- a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp +++ b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.cpp @@ -32,9 +32,8 @@ TestControllerWithInterfaces::on_init() return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS; } -controller_interface::return_type -TestControllerWithInterfaces::update(const rclcpp::Time& time, - const rclcpp::Duration& period) +controller_interface::return_type TestControllerWithInterfaces::update( + const rclcpp::Time & time, const rclcpp::Duration & period) { return controller_interface::return_type::OK; } diff --git a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp index c4064343c5..96aaed11ce 100644 --- a/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp +++ b/controller_manager/test/test_controller_with_interfaces/test_controller_with_interfaces.hpp @@ -51,8 +51,8 @@ class TestControllerWithInterfaces : public controller_interface::ControllerInte } CONTROLLER_MANAGER_PUBLIC - controller_interface::return_type update(const rclcpp::Time& time, - const rclcpp::Duration& period) override; + controller_interface::return_type update( + const rclcpp::Time & time, const rclcpp::Duration & period) override; CONTROLLER_MANAGER_PUBLIC rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_init() override;