Skip to content

Commit 9ef03af

Browse files
committed
Fix issue with lifecycle
1 parent 112ac93 commit 9ef03af

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

kuka_kss_rsi_driver/include/kuka_kss_rsi_driver/hardware_interface_eki_rsi.hpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ class KukaRSIHardwareInterface : public hardware_interface::SystemInterface
6464

6565
KUKA_KSS_RSI_DRIVER_PUBLIC CallbackReturn on_configure(const rclcpp_lifecycle::State &) override;
6666

67+
KUKA_KSS_RSI_DRIVER_PUBLIC CallbackReturn on_cleanup(const rclcpp_lifecycle::State &) override;
68+
6769
KUKA_KSS_RSI_DRIVER_PUBLIC
6870
CallbackReturn on_activate(const rclcpp_lifecycle::State &) override;
6971

kuka_kss_rsi_driver/src/hardware_interface_eki_rsi.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,12 @@ CallbackReturn KukaRSIHardwareInterface::on_configure(const rclcpp_lifecycle::St
9595
return setup_success ? CallbackReturn::SUCCESS : CallbackReturn::ERROR;
9696
}
9797

98+
CallbackReturn KukaRSIHardwareInterface::on_cleanup(const rclcpp_lifecycle::State &)
99+
{
100+
robot_ptr_.reset();
101+
return CallbackReturn::SUCCESS;
102+
}
103+
98104
CallbackReturn KukaRSIHardwareInterface::on_activate(const rclcpp_lifecycle::State &)
99105
{
100106
const auto control_mode =
@@ -124,7 +130,6 @@ CallbackReturn KukaRSIHardwareInterface::on_activate(const rclcpp_lifecycle::Sta
124130

125131
CallbackReturn KukaRSIHardwareInterface::on_deactivate(const rclcpp_lifecycle::State &)
126132
{
127-
RCLCPP_INFO(logger_, "Deactivating hardware interface");
128133
set_stop_flag();
129134
return CallbackReturn::SUCCESS;
130135
}
@@ -234,10 +239,12 @@ void KukaRSIHardwareInterface::Write()
234239
if (stop_requested_)
235240
{
236241
RCLCPP_INFO(logger_, "Sending stop signal");
242+
is_active_ = false;
237243
send_reply_status = robot_ptr_->StopControlling();
238244
}
239245
else if (control_mode_change_requested)
240246
{
247+
// TODO(pasztork): Test this branch once other control modes become available.
241248
RCLCPP_INFO(logger_, "Requesting control mode change");
242249
send_reply_status = robot_ptr_->SwitchControlMode(
243250
static_cast<kuka::external::control::ControlMode>(hw_control_mode_command_));

kuka_kss_rsi_driver/src/robot_manager_node_eki_rsi.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,7 @@ RobotManagerNode::RobotManagerNode() : kuka_drivers_core::ROS2BaseLCNode("robot_
7575
[this](const std::string & robot_model) { return OnRobotModelChangeRequest(robot_model); });
7676
}
7777

78-
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
79-
RobotManagerNode::on_configure(const rclcpp_lifecycle::State &)
78+
CallbackReturn RobotManagerNode::on_configure(const rclcpp_lifecycle::State &)
8079
{
8180
const auto logger = get_logger();
8281

@@ -115,8 +114,7 @@ RobotManagerNode::on_configure(const rclcpp_lifecycle::State &)
115114
return SUCCESS;
116115
}
117116

118-
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
119-
RobotManagerNode::on_cleanup(const rclcpp_lifecycle::State &)
117+
CallbackReturn RobotManagerNode::on_cleanup(const rclcpp_lifecycle::State &)
120118
{
121119
const auto logger = get_logger();
122120

@@ -149,8 +147,7 @@ RobotManagerNode::on_cleanup(const rclcpp_lifecycle::State &)
149147
return SUCCESS;
150148
}
151149

152-
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
153-
RobotManagerNode::on_activate(const rclcpp_lifecycle::State &)
150+
CallbackReturn RobotManagerNode::on_activate(const rclcpp_lifecycle::State &)
154151
{
155152
const auto logger = get_logger();
156153
terminate_ = false;
@@ -187,8 +184,7 @@ RobotManagerNode::on_activate(const rclcpp_lifecycle::State &)
187184
return SUCCESS;
188185
}
189186

190-
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
191-
RobotManagerNode::on_deactivate(const rclcpp_lifecycle::State &)
187+
CallbackReturn RobotManagerNode::on_deactivate(const rclcpp_lifecycle::State &)
192188
{
193189
const auto logger = get_logger();
194190

0 commit comments

Comments
 (0)