@@ -83,7 +83,6 @@ controller_interface::CallbackReturn
8383ur_controllers::FreedriveModeController::on_configure (const rclcpp_lifecycle::State& previous_state)
8484{
8585
86- start_action_server ();
8786
8887 const auto logger = get_node ()->get_logger ();
8988
@@ -101,17 +100,6 @@ ur_controllers::FreedriveModeController::on_configure(const rclcpp_lifecycle::St
101100 return ControllerInterface::on_configure (previous_state);
102101}
103102
104- void FreedriveModeController::start_action_server (void )
105- {
106- freedrive_mode_action_server_ = rclcpp_action::create_server<ur_msgs::action::EnableFreedriveMode>(
107- get_node (), std::string (get_node ()->get_name ()) + " /freedrive_mode" ,
108- std::bind (&FreedriveModeController::goal_received_callback, this , std::placeholders::_1,
109- std::placeholders::_2),
110- std::bind (&FreedriveModeController::goal_cancelled_callback, this , std::placeholders::_1),
111- std::bind (&FreedriveModeController::goal_accepted_callback, this , std::placeholders::_1));
112- return ;
113- }
114-
115103controller_interface::CallbackReturn
116104ur_controllers::FreedriveModeController::on_activate (const rclcpp_lifecycle::State& state)
117105{
@@ -167,20 +155,12 @@ ur_controllers::FreedriveModeController::on_deactivate(const rclcpp_lifecycle::S
167155{
168156 abort_command_interface_->get ().set_value (1.0 );
169157
170- const auto active_goal = *rt_active_goal_.readFromRT ();
171- if (active_goal) {
172- std::shared_ptr<ur_msgs::action::EnableFreedriveMode::Result> result =
173- std::make_shared<ur_msgs::action::EnableFreedriveMode::Result>();
174- active_goal->setAborted (result);
175- rt_active_goal_.writeFromNonRT (RealtimeGoalHandlePtr ());
176- }
177158 return CallbackReturn::SUCCESS;
178159}
179160
180161controller_interface::return_type ur_controllers::FreedriveModeController::update (const rclcpp::Time& /* time*/ ,
181162 const rclcpp::Duration& /* period*/ )
182163{
183- const auto active_goal = *rt_active_goal_.readFromRT ();
184164 async_state_ = async_success_command_interface_->get ().get_value ();
185165
186166 if (change_requested_) {
@@ -190,9 +170,6 @@ controller_interface::return_type ur_controllers::FreedriveModeController::updat
190170 if (!std::isnan (abort_command_interface_->get ().get_value ()) &&
191171 abort_command_interface_->get ().get_value () == 1.0 ) {
192172 RCLCPP_INFO (get_node ()->get_logger (), " Freedrive mode aborted by hardware, aborting action." );
193- std::shared_ptr<ur_msgs::action::EnableFreedriveMode::Result> result =
194- std::make_shared<ur_msgs::action::EnableFreedriveMode::Result>();
195- active_goal->setAborted (result);
196173 freedrive_active_ = false ;
197174 return controller_interface::return_type::OK;
198175 } else {
@@ -215,26 +192,13 @@ controller_interface::return_type ur_controllers::FreedriveModeController::updat
215192 return controller_interface::return_type::OK;
216193}
217194
218- rclcpp_action::GoalResponse FreedriveModeController::goal_received_callback (
219- const rclcpp_action::GoalUUID& /* uuid*/ ,
220- std::shared_ptr<const ur_msgs::action::EnableFreedriveMode::Goal> goal)
221195{
222- RCLCPP_INFO (get_node ()->get_logger (), " Received new request for freedrive mode activation." );
223-
224- // Precondition: Running controller
225- if (get_lifecycle_state ().id () == lifecycle_msgs::msg::State::PRIMARY_STATE_INACTIVE) {
226- RCLCPP_ERROR (get_node ()->get_logger (), " Can't enable freedrive mode. Freedrive mode controller is not running." );
227- return rclcpp_action::GoalResponse::REJECT;
196+ // Process the freedrive_mode command.
228197 }
229-
230- if (freedrive_active_) {
231- RCLCPP_ERROR (get_node ()->get_logger (), " Freedrive mode is already enabled: ignoring new request." );
232- return rclcpp_action::GoalResponse::REJECT;
233- }
234-
235- return rclcpp_action::GoalResponse::ACCEPT_AND_EXECUTE;
236198}
237199
200+ // Timeout handling for the topic
201+ /*
238202rclcpp_action::CancelResponse FreedriveModeController::goal_cancelled_callback(
239203 const std::shared_ptr<rclcpp_action::ServerGoalHandle<ur_msgs::action::EnableFreedriveMode>> goal_handle)
240204{
@@ -268,7 +232,10 @@ rclcpp_action::CancelResponse FreedriveModeController::goal_cancelled_callback(
268232 }
269233 return rclcpp_action::CancelResponse::ACCEPT;
270234}
235+ */
271236
237+ // Don't need this anymore, but logic must be reproduced in subscriber topic
238+ /*
272239void FreedriveModeController::goal_accepted_callback(
273240 std::shared_ptr<rclcpp_action::ServerGoalHandle<ur_msgs::action::EnableFreedriveMode>> goal_handle)
274241{
@@ -311,6 +278,7 @@ void FreedriveModeController::goal_accepted_callback(
311278 std::bind(&RealtimeGoalHandle::runNonRealtime, rt_goal));
312279 return;
313280}
281+ */
314282
315283bool FreedriveModeController::waitForAsyncCommand (std::function<double (void )> get_value)
316284{
0 commit comments