Skip to content

Commit b1106f0

Browse files
committed
Added on_cleanup to guarantee RT safety and fixed flag init
1 parent 5e5e0ef commit b1106f0

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

ur_controllers/include/ur_controllers/freedrive_mode_controller.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ class FreedriveModeController : public controller_interface::ControllerInterface
8080

8181
CallbackReturn on_activate(const rclcpp_lifecycle::State& previous_state) override;
8282

83+
CallbackReturn on_cleanup(const rclcpp_lifecycle::State& previous_state) override;
84+
8385
CallbackReturn on_deactivate(const rclcpp_lifecycle::State& previous_state) override;
8486

8587
CallbackReturn on_init() override;

ur_controllers/src/freedrive_mode_controller.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ ur_controllers::FreedriveModeController::on_activate(const rclcpp_lifecycle::Sta
117117
async_state_ = std::numeric_limits<double>::quiet_NaN();
118118

119119
first_log_ = false;
120-
logging_thread_running_ = false;
120+
logging_thread_running_ = true;
121121
logging_requested_ = false;
122122

123123
{
@@ -164,16 +164,23 @@ ur_controllers::FreedriveModeController::on_activate(const rclcpp_lifecycle::Sta
164164
}
165165

166166
controller_interface::CallbackReturn
167-
ur_controllers::FreedriveModeController::on_deactivate(const rclcpp_lifecycle::State&)
167+
ur_controllers::FreedriveModeController::on_cleanup(const rclcpp_lifecycle::State& /*previous_state*/)
168168
{
169169
abort_command_interface_->get().set_value(1.0);
170+
171+
stop_logging_thread();
172+
173+
return CallbackReturn::SUCCESS;
174+
}
175+
176+
controller_interface::CallbackReturn
177+
ur_controllers::FreedriveModeController::on_deactivate(const rclcpp_lifecycle::State&)
178+
{
170179
freedrive_active_ = false;
171180

172181
freedrive_sub_timer_.reset();
173182
timer_started_ = false;
174183

175-
stop_logging_thread();
176-
177184
return CallbackReturn::SUCCESS;
178185
}
179186

0 commit comments

Comments
 (0)