Skip to content

Network topology

uakotaobi edited this page Mar 19, 2017 · 9 revisions

Table of Contents

Introduction

FRC introduced a new robot radio in 2017, the OM5P-AC, which only has two ports. This vastly complicated the networking situation for our robot since we have up to three devices that need to be connected to the robot network at once. This article will attempt to explain what devices we use, what the problem we encountered was, what our solution was, and how to connect the robot's components from scratch in case that needs to be done again.

Devices

  1. OM5P-AC Robot Radio (FRC standard.)
    • Serves as a DHCP and DNS server.
    • *When configured with the competition software*:
      • Has no driver-accessible wireless interface
      • Web interface is disabled (you must use the configuration utility to change its settings)
  2. RoboRIO (FRC standard.)
    • Hosts the WPILib robot code (usually Java-based, but not always.)
    • Requires imaging before it can be used
    • Eclipse can deploy on these devices using either Ethernet or USB.
      • The WPILib Build.xml tries each of the potential DNS names or IP addresses in sequence.
  3. NVidia Jetson TK1 system on a chip (off-the-shelf purchase.)
    • Runs an almost bog-standard Ubuntu, with a powerful processor so that PapasVision processing is I/O-bound rather than CPU-bound.
  4. NetGear gs605 Gigabit Ethernet Switch (off-the-shelf purchase.)
    • Purchased specifically because it has a 12V, 0.5A power connection which is perfect for our robot's voltage regulation module (VRM.) The other NetGear consumer routers use weird amperages, and none of us want to add a transformer to the robot.
    • Doesn't seem to have a web interface.
  5. One or more Windows 7+ driver station laptops.
    • You're going to need a very long Ethernet cable to tether to the robot for testing!

Setup, from the bottom up

Configuring the robot radio

Configuring the RoboRIO

Configuring your new Jetson TK1 (or verifying the setup of an existing one)

  1. Block future package updates from breaking the graphics driver by executing the following command:
    tegra-ubuntu$ sudo apt-mark hold xserver-xorg-core
  1. Enable the Universe repository so that you can install the OpenCV package.
  2. (Install required packages)
  3. Configure the Jetson to have a static address in the 10.0.0.* subnet. Here are the settings we used:
    Subnet mask: 255.255.255.0
    Gateway: 10.0.0.1
  4. Connect the Jetson to the switch.
  5. Ensure that mDNS is working properly:
    1. If you're running a firewall on the Jetson (we didn't), then open up UDP/5353.
    2. Use the following command to determine if libnss-mdns and lib32nss-mdns are installed:
      tegra-ubuntu$ dpkg -l "*nss*"
    3. Confirm that /etc/nsswitch.conf contains a line that resembles the following:
      hosts: files mdns4_minimal[NOTFOUND=return] dns
    4. Run the following command and confirm that you can see the RoboRIO's mDNS name, roboRIO-1759-RFC:
      tegra-ubuntu$ avahi-browse -alr
      You can also use the avahi-discover GUI to browse zeroconf services.

Configuring your driver station