Skip to content

Commit 1eb7bf9

Browse files
authored
test_move: Load controller only if it is not already loaded (UniversalRobots#552)
1 parent e0e94df commit 1eb7bf9

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

ur_robot_driver/scripts/test_move

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ from control_msgs.msg import FollowJointTrajectoryAction, FollowJointTrajectoryG
3333
from trajectory_msgs.msg import JointTrajectoryPoint
3434
from controller_manager_msgs.srv import SwitchControllerRequest, SwitchController
3535
from controller_manager_msgs.srv import LoadControllerRequest, LoadController
36+
from controller_manager_msgs.srv import ListControllers, ListControllersRequest
3637
import geometry_msgs.msg as geometry_msgs
3738
from cartesian_control_msgs.msg import (
3839
FollowCartesianTrajectoryAction,
@@ -88,6 +89,7 @@ class TrajectoryClient:
8889
"controller_manager/switch_controller", SwitchController
8990
)
9091
self.load_srv = rospy.ServiceProxy("controller_manager/load_controller", LoadController)
92+
self.list_srv = rospy.ServiceProxy("controller_manager/list_controllers", ListControllers)
9193
try:
9294
self.switch_srv.wait_for_service(timeout.to_sec())
9395
except rospy.exceptions.ROSException as err:
@@ -265,6 +267,12 @@ class TrajectoryClient:
265267

266268
other_controllers.remove(target_controller)
267269

270+
srv = ListControllersRequest()
271+
response = self.list_srv(srv)
272+
for controller in response.controller:
273+
if controller.name == target_controller and controller.state == "running":
274+
return
275+
268276
srv = LoadControllerRequest()
269277
srv.name = target_controller
270278
self.load_srv(srv)

0 commit comments

Comments
 (0)