-
Notifications
You must be signed in to change notification settings - Fork 402
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Connection to reverse interface dropped - UR5 #709
Comments
Without any further information I can only guess, but how are you controlling the IOs? Once you are making any URScript calls on the robot, this will interrupt the external control program, as there can only be one program running at a time. Setting the IOs using the setIO service should not interrupt the motions. |
hello,this is my program.I need to use moveit for motion planning and send action instructions at the same time, and open io before the action
…------------------ 原始邮件 ------------------
发件人: "UniversalRobots/Universal_Robots_ROS_Driver" ***@***.***>;
发送时间: 2024年7月17日(星期三) 下午4:38
***@***.***>;
***@***.******@***.***>;
主题: Re: [UniversalRobots/Universal_Robots_ROS_Driver] Connection to reverse interface dropped - UR5 (Issue #709)
Without any further information I can only guess, but how are you controlling the IOs?
Once you are making any URScript calls on the robot, this will interrupt the external control program, as there can only be one program running at a time. Setting the IOs using the setIO service should not interrupt the motions.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
#! /usr/bin/python3 def convert_pose_to_float(pose): def set_digital_io(num, state):
def set_analog_io(channel,voltage):
def open_pressure_system(): def close_pressure_system(): def main():
if name == 'main': |
i send the URscript command, and then excute the moveit trajectory |
oh! maybe i know! After i excute the trajectory, i send the ioscript, which will interrupt the external control program? but how can i send the two command meanwhile. is there some ways to solve the problem? Thanks! (or i misunderstand your meaning?) |
This is exactly the problem. As written above, you could use the setIO service. This will not interrupt your running program. You can simply change your code by changing the two functions: from ur_msgs.srv import SetIO, SetIORequest
class URInterface:
def __init__():
self.set_io_client = rospy.ServiceProxy('/ur_hardware_interface/set_io', SetIO)
def set_digital_io(self, num, state):
self.set_io_client(SetIORequest.FUN_SET_DIGITAL_OUT, num, state)
def set_analog_io(self, channel, voltage):
self.set_io_client(SetIORequest.FUN_SET_ANALOG_OUT, channel, voltage
def close_pressure_system(self):
rospy.loginfo("Closing pressure system...")
self.set_digital_io(7, True)
rospy.sleep(0.5)
self.set_analog_io(1,0)
def open_pressure_system(self):
rospy.loginfo("Opening pressure system...")
self.set_digital_io(7, True)
rospy.sleep(0.5)
self.set_analog_io(1,0.45) Then, in your ur_interface = URInterface()
#...
ur_interface.open_pressure_system()
#...
ur_interface.close_pressure_system() Note: All code is untested. |
|
In fact, every time I send a command to control io, whether it is closed or opened, what is actually controlled is the current, not the voltage. My proportional valve only supports voltage signals.What improvements should I make to my program to ensure that the signal sent out controls the voltage instead of the current? |
@zp2546265641 Have you tried to set the analog output type through the teach pendant? Remember to save the installation afterwards to keep this setting after a power cycle |
|
The problem basically comes from our current implementation: As a hotfix you could build the client library from source and change line 227 to Edit: My advice was wrong. Since the type is a bit-mask, providing 1 might not help you. I'll have a solution together soon.... |
I've put together a set of pull requests:
@zp2546265641 If you could try that out and give some feedback, that would be great! Please note: When building the client library from source, we suggest removing the installed apt package ( |
Thanks for your help, I'll try it later. And i will give you feedback here! |
|
hello, i write it as followed:
if name == 'main': |
I've added another service, I didn't modify the existing one. Therefore you should do
|
rospy.service.ServiceException: service [/ur_hardware_interface/set_analog_output] unavailable |
Sorry, that's my fault. I only updated ur_client_library and ur_msgs, but forgot to update the driver package, which led to the current problem. I will try again. |
|
Finally, my hero, I have a basic question, that is, the terminal velocity of the robot is the percentage of the slider in TP multiplied by the 0.2 in self.arm_group.set_max_velocity_scaling_factor(0.2) that I set. Is this the maximum speed of the robot? Or is it not affected by TP and is based on the 0.2 I set here. In addition, I would like to ask if there is any way to get the terminal velocity of the robot. Thank you very much, you are really awesome. |
I found that the maximum speed set by the py script is actually the higher the speed set by TP, the higher the actual running speed is. It seems that the py setting does not play any role. |
Affected ROS Driver version(s)
i do not know which,i download recently from here
Used ROS distribution.
Noetic
Which combination of platform is the ROS driver running on.
Linux
How is the UR ROS Driver installed.
From binary packets
Which robot platform is the driver connected to.
Real robot
Robot SW / URSim version(s)
i do not know which
How is the ROS driver used.
Through the robot teach pendant using External Control URCap
Issue details
Summary
My computer is Ubuntu 20.04, ROS-Noetic, dual system, and 5.15.0-113Generic kernel. After I enabled urcap in the teach pendant, I established a connection with the real robot through the driver. I use the control cabinet io output to control the external air pump and drive ur5 to execute the trajectory planned by moveit at the same time, but the problem occurs. Once the io signal and the planned trajectory are running at the same time, urcap will be interrupted and the sending signal will prompt failure:
But I don't use io signals, and the execution of the track alone can be successful, but sometimes it will be interrupted. I don't know where the problem lies?
Expected Behavior
At the same time, use the control cabinet io output to control the external air pressure pump and drive ur5 to execute the trajectory planned by moveit
Actual Behavior
The problem occurs. Once the io signal and the planned trajectory are running at the same time, urcap will be interrupted and the sending signal will prompt failure:
[ INFO] [1720767257.018619063]: Connection to reverse interface dropped.
Relevant log output
Accept Public visibility
The text was updated successfully, but these errors were encountered: