How can I get a Clearpath Jackal to receive HDL-32 data?
This may be more of a general networking question but because it's relevant to the ROS community I felt like this was the most appropriate place to discuss it.
The Problem (TL;DR)
I have a Velodyne HDL-32 connected to a Clearpath Jackal over LAN. I'm using the ROS Velodyne drivers. When I run the commands on a laptop running Ubuntu, everything works as expected and I can see the data in RViz and in the ROS topic /velodyne_points
When I run the same commands on the Jackal, the drivers launch as normal but I get nothing.
The Problem (full explanation)
I have an HDL-32, one Ethernet switch (not router), one Windows PC, one Ubuntu PC and one Clearpath Jackal connected over LAN as shown (note: on each device all WiFi connections and firewalls are disabled):
The HDL-32 publishes it's data as UDP packets to the IP address 192.168.3.255. Any device with an IP device on subnet "3" can listen to and display the data using either Veloview for Windows or RViz and the ROS drivers for Linux.
- If the Windows PC is configured as shown, I can view the data in real-time in Veloview
- If the Ubuntu PC is configured as shown, and I run the Velodyne drivers, I can view the data in real-time in RViz. I can also see the raw data on the
velodyne_points
rostopic. - BUT if I run the same drivers on the Jackal, the drivers launch but never receive any data and nothing is published to the
velodyne_points
rostopic.
How can I make drivers on the jackal work? Any advice or help will be greatly appreciated.
Some specifics about the setup with Jackal:
- The Jackal has one static Ethernet port "br0" and one DHCP port "eth0". There is also a "eth1" port which I haven't placed yet.
- I access the jackal via SSH on the static port with the IP address 192.168.1.11.
- After getting in with SSH, the "br0" connection has the IP 192.168.11 and the "eth0" connection appears un-initialized. After running the "ifconfig" commands as stated on the Velodyne driver page the "eth0" connection is configured as shown in the diagram above.
The "eth0" connection on the Ubuntu PC (when everything works) appears as follows:
Note that the "RX Packets' show that the connection is receiving data.
If I also plug the DHCP into the network (adding it to the connections in the diagram above) and run the driver commands I get the same configuration on the "eth0" port:
And the port seems to be receiving the HDL data (hence the high volume of RX packets - 1+ GB). But the drivers still don't seem to be getting the data from the port as nothing is published to the
/veoldyne_points
topic.- As a side note, the connection via SSH suffers from significant latency when the DHCP port is plugged into the network.
- Unfortunately I'm not the first person to use ...