Skip to content

Commit b1b35b0

Browse files
committed
Removed legacy from action server version
1 parent e292058 commit b1b35b0

File tree

3 files changed

+8
-66
lines changed

3 files changed

+8
-66
lines changed

ur_controllers/include/ur_controllers/freedrive_mode_controller.hpp

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@
5353
#include <rclcpp/time.hpp>
5454
#include <rclcpp/duration.hpp>
5555

56-
#include <ur_msgs/action/enable_freedrive_mode.hpp>
5756
#include "freedrive_mode_controller_parameters.hpp"
5857

5958
namespace ur_controllers
@@ -94,34 +93,13 @@ class FreedriveModeController : public controller_interface::ControllerInterface
9493
std::optional<std::reference_wrapper<hardware_interface::LoanedCommandInterface>> enable_command_interface_;
9594
std::optional<std::reference_wrapper<hardware_interface::LoanedCommandInterface>> abort_command_interface_;
9695

97-
// Everything related to the RT action server
98-
using FreedriveModeAction = ur_msgs::action::EnableFreedriveMode;
99-
using RealtimeGoalHandle = realtime_tools::RealtimeServerGoalHandle<FreedriveModeAction>;
100-
using RealtimeGoalHandlePtr = std::shared_ptr<RealtimeGoalHandle>;
101-
using RealtimeGoalHandleBuffer = realtime_tools::RealtimeBuffer<RealtimeGoalHandlePtr>;
10296

103-
RealtimeGoalHandleBuffer rt_active_goal_; ///< Currently active action goal, if any.
10497
rclcpp::TimerBase::SharedPtr goal_handle_timer_; ///< Timer to frequently check on the running goal
105-
realtime_tools::RealtimeBuffer<std::unordered_map<std::string, size_t>> joint_trajectory_mapping_;
10698
rclcpp::Duration action_monitor_period_ = rclcpp::Duration(50ms);
10799

108-
rclcpp_action::Server<ur_msgs::action::EnableFreedriveMode>::SharedPtr freedrive_mode_action_server_;
109-
rclcpp_action::GoalResponse
110-
goal_received_callback(const rclcpp_action::GoalUUID& uuid,
111-
std::shared_ptr<const ur_msgs::action::EnableFreedriveMode::Goal> goal);
112-
113-
rclcpp_action::CancelResponse goal_cancelled_callback(
114-
const std::shared_ptr<rclcpp_action::ServerGoalHandle<ur_msgs::action::EnableFreedriveMode>> goal_handle);
115-
116-
void goal_accepted_callback(
117-
std::shared_ptr<rclcpp_action::ServerGoalHandle<ur_msgs::action::EnableFreedriveMode>> goal_handle);
118-
119100
std::shared_ptr<freedrive_mode_controller::ParamListener> freedrive_param_listener_;
120101
freedrive_mode_controller::Params freedrive_params_;
121102

122-
/* Start an action server with an action called: /freedrive_mode_controller/start_freedrive_mode. */
123-
void start_action_server(void);
124-
125103
std::atomic<bool> freedrive_active_;
126104
std::atomic<bool> change_requested_;
127105
std::atomic<double> async_state_;

ur_controllers/src/freedrive_mode_controller.cpp

Lines changed: 7 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ controller_interface::CallbackReturn
8383
ur_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-
115103
controller_interface::CallbackReturn
116104
ur_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

180161
controller_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+
/*
238202
rclcpp_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+
/*
272239
void 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

315283
bool FreedriveModeController::waitForAsyncCommand(std::function<double(void)> get_value)
316284
{

ur_robot_driver/launch/ur_control.launch.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -175,12 +175,8 @@ def controller_spawner(controllers, active=True):
175175
"joint_trajectory_controller",
176176
"forward_velocity_controller",
177177
"forward_position_controller",
178-
"freedrive_mode_controller",
179-
]
180-
181-
controller_spawners = [controller_spawner(controllers_active)] + [
182-
controller_spawner(controllers_inactive, active=False)
183178
"passthrough_trajectory_controller",
179+
"freedrive_mode_controller",
184180
]
185181
if activate_joint_controller.perform(context) == "true":
186182
controllers_active.append(initial_joint_controller.perform(context))

0 commit comments

Comments
 (0)