With the change from the Raspberry Pi stack to the much more powerful Jetson TX1 some changes needed to be made to the overall architecture of Nomad's electronics. Some of it remains the same, such as the sensor cluster passing through the Arduino Mega. Some of the changes are enhancements made necessary by the new processor. The diagram illustrates what the new architecture looks like.
The biggest part of the change is the switch to the Jetson board. Obviously there are a lot of implications inherent in this change from a processing, speed, and software perspective. There were several hardware changes that went along with the change. The network configuration and USB busses are the most prevalent external changes.
Migrating to the Jetson allows us to remove the wireless router from on-board Nomad. The Jetson has built-in WiFi capabilities so we no longer have to depend on external hardware to accomplish this. This will allow us to move the router to a base station we will be using in the field. Nomad's WiFi will be configured to connect to this router when it's present, reducing the need to reconfigure the wireless connection whenever we move from one location to another.
The Jetson runs a faster USB 3.0 serial bus. The Pis have USB 2.0. Whereas USB 3.0 is backwards compatible with USB 2.0 an upgrade was needed in the USB hub for a couple of reasons. First, the older hub was used for power only. The USB connector to the computer physically broke off. Since the Pis had four USB ports each, anyway, we did not need to use the hub for serial communication. The Jetson developer board has a single USB 3.0 port. This, obviously, is not enough to connect to the camera, motor controller, Arduino, wireless keyboard/mouse, and game controller. Also, the Zed stereo camera requires USB 3.0, so a USB 2.0 hub would also be insufficient. An 8 port USB 3.0 hub has been added. The hub still leverages external 5v power to supplement what's coming off the dev board.
Off of the USB hub we attach the Roboclaw motor controller, Arduino Mega, and the Zed camera. Not shown on the diagram are a Logitech F710 wireless game controller and a logitech wireless keyboard and touch pad. The game controller is intended to allow manual control of Nomad in demo mode. The wireless keyboard and touchpad will allow us to program nomad directly and rely on SSH or other remote interfaces. We will still be able to SSH into Nomad when necessary, but programming directly will be convenient.
As with the previous architecture, the Roboclaw motor controller communicates via the USB channel. However, it is still powered directly from the 12v bus. The motors require 12v and the Roboclaw will take the 5v needed for the logic system from this, as well, through an on-board 5v regulator. The Arduino Mega is also communicating through the USB serial bus. This is also sufficient to run the HC-SR04 ultrasonic range finders. However, with the addition of two servos for the pan/tilt mechanism, we may need to provide an external 5v to the sensor board. This will require severing the 5v from the Arduino to prevent other complications.
Power is supplied to the 12v bus through one of two methods. When operating normally, Nomad is powered by four 11.1v LiPo battery packs. These battery packs charge to 13.4v fully charged. the overall duration of the battery packs is still unknown and untested on-board Nomad with the new electronics. When on the bench during testing and development, Nomad is powered by a 12v power supply built into the support box. This will prevent delays in development due to need to charge the batteries. The 12v bus directly powers the Jetson board, Roboclaw, and two fans to cool the box when enclosed.
A 5v regulator is attached to the 12v bus to power the USB hub, Arduino sensor shield, and any other 5v devices added that require external power. The regulator is rated at 3A, which should be ample for the current configuration. However, if other devices are added or it proves insufficient, we may need to explore other alternatives.