Could we stop the External Control on the UR robot at runtime?
nqduy35 opened this issue · 2 comments
Affected ROS2 Driver version(s)
All
Used ROS distribution.
Humble
Which combination of platform is the ROS driver running on.
Ubuntu Linux with standard kernel
How is the UR ROS2 Driver installed.
Build both the ROS driver and UR Client Library from source
Which robot platform is the driver connected to.
UR E-series robot
Robot SW / URSim version(s)
5.14
How is the ROS driver used.
Through the robot teach pendant using External Control URCap
Issue details
Using the URCap External Control and ROS 2 ur_ros_driver, I wonder if I can stop the External Control running on my UR robot ( for example, in this figure, the External Control module is "Control by myhostname"
) at runtime without quitting the UR main program or quitting the ur_ros_driver. Do you have any idea to:
- stop or pause the External Control from the ur_ros_driver side?
- stop or pause the External Control from the UR robot side ?
(without stopping the whole program containing other threads)
The big picture explains why I need this: I'm using OnRobot Eyes, which calculates and produces the object picking very well. This feature includes move actions, so it cannot work in another thread parallel with External Control. Thus, I have two approaches to combining it with my ROS2 program: First, I create another thread to calculate variables of the OnRobot object picking when necessary and temporarily pause the External Control in the main thread (Robot Program) to proceed the move using the variables; Second, I can transfer the variables calculated from the OnRobot Eyes and send it to my ROS2 program. The above question relates to the first approach.
Relevant log output
No response
Accept Public visibility
- I agree to make this context public
ros2 service call /io_and_status_controller/hand_back_control std_srvs/srv/Trigger
should do the trick