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

Connecting to UR3 with WSL causes compile error: "null" not defined #689

Open
1 task done
NathzxcCode opened this issue Mar 18, 2024 · 11 comments
Open
1 task done
Labels
requires testing Requires some (hardware) testing WSL Issues around Windows Subsystem for Linux

Comments

@NathzxcCode
Copy link

Affected ROS Driver version(s)

latest from github

Used ROS distribution.

Noetic

Which combination of platform is the ROS driver running on.

Windows using WSL2

How is the UR ROS Driver installed.

Build both the ROS driver and UR Client Library from source

Which robot platform is the driver connected to.

UR CB3 robot

Robot SW / URSim version(s)

3.15

How is the ROS driver used.

Through the robot teach pendant using External Control URCap

Issue details

Summary

i am trying to control the UR3 robot using WSL however i keep getting issues when running the external control program getting connection to remote PC at 192.168.1.102:50002 could not be established. Reason connection timed out. i followed the solution #486 adding portforwarding and turning the firewall off. however i get a new issue Compile error name "null" is not defined. this error seems to appear when i add my windows IP as the reverse_ip:=192.168.1.102 when loading the driver.

Issue details

i have done portforwarding:
netsh interface portproxy add v4tov4 listenport=50002 connectport=50002 connectaddress=172.17.96.1
netsh interface portproxy add v4tov4 listenport=50001 connectport=50001 connectaddress=172.17.96.1
netsh interface portproxy add v4tov4 listenport=50003 connectport=50003 connectaddress=172.17.96.1

set my external control ip and port to 192.168.1.102 50002
i run the driver: roslaunch ur_robot_driver ur3_bringup.launch robot_ip:=192.168.1.101 reverse_ip:=192.168.1.102
i can see the robot in rvis and track how it moves. however when i try to run the extrenal control program (external control urcap in the program tree) i get the error mentioned.
error

when i dont pass the reverse_ip argument into the driver i get the error connection to the remote pc at ip:port could not be established. reason: connection timed out.
what do i need to do in order to control my robot through WSL?
could headless mode work better if i keep getting errors with the external control URCap?

Relevant log output

No response

Accept Public visibility

  • I agree to make this context public
@RobertWilbrandt
Copy link
Collaborator

Can you please verify that this is your current setup?

  • Robot ip: 192.168.1.101
  • Windows static ip: 192.168.1.102
  • Firewall disabled
  • Port forwarding done for ports 50001, 50002, 50001 with netsh interface portproxy add v4tov4 listenport=50002 connectport=<port> connectaddress=<wsl ip>
  • External control ip set to 192.168.1.102
  • Driver started using roslaunch ur_robot_driver ur3_bringup.launch robot_ip:=192.168.1.101 reverse_ip:=192.168.1.102

I am not quite sure what could be missing in this case, i'll try to test it out. Im am not really sure how a null appears in the program. Using headless mode should not really change anything, as it only loads the external control script automatically. Connection problems from within the script should be unaffected by this.

@NathzxcCode
Copy link
Author

NathzxcCode commented Mar 19, 2024 via email

@NathzxcCode
Copy link
Author

NathzxcCode commented Mar 19, 2024 via email

@RobertWilbrandt
Copy link
Collaborator

To me this looks like there is some problem transmitting the urscript from external_control.urscript to the urcap. The urcap then doesn't handle this issue correctly and outputs null into the program before executing.

I am a little bit confused about the port assignment here - in the non-headless mode, i would expect traffic to go through port 50002, in headless mode we directly send the program through the secondary interface at port 30002. Even so, could you please check if you need to additionally forward ports 30001, 30002 and 30004 (see driver architecture and client interface overview)? @urrsk do you maybe have some more insight on this?

@NathzxcCode
Copy link
Author

NathzxcCode commented Mar 21, 2024

Hi thanks,
I will try today to see if forwarding ports 30001, 2, 4 makes any difference.
im just curious in the ur3_bringup.launch there is also a port 50004 <arg name="script_command_port" default="50004" should i pass this though too?
also on the client interface overview link you sent it mentions that ports 50003,4,5 are only used on e-series robots does this effect things if im using a ur3
image

also just to clarify when you say to disable the firewall you are referring to windows firewall correct? WSL also seems to have a firewall however incoming traffic on that is set to allow.
thanks

@NathzxcCode
Copy link
Author

NathzxcCode commented Mar 21, 2024

I tested passing through ports 30001,2,4 with no luck.
i disabled the WSL firewall aswell as windows firewall with no luck
i tried headless_mode = True, it ran and seemed to start the external control script but i was unable to execute the rosrun ur_robot_driver test_move so im assuming theres still a connection issue

@urrsk
Copy link
Member

urrsk commented Apr 3, 2024

@NathzxcCode sad to hear that it does not work out for you.
As @RobertWilbrandt points out, port 50002 needs to be open from the UR robot to the UR ROS driver and that port 29999, 30001, 30002, 30004 and, the ROS drivers reverse_socket port, 50001 needs to be accessible from the UR robot to the UR ROS driver.

Suggestion to verify connections:

  1. Please verify that you can ping the computer from the robot and robot from computer?
  2. Can you telnet the 'secondary' or 'primary' protocol on port 30002 and 30001 on the robot from your computer? You should see a lot of binary data (not human readable) on your screen if it succeed.
  3. Test the External Control URCap on the robot by using the example: https://github.com/UniversalRobots/Universal_Robots_ExternalControl_URCap/tree/master/examples/simple_external_control_server

Hope this will help you forward

@fmauch fmauch added requires testing Requires some (hardware) testing WSL Issues around Windows Subsystem for Linux labels Apr 17, 2024
@troyCor
Copy link

troyCor commented Jun 19, 2024

Hello,

Has there been any update on this issue? I am running into the same issue using a CB3 UR10. After following the debugging steps in #486 I have ended up here with the same issue as NathzxcCode

I can ping the robot on 192.168.1.102 and its pose updates live in RVIZ

out put from telnet is
w$w$�?�333333@9?ə�����?ə�����?ə�����?ə�����?ə�����?ə�����?����Cݔ?����Cݔ?����Cݔ?����Cݔ?����Cݔ?����Cݔ?��Fw�M?PbM���?�z�G�{����������@zCzD�B�?��@_�@_�@��U@��U@��U@��U@����������b�@�b�@�b�@�b�@�b�@�b�@PwV=PwV=PwV=PwV=PwV=PwV=�?C�C�A�?��@_�@_�@��U@��U@��U@��U@����������b�@�b�@�b�@�b�@�b�@�b�@PwV=PwV=PwV=PwV=PQ.?�?�?���s/���s<Q�=��B1A�G�A�/������Q�����Q���XB?VA��jA�'���g�!h��g�!h��>�.&B>��A�+hA�}����:�����:���������RDBр�RuDBр;B@A���Bbn�e���� ��~��f�{��?���$?p� V��@�g �������?�ffffff�Q�e!�V ��lDa�ӿ�'��k���VUحx��G �̬w�����=������>y�be>�y+:�_���j�\�?�an"+��@+�ͱ�8��0�%gch#���^�?��/��s?��9�E?�"��Y����^��O쿆�g��?�!!\��z��!pg���5 ��hs4␦��@�'�s�rd#<?�Y�{|Cm��"���V{����p��K ?p�?p�?pbM�?pbM�A˨B@G?U����␦�\t%?~��?}S/�C�[2;ě�B,���W�(,/c@W�(,/c�W�(,/c@W�(,/c�W�(,/c@W�(,/c�W�(,/c@W�(,/c�W�(,/c@W�(,/c�W�(,/c@W�(,/c@Z��� D@Z��� D@ ����Ʊ@D@ ����Ʊ@D@ ����Ʊ@D@ ����Ʊ@D?��R8-se?�WJ�D�?�?�333333?��㕁$�/��PH��?�K]�c�A?��ȼ��?����%��?��kP��|?�!�TREP?�!�TREP��!�TREP==%u��S{+ ␦�\t����*0��?ϗ:�q?祜�E R�@?�?�?���sa���s<Q�=� B>��A�G�A�4�����Q�����Q����B?t�A��A�-���f��!h��g�!h��>��xB>�sA�.�A�o����:�����:���ڙ��RCDBр�RuDBр�B@\A��PBg��e����x<4��f��P��?���|��?q��T�3�@�m"A���ҁTk?�ffffff5 ���P��@ �sН����(?���?�Y�{|Cm��sS�_G?���p��K ?p�?p�?pbM�?pbM�AɘB@G?�ν���␦�\t%?~��?}S/�C�[2;ě�B,�==$�.�w� + T;@?�?�?���s#Q��s<Q�=�@B>�sA�K�A�: �����Q�����Q��B?t�A���A�3���f֢!h��g�!h��>���B>ɺA�0KA�i����:�����:�����>��RCDBр�RuDBр<7�B@/��Bi��e����@Ŀ�fχi�?��N��?q�)_�@�q�(o?�ffffff5 �����Q��@�=�E��h�GA�?���k�백�d�^��͖�y�DK ?p�?p�?pbM�?pbM�AɘB@G? ��␦�\t%?y�?}S/�C�[2;ě�B,�==$����Y� + ␦�\t����V�c�?� Uр?�?�?���r����s<Q�=נB>��A�OsA�E������������Q��נB?eA���A�2}��g�!h��g�!h��>�.&B>ɺA�1�A�pk���:�Q���:����܀������Ξ?�ffffff5B@\A���B���QC��@��KA��rd#<?�}�BƯ���޷�T�?���p��K
?p�?p�?pbM�?pbM�AɘB@G?U����␦�\t%?��?z�c@C�[2;ě�B,�==$��g��h +
WH�?�?�?���s<Q��s<Q�=�B>�sA�U�A�K6�����������Q��ިB?E�A��A�<Z��g�!h��g�!h��>OB>�sA�3�A�u����:�����:����܀B߄��Q�DBр�RuDBр;�B@A���Bn��e���,yX��f�@n�S?���XǢ?q��j�@�}��)�������?�ffffff5 ���ɬ�@y
ϋ���Q��}�BƯ���"���V{����p��K
?p�?p�?pbM�?pbM�AʠB@G? ��␦�\t%?|
ɀ?|
ɀC�[2;ě�B,�==$�7�W� +
X��?�?�?���sQ��s<Q�=�@b>�sA�XrA�N������������Q��נB?t�A��nA�:j��f�!h��g�!h��>�7B>ɺA�4�A�uu���:�����:�����ޫ��R�DBр�RuDBрB@\A��Bi��e���"��y��f�p�;�?��(���?q\D���@�c��}����7k�.?�ffffff5 �����Q��@��KA����O>�?���k���;��K
?p�?p�?pbM�?pbM�A͸B@G?�ν���␦�\t%?��@?z�c@C�[2;ě�B,�==$�� � +
Zu?�?�?���s/���s<Q�=�B?�A�Z�A�RR�����Q�����Q���B?t�A���A�>���g�!h��g�!h��>���B>ɺA�6uA�z���:�����:����B?�K��RuDBр�RuDBр;�B@/��TBk��e���8�����fΰ\�?��J��r?p�ˉ�U�@����{����2j?�ffffff5 ��B���@� m����0�Y?��!%���백�d�^����p��K ?p�?p�?pbM�?pbM�AʠB@�S?7UD����␦�\t%?}S/�?| ɀC�[2;ě�B,�==%\/+7_ + [�?�?�?���s?ȟD�����s<Q�=�B>��A�_A�V������������Q��ިB?t�A�A�<���f��!h��g�!h��>���B>�A�7(A�F���:�����:�������RCDBр�RuDBр�B@\A���Bp-�e���4Qw��f�sv�r?��0�u�?q�p�ܶ@�j�,�_���^�?�ffffff5 ���~6�@Y ϋ��?��?�}�BƯ���"���V{?���p��K ?p�?p�?pbM�?pbM�AʠB@G?�ν���␦�\t%?~��?}S/�C�[2;ě�B,�==$:"���� + ]�@?�?�?���s/���s<Q�=�B1A��A�_������Q�����Q���hB?eA��A�8���g�!h��g�!h��>���B>ɺA�7�A�����:�����:����B?t�#��R�DBр�RuDBрB@\A��Bo#�e���֫��6��fνT��?���Mg�?p�י��@��~ ���e�N?�ffffff5 ���ɬ�@ h������oT?��!%�����f��v:K ?p�?p�?pbM�?pbM�A̰B@G?Ug�(K␦�\t%?}S/�?| ɀC�[2;ě�B,�==$��;[��+ ^�@?�?�?���sQ��s<Q�=�B1A�bZA�aH�����Q�����Q���XB?t�A��A�7L��f��!h��g�!h��>�KB>�sA�:�A�����:�����:����B?�'��R�DBр�RuDBр;�B@�A��Bm=�e����9x���f�J���?��/�!?qs*)@�p����F�d?�ffffff5 ��B���@�'�s�*j ?��!%����OC�ŵ����p��K ?p�?p�?pbM�?pbM�AʠB@�S?$����␦�\t%?}S/�?z�c@C�[2;ě�B,�==$I��=�� + ��?�?�?���s/���s<Q�=�B>��A�eA�a������Q�����Q����B?�A�SA�<��f��!h��g�!h��>���B>�sA�AOA�k���:�Q���:�����DBр�RuDBр;B@A��WBl��e���S^7���fΆ2��?�� ��V?qD䖈�@�s��j�� K�F�?�ffffff5 ��B���?��5�Bv�h�GA�?�CE�P;п�sS�_G����p��K ?p�?p�?pbM�?pbM�AʠB@G?U����␦�\t%?}S/�?}S/�C�[2;ě�B,�==$y��V�{ + ␦�\t����*0��?ϗ:�q?祜�E b�?�?�?���sQ��s<Q�=aB>�sA�f9A�c �����Q�����Q���B?�A� �A�@?��f��!h��g�!h��>�p�B>�A�L?A�����:�����:����RCDBр�RuDBр;�B@A��Bq>�e���ҿ�_ο�f�r��"?���I?q�=��l@�dw%������۶�?�ffffff5 ���~6�@BHx�Z��-9"�c?���k��Rpt�޿���p��K ?p�?p�?pbM�?pbM�AɘB@G?U�(K␦�\t%?~��?~��C�[2;ě�B,�==$yb�CSK + �s��RDBр�RuDBр;B@�A���Br5�e�����K���fϊVG�?�����?q<iQ�@�j�7�B��X�?�ffffff5@\A�N�B���~6�@Y ϋ�-9"�c?��!%����������p��K
?p�?p�?pbM�?pbM�AʠB@G?U����␦�\t%?z�c@?��1@C�[2;ě�B,�==$�^r]�2 +
␦�\t����V�c�?�
e�?�?�?���r����s<Q�>�B>��A�i �/
A�v������������Q���B?eA�kA�9���f��!h��g�!h��>���B>ɺA�U㑱���:�����:���� �����RCDBр�RuDBрB@\A��Bp��e���|�҇���fҽ3��?��NL�N?p�NV␦_�@�g������6~�?�ffffff5 ����ü\@2�y0T�h�GA�?���k��OC�ŵK ?p�?p�?pbM�?pbM�A͸B@G?Ug�(K␦�\t%?| ɀ?y�C�[2;ě�B,�==${l�G + f�?�?�?���s/���s<Q�=��B>�sA�i�A�m������������Q��ިB?t�A��A�>a��f�!h��g�!h��>�\�B>�sA�\HA㑎���:�����:����%���RuDBр�RuDBр;B@�A��Bn��e�������n��f��0" ?��)6ص?q�Lۼ�m6�w����C ?�ffffff5 ��Vov"@Y ϋ�������?ܦS&���Rpt�޿���p��K ?p�?p�?pbM�?pbM�A˨B@G? ��␦�\t%?��@?}S/�C�[2;ě�B,�==% $)c� + h!?�?�?���sQ��s<Q�=��B>��A�j}A�n;�����Q�����Q���B?eA��A�<=��g�!h��g�!h��>�.B>ɺA�_WA�C���:�����:����܀B?e޼��RCDBр�RuDBр�B@\A���Bl��e���L�
$��f�k!n�?��uON?p��N
?���p��K ,J@�z���{���P2?�ffffff5 ��4
���@� m��sP��k?�}�BƯ��:&�
?p�?p�?pbM�?pbM�A̰B@G?�ν���␦�\t%?}S/�?}S/�C�[2;ě�B,�==$���� +
i�@?�?�?���s<Q��s<Q�=�B1A�m�A�_ �����Q�����Q��ИB?t�A�"�A�2n��f��!h��g�!h��>���B>�sA�d�A�|����:�����:�������R�DBр�RuDBр;܀B@/��JBr��e���3�V!��f�l�z?���>l?q;�RC�@�pr����� �E�?�ffffff5 ���$H];@��� �␦a� �?��:^R����OC�ŵ���Na��$K ?p�?p�?pbM�?pbM�A̰B@G?U����␦�\t%?~��?z�c@C�[2;ě�B,�==${C�� + kM�?�?�?���s/���s<Q�=��B>�A�p �/ A�������Q�����Q����B?eA�&LA�1|��f֢!h��g�!h��>�S�B>�sA�h�A�����:�����:�������R�DBр�RuDBр;B@�A��pBv�e����:2ο�f�>Ydd?����^�?q�=�C�@�z������P?�ffffff5 ��n/s�@.�^����\�)�?�5�1�@�:&����p��K
?p�?p�?pbM�?pbM�AʠB@G?U����␦�\t%?~��?��C�[2;ě�B,�==$��Y�Z� +
�/��RuDBр�RuDBр;܀B@�A��B���e����I����fϤ��j?��҂^?q�����@�q6s�k��g�;?�ffffff5� ��n/s�@�'�s�*jؽ�=�hB?�A�VB ?���k��Z P����Na��$K ?p�?p�?pbM�?pbM�AʠB@G?U����␦�\t%?}S/�?| ɀC�[2;ě�B,�==$��L-�� + ␦�\t���ˮ�,@?�y��v nZ�?�?�?���s ���s<Q�=B>��A�w�A�d������Q�����Q���HB?t�A�/XA�#��f��!h��g�!h��>��_B>�A�sJA����:�Q���:�����?qRCDBр�RuDBр;B@�A���B���e���-&�����f�,���?�� ����p��K�p��f�|�?�ffffff5 ���ɬ�@沷6���m9y?���k�:&� ?p�?p�?pbM�?pbM�A˨B@G?�ν���␦�\t%?y�?}S/�C�[2;ě�B,�==$)��� + o��?�?�?���sQ��s<Q�=�@B>�sA�{/A�l�����Q�����Q����B?eA�1�A� ��g �!h��g�!h��>�y�B>�A�vA����:�Q���:����B?e���?p���JK@�mb*����v�u?�ffffff5 ��b�v�?�d�������nș�?��!%���백�d�^?���p��K
?p�?p�?pbM�?pbM�AʠB@G?U����␦�\t%?z�c@?|
ɀC�[2;ě�B,�==%/��� +
qh?�?�?���sH���s<Q�=��B>��A���A�e������Q�����Q����B?t�A�3�A�/V��g �!h��g�!h��>�S�B>�A�z�A㫛���:�����:���Ӄ��RuDBр�RuDBр;܀B@A��B�@�e�������f���?&?��2��?q���b\@��]d�n��'ʩ��?�ffffff5 ��hs4␦��@.�^����\�)�?���k�:&���Na��$K
?p�?p�?pbM�?pbM�A˨B@G? ��␦�\t%?��?}S/�C�[2;ě�B,�==$�j�+h +
␦�\t����t�
r�?�?�?���s/���s<Q�=��B>�sA��nA�f������Q�����Q���@b?eA�5�A�.���f�!h��g�!h��>�.B>�sA�|�A�����:�����:�������RCDBр�RuDBр;B@\A�� B�{�e����%����fΛ���?���?q-�n�|J@�mĬg=�����s?�ffffff5 ��4~���@E�0��?�sP��k?��!%���:����p��K ?p�?p�?pbM�?pbM�AʠB@G?@�$����␦�\t%?��1@?y�C�[2;ě�B,�==$�D��P + tu@?�?�?���s#Q��s<Q�=��B1A���A�g������������Q���B?eA�9PA�-���f��!h��g�!h��>�.&B>�sA�
�A�����:�����:����Ρ��RDBр�RuDBр;܀B@�A��?B�r�e���k��t��f�1���?���G��?q-I��,@�g�pJr��U��ffffff5 ��hs4␦��@ +~�����rd#<?��!%����1�)��A���Na��$K ?p�?p�?pbM�?pbM�A˨B@G?U����␦�\t%?}S/�?}S/�C�[2;ě�B,�==$H��y + u�@?�?�?���sH���s<Q�=��B>��A��qA�a������Q�����Q���HB?eA�<�A�␦���f�!h��g�!h��>���B>ɺAȁ�A�{���:�����:�����B?eA�B��?s� �?sؽ�=�8B@�A�k �x��R�DBр�RuDBр;܀B@�A��LB���e���-T�Oտ�f�=^�s?��椅7?q<~v$@��l,$��-���#?�ffffff5 ��4~���@沷6�h�GA�?�5�1�@��� y3$���Na��$K ?p�?p�?pbM�?pbM�A˨B@G?Ug����␦�\t%?~��?z�c@C�[2;ě�B,�==$2we�A +
w��?�?�?���s#Q��s<Q�>@b>��A��A�i������Q�����Q���B?t�A�?�A����f��!h��g�!h��>�%GB>�AȃGA�$���:�Q���:���� �K�
?q.^َ6@�mz��/���跬?�ffffff5/��b�v�@� m����#��?���k�:&�
?p�?p�?pbM�?pbM�AʠB@G?$����␦�\t%?��@?~��C�[2;ě�B,�==$Ko�ȕ +
␦�\t����=�nF?�m%��?祜�E
x��?�?�?���s<Q��s<Q�=�B1A���A�jI�����Q�����Q���HB?t�A�B�A����f֢!h��g�!h��>��6B>ɺAȄ|A㢗���:�����:����܀B?e`

@NathzxcCode
Copy link
Author

I ended up dualbooting my system with Linux because I was against a tight deadline. I didn't end up trying the latest suggestions

@urrsk
Copy link
Member

urrsk commented Jun 21, 2024

Hello,

Has there been any update on this issue? I am running into the same issue using a CB3 UR10. After following the debugging steps in #486 I have ended up here with the same issue as NathzxcCode

I can ping the robot on 192.168.1.102 and its pose updates live in RVIZ

out put from telnet is `w$w$�?�333333@9?ə�����?ə�����?ə�����?ə�����?ə� ...

@troyCor okay it seems that you have the right ports open and can connect to the robot.
The External control urcap uses by default port 50002 to receive the urscript from the driver.
Please check if the ROS driver is running and also check if there is some firewall or similar that blokes the communication for the ROS driver.

Please share when you find the solution

@urrsk
Copy link
Member

urrsk commented Jun 21, 2024

I ended up dualbooting my system with Linux because I was against a tight deadline. I didn't end up trying the latest suggestions

@NathzxcCode happy you got forward and a dual boot was an option for you. This is also the solution the in regards real time performance as well.
Though, maybe a docker container could also be a similar solution getting it running on windows

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
requires testing Requires some (hardware) testing WSL Issues around Windows Subsystem for Linux
Projects
None yet
Development

No branches or pull requests

5 participants