This paper presents the application of a distributed systems architecture to an autonomous ground vehicle, Q,
that participates in both the autonomous and navigation challenges of the Intelligent Ground Vehicle Competition.
In the autonomous challenge the vehicle is required to follow a course, while avoiding obstacles and
staying within the course boundaries, which are marked by white lines. For the navigation challenge, the vehicle
is required to reach a set of target destinations, known as way points, with given GPS coordinates and
avoid obstacles that it encounters in the process. Previously the vehicle utilized a single laptop to execute all
processing activities including image processing, sensor interfacing and data processing, path planning and navigation
algorithms and motor control. National Instruments' (NI) LabVIEW served as the programming language
for software implementation. As an upgrade to last year's design, a NI compact Reconfigurable Input/Output
system (cRIO) was incorporated to the system architecture. The cRIO is NI's solution for rapid prototyping
that is equipped with a real time processor, an FPGA and modular input/output. Under the current system,
the real time processor handles the path planning and navigation algorithms, the FPGA gathers and processes
sensor data. This setup leaves the laptop to focus on running the image processing algorithm. Image processing
as previously presented by Nepal et. al. is a multi-step line extraction algorithm and constitutes the largest
processor load. This distributed approach results in a faster image processing algorithm which was previously
Q's bottleneck. Additionally, the path planning and navigation algorithms are executed more reliably on the real
time processor due to the deterministic nature of operation. The implementation of this architecture required
exploration of various inter-system communication techniques. Data transfer between the laptop and the real
time processor using UDP packets was established as the most reliable protocol after testing various options.
Improvement can be made to the system by migrating more algorithms to the hardware based FPGA to further
speed up the operations of the vehicle.