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

Does this also provide support for ROS Kinetic version on Ubuntu 16.04 LTS? #6

Open
ashar6194 opened this issue Mar 9, 2018 · 6 comments

Comments

@ashar6194
Copy link

No description provided.

@fsuarez6
Copy link
Member

Yes, this package also works on ROS Kinetic.

@ashar6194
Copy link
Author

Thanks a ton. Shall be using this next month.

@ashar6194
Copy link
Author

Hi ,

Would you also know if this would work with Motive 1.5 ?

Also, I would like to add some detail to what I am doing. I have a windows machine with Motive 1.5 which is streaming data. And a separate machine with Ubuntu 16.04 and ROS Kinetic.

And I am connecting these 2 locally using an ethernet cable. Would you have an idea how to verify my connection and any best practices for verifying such connections for collecting Mocap data?

Thanks,

@ashar6194 ashar6194 reopened this Apr 3, 2018
@fsuarez6
Copy link
Member

fsuarez6 commented Apr 5, 2018

I think at some point we tested with Motive 1.5. Just make sure you change the SDK version accordingly here. You can get the version something like: Help -> About Motive .. -> NatNet Streaming Module

About best practices, I'll add the following to the readme:

Troubleshooting

  • Don't use the netgear router for your ROS network
    You should have two independent networks:
    • One for the Optitrack cameras + windows computer
    • One for windows computer + ROS computer
      This implies that your windows computer needs 2 network cards. Laptops usually have 2, one wired and one wireless.
  • The windows firewall isn't your friend
    If your ROS network appears as Public in the windows computer, the streaming will be blocked by the firewall. You need to make this network Private (How to make a public network private windows?)
  • Wrong subnet mask
    A mismatch between subnet masks could lead to errors. Use the same subnet mask in both computers. E.g: 255.255.255.0
  • Have you created the Rigid Bodies in Motive?
    This driver has been only tested with Rigid Bodies. You can create them in Motive as follows:
    Select the markers -> Right click -> Rigid Body -> Create From Selected Markers
  • Is Motive streaming?
    Set Multicast Interface field to the IP address of your ROS computer
    View -> Data Streaming -> Advanced Network Options -> Multicast Interface
  • Mutual ping
    Check you can ping in both directions: windows computer <-> ROS computer
  • Still doesn't work
    We have Motive 1.7.5 running on Windows 7, 64 bits and sometimes we need to reset the local interface for the streaming to work. This seems to be a bug. The reset is done by changing other interface and then back to the interface you want to use:
    View -> Data Streaming -> Network Interface -> Local interface

@ashar6194
Copy link
Author

Thank you for the troubleshooting tips, we have gone through them all and they have been very helpful.

We still get an error when trying to run the rigid_bodies_publisher script, I have attached an image of the error below:

20180405_191502

It appears that something is up with the multicast ip address. We have tried setting the multicast interface in Motive as you recommended but the ROS machine still doesn't seem to connect properly. Could it have something to do with setting up the multicast network on each machine? Or is that not necessary?

Thanks again for your assistance.

@fsuarez6
Copy link
Member

Can you provide the following outputs:
Windows computer:

$ ipconfig

ROS computer:

$ ifconfig

You may want to avoid sharing your external IP address
I just need the addresses related to your ROS network (something like 192.168.XXX.XXX) and Optitrack/Motive/Netgear network (something like 169.254.XX.XX)

Here, as example, the output for our setup:
Windows computer:

$ ipconfig
Windows IP Configuration


Ethernet adapter Ethernet 2:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : (Removed)
   Autoconfiguration IPv4 Address. . : 169.254.17.74
   Subnet Mask . . . . . . . . . . . : 255.255.0.0
   Default Gateway . . . . . . . . . :

Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . : (Removed)
   IPv6 Address. . . . . . . . . . . : (Removed)
   Temporary IPv6 Address. . . . . . : (Removed)
   Link-local IPv6 Address . . . . . : (Removed)
   IPv4 Address. . . . . . . . . . . : 192.168.0.126
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.0.1

ROS computer:

$ ifconfig
wlan0     Link encap:Ethernet  HWaddr (Removed)
          inet addr:192.168.0.134  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: (Removed) Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9907700 errors:0 dropped:0 overruns:0 frame:0
          TX packets:108916 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14683651338 (14.6 GB)  TX bytes:10399256 (10.3 MB)

Moreover, can you ping between computers?
Here, the commands and output using our setup:
Windows computer:

$ ping 192.168.0.134
Pinging 192.168.0.134 with 32 bytes of data:
Reply from 192.168.0.134: bytes=32 time=24ms TTL=64
Reply from 192.168.0.134: bytes=32 time=40ms TTL=64

ROS computer:

$ ping 192.168.0.126
PING 192.168.0.126 (192.168.0.126) 56(84) bytes of data.
64 bytes from 192.168.0.126: icmp_seq=1 ttl=128 time=4.12 ms
64 bytes from 192.168.0.126: icmp_seq=2 ttl=128 time=72.8 ms

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

No branches or pull requests

2 participants