UniversalRobots / Universal_Robots_ROS_Driver

Universal Robots ROS driver supporting CB3 and e-Series
Apache License 2.0
747 stars 401 forks source link

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

Open NathzxcCode opened 6 months ago

NathzxcCode commented 6 months ago

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 https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/issues/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

RobertWilbrandt commented 6 months ago

Can you please verify that this is your current setup?

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 commented 6 months ago

Hi Robert, Yes this is my current setup


From: RobertWilbrandt @.> Sent: Tuesday, March 19, 2024 9:08:30 AM To: UniversalRobots/Universal_Robots_ROS_Driver @.> Cc: Nathan Petrou @.>; Manual @.> Subject: Re: [UniversalRobots/Universal_Robots_ROS_Driver] Connecting to UR3 with WSL causes compile error: "null" not defined (Issue #689)

Can you please verify that this is your current setup?

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.

— Reply to this email directly, view it on GitHubhttps://github.com/UniversalRobots/Universal_Robots_ROS_Driver/issues/689#issuecomment-2006418662, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYWGA2IVQARFY6YFPWEGM6TYY76A5AVCNFSM6AAAAABE33WVYSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBWGQYTQNRWGI. You are receiving this because you are subscribed to this thread.Message ID: @.***>

NathzxcCode commented 6 months ago

One thing, I'm not sure of it helps but I have an ethernet connection straight from the robot directly to my laptop through a USB ethernet adapter, no router. I have setup the ip so that it is static to this address tho and can ping the robot still


From: RobertWilbrandt @.> Sent: Tuesday, March 19, 2024 9:08:30 AM To: UniversalRobots/Universal_Robots_ROS_Driver @.> Cc: Nathan Petrou @.>; Manual @.> Subject: Re: [UniversalRobots/Universal_Robots_ROS_Driver] Connecting to UR3 with WSL causes compile error: "null" not defined (Issue #689)

Can you please verify that this is your current setup?

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.

— Reply to this email directly, view it on GitHubhttps://github.com/UniversalRobots/Universal_Robots_ROS_Driver/issues/689#issuecomment-2006418662, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AYWGA2IVQARFY6YFPWEGM6TYY76A5AVCNFSM6AAAAABE33WVYSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBWGQYTQNRWGI. You are receiving this because you are subscribed to this thread.Message ID: @.***>

RobertWilbrandt commented 6 months ago

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 commented 6 months ago

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 commented 6 months ago

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 commented 6 months ago

@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

troyCor commented 3 months ago

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��sQ�`=�@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��sQ�`=�@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��sQ�`=�@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/���sQ�`=��B>�sA��nA�f������Q�`����Q�`��@B?e`A�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��sQ�`>@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 commented 3 months ago

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 commented 3 months ago

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 commented 3 months ago

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