# End-to-End Automated Guided Modular Vehicle
## 5 Experimental Platform
### Sensors and Instrumentation  
The vehicle had three cameras covering the front view. The central processing hardware was a Nvidia Jetson AGX Xavier that oversaw acquiring data, processing it, and turning it into actuator primitives.  
The components that were used to accomplish autonomous navigation can be grouped into sensors, processors, and control elements. Table 4 briefly summarizes these elements.  
Two types of sensors were used to acquire information from the environment: cameras and a LIDAR. The Logitech cameras used were middle/low range. They provided 720-1080 p images at 30 fps with a 78\({}^{\circ}\) field of view (FOV). Their automatic light correction warranties contrasted images, making them a good choice for different outdoor environments. Three of these cameras were used to generate a 150\({}^{\circ}\) FOV, as the acquired images from the left and right cameras overlapped the central one. The LIDAR, an active sensor manufactured by Hokuyo, uses a laser source to scan a 270\({}^{\circ}\) FOV divided into 1081 steps and a maximum distance of 10 m. It has an angular resolution of 0.25\({}^{\circ}\) and a linear accuracy of 40 mm. A full scan takes around 25 ms. The LIDAR was positioned in the center of the vehicle's front. An F310 Logitech gamepad was used to tele-operate the vehicle's velocity and [PERSON]'s steering angle [49]. These four sensors along with the gamepad were connected to the AGV's processor: a Nvidia Jetson AGX Xavier. The cameras were connected through USB-C 3.0 ports, the Hokuyo through an Ethernet connection, and the gamepad via a USB 2.0.  
A Nvidia Jetson AGX Xavier and an Atmega 2560 were used as high and low-level controllers, respectively. The Nvidia Jetson AGX Xavier acquired and processed information from the environment and the user. The user's information was acquired through a mouse, a keyboard, and a gamepad, which were connected to a USB-hub 3.0. The CPU/GPU capabilities of this development kit enable it to perform operations of up to 1100 MHz. Thus, ML algorithms can be easily implemented in this platform. The user can supervise the Nvidia Jetson AGX Xavier through an on-board screen. The developer kit translated its computations into low-level instructions that could be communicated to a microcontroller using an RS232 protocol. An ATmega 2560 microcontroller embedded in an Arduino 2560 shield was used. This microcontroller can handle an intensive use of input-output (IO) peripherals and serial communication protocols. It has enough computational power to implement a basic open-loop and hysteresis control for the speed, braking, and steering systems. The speed system was open loop. Basic digital outputs were enough to activate and deactivate the system. Hysteresis control for the brakes and steering required an Analog-Digital Converter (ADC) and the RS232 communication protocol. The brakes and the steering angle positions were sensed with potentiometers. Typical H-bridges were used to trigger the actuators, which could be halted by a kill switch that interrupted the Vcc. The kill switch was used as an emergency stop. Figure 4 shows the instrument connection diagram.  
\begin{table}
\begin{tabular}{c c c} \hline \hline  & & **Sensors** \\ \hline Camera & Logitech & C920 HD pro webcam, 1080 p \\ LIDAR & Hokuyo UST-10 LX & 10 m range, 1081 steps, 270\({}^{\circ}\) coverage \\ \hline \hline \multicolumn{3}{c}{**Processors**} \\ \hline CPU/GPU & Nvidia Jetson AGX Xavier & 512-core Volta GPU, 8-core ARM, 32 GB RAM \\ Microcontroller & ATmega2560 & 54 IO pins, 15 PWM channels, 16 ADC, 256 KB flash memory \\ \hline \multicolumn{3}{c}{**Controllers**} \\ \hline H-bridge & L298 & Dual full-bridge driver, 4A, 12 V \\ \hline \hline \end{tabular}
\end{table}
Table 4: Sensors, processors, and control elements.