Skip to content
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

Unable to connect to the robot #141

Closed
srsidd opened this issue Jan 23, 2018 · 18 comments
Closed

Unable to connect to the robot #141

srsidd opened this issue Jan 23, 2018 · 18 comments

Comments

@srsidd
Copy link

srsidd commented Jan 23, 2018

I am unable to get the abb_driver to communicate with the robot. I run roslaunch abb_irb1600_support robot_interface_download_irb1600.launch robot_ip:=<ip_address> but I get the following errors -

[ERROR] [1516661727.384124332]: Failed to connect to server, rc: -1. Error: 'Connection refused' (errno: 111)
[ERROR] [1516661727.384219436]: Failed to receive message length
[ERROR] [1516661727.384249799]: Failed to receive incoming message

At the same time the flex pendant shows me these messages -

ROS_StateServer->StateServer: Waiting for connection.
ROS_MotionServer->MotionServer: Waiting for connection.

I'm able to ping the robot, so I know it's on the network. I tried nc <ip_address> 11002\11000, but doesn't output anything to the terminal.

I tried doing some debugging, and the motion_download_interface executes fine without any errors. The robot_state node, however initializes all the parameters and gets stuck at https://github.com/ros-industrial/abb/blob/kinetic-devel/abb_driver/src/abb_robot_state_node.cpp#L75.

I'm kind of lost and don't know how to proceed, does someone have any pointers?

@gavanderhoorn
Copy link
Member

@srsidd wrote:

I run roslaunch abb_irb1600_support robot_interface_download_irb1600.launch robot_ip:=<ip_address> [..]

I don't believe we have a robot_interface_download_irb1600.launch in abb_irb1600_support. Is that a file you created yourself?

I tried nc <ip_address> 11002\11000, but doesn't output anything to the terminal.

that would seem to indicate that something is blocking you from connecting to the robot. That same something is probably why the nodes can't connect. nc <ip_address> 11002 should start printing to the console as soon as you connect.

Is this a real robot, or a RobotStudio session? If the latter: have you checked the Windows firewall settings?

@gavanderhoorn
Copy link
Member

Also: please always tell us how you installed the packages, what version of ROS you're using, how you installed that, etc.

Without such information we can't be of much help.

@srsidd
Copy link
Author

srsidd commented Jan 23, 2018

We are using robot_interface_download_irb1600x145.launch from the private repository abb_experimental in the ros-industrial-consortium which is probably why that launch file is not visible here.

The system is Ubuntu 16.04, with ros-kinetic installed using the binary. The abb_experimental was cloned from source.

This is the real robot, not robot studio.

@gavanderhoorn
Copy link
Member

We are using robot_interface_download_irb1600x145.launch from the private repository abb_experimental in the ros-industrial-consortium which is probably why that launch file is not visible here.

ok. May I suggest:

  1. use only the EGM driver packages from the ros-industrial-consortium/abb_experimental repository, nothing else
  2. when using abb_driver, use only packages from ros-industrial/abb and ros-industrial/abb_experimental

I know this is less than ideal right now, but mixing this is going to confuse people (me and you).

At this point the biggest clue we have is that nc also can't seem to connect.

Can you check with Wireshark whether it can actually connect, but just doesn't get any data, or doesn't actually connect?

Also: make sure there are no wireless segments between you and the robot controller, anywhere.

@gavanderhoorn
Copy link
Member

@gavanderhoorn wrote:

1 . use only the EGM driver packages from the ros-industrial-consortium/abb_experimental repository, nothing else

This is the same advice I gave you in https://github.com/ros-industrial-consortium/abb_experimental/issues/11.

@srsidd
Copy link
Author

srsidd commented Jan 30, 2018

Took your advice, and tried the package from the publicly available driver. Ran into the same problem. We realized that we were not able to resolve the ip address from the rapid side. Specifically, GetSysInfo(\LanIp) here returned empty. We were able to connect the robot by hard coding the ip address in it's place.
Not sure what the real problem is.

@gavanderhoorn
Copy link
Member

Took your advice, and tried the package from the publicly available driver. Ran into the same problem.

a bit captain hindsight, but this was something to be expected.

We realized that we were not able to resolve the ip address from the rapid side. Specifically, GetSysInfo(\LanIp) here returned empty. We were able to connect the robot by hard coding the ip address in it's place. Not sure what the real problem is.

That is strange, and would be something to look into.

Does this happen with any RAPID program (ie: with just a GetSysInfo(\LanIp) piped to a popup or print statement fi)?

@gavanderhoorn
Copy link
Member

@srsidd: did you figure out what was going on with GetSysInfo(\LanIp)?

@srsidd
Copy link
Author

srsidd commented Feb 15, 2018

Sorry for the late reply, I tried your suggestion - the GetSysInfo(\LanIp) returned WanIp and not the LanIp. But according to the manual it is supposed to return the WanIp.
We were able to connect to the robot when we hard coded the LanIp which makes sense... Not sure what the solution is though.

@gavanderhoorn
Copy link
Member

Which network connection are you using? The service port, or the regular one?

@srsidd
Copy link
Author

srsidd commented Feb 15, 2018

We're using the regular one - the X5. LAN3.

@gavanderhoorn
Copy link
Member

gavanderhoorn commented Feb 15, 2018

According to this page ("The relation between physical Ethernet ports and system parameters"), X3 is the connection that the flexpendant should be connected to, part of the private network. Shouldn't X6 be used for regular connections? IRC5 product manual shows the same thing (section 2.5.5).

Further down on that page it would seem that the WAN is part of the public network. It would then make sense for "GetSysInfo(\LanIp) [to] return[ed the] WanIp".

@srsidd
Copy link
Author

srsidd commented Feb 15, 2018

Ah, good catch. I don't remember why we had it set up that way. Changing that to X6 which is the WAN network should work. Thanks! Closing this issue.

@srsidd srsidd closed this as completed Feb 15, 2018
@gavanderhoorn
Copy link
Member

It shouldn't, but I'd be interested to know whether #142 is also influenced by this.

@nali12

This comment has been minimized.

@gavanderhoorn

This comment has been minimized.

@nali12

This comment has been minimized.

@gavanderhoorn

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

3 participants