UNLV Autonomous Research Vehicle

UNLV Autonomous Research Vehicle

This website serves as documentation and interactive learning of setting up UNLV's Lincoln MKZ Autonomous Research vehicle. We will cover week by week of working with the vehicle from the basic physical operation of the vehicle, setting up the PC with ROS2, checking that our sensors are working, setting up Autoware, and finally driving "autonomously" in a 3D scanned and 2D vectorized map.



AutonomouStuff Customer Delivery Documents - this file contains documents delivered to UNLV by AutonomouStuff, the builder of the vehicle. Documents included are individual ADAS component customer data/programs, training documents, data sheets, wiring diagrams and more.



Week 1

Topics - Prerequisities, Getting Started Part I, Getting Started Part II

Prerequisites (Approximate Time Investment: 4 hours)
The foundations of our Autonomous Research Vehicle are Ubuntu, ROS2, and Autoware. Autoware is a ROS2 stack that we will cover in the later weeks. Before working with our vehicle, it is imperative that we have a basic understanding of Ubuntu and ROS2. The resources below should be followed to get some practice. Ubuntu can be ran on a virtual machine via VirtualBox or it can be installed natively. The virtual machine route is objectively the best way to access Ubuntu and ROS2 without making permanent changes to your computer.

The required version of Ubuntu is 22.04.5 Jammy Jellyfish and the required version of ROS2 is ROS2 Humble.

The 11 part video series on ROS2 Humble for Beginners (see link below) covers the installation of ROS2. The video series also covers the basics such as setting up your workspace, starting a node, creating packages, writing publishers & subscribers, and more. This video series will be adequate for getting started with the vehicle.
Getting Started Part I (Approximate Time Investment: 2 hours)
Now that we are acquainted with Ubuntu and ROS2, we will learn the basic physical operation of the vehicle, set up our workstation, and install Ubuntu on the vehicle's PC. Follow the instructions in the handout PDF below.

Note that the vehicle can be driven just like a regular car. Park the vehicle in your workspace where you have access to a 120V 20A outlet. The instrument cluster may show errors with the car's safety systems due to conflict with the aftermarket ADAS components but this is normal. The messages can be dismissed by pressing the OK button on the steering wheel.


Getting Started Part II (Approximate Time Investment: 1 hour)
Now that we are phyiscally set up with our workspace and we have access to the vehicle's Ubuntu installed PC, we will begin with the simple task of checking our LIDARs. The vehicle is equipped with four LIDARs. One Ouster OS2, two Velodyne VLP16s, and one Velodyne VLP32.

In the world of Linux and ROS2's open source software, the availablity of documentation and easy to use software varies greatly. We are checking these LIDARS first to get more familiar with our workflow and because Ouster and Velodyne offer easy to use software that we can use to check that the LIDARs are working.

Follow the Getting Started Part II handout for directions on checking our LIDARs. The wiring diagram, breakout box schematic, and power distribution diagrams are also provided below for any diagnostics needed. Take Week 1 Quiz


Week 2

Topics - Getting Started Part III, Hello World I, Hello World II

Getting Started Part III (Approximate Time Investment: 1 Hour)
Getting Started Part III consists of installing ROS2 and setting up QOL changes for our ROS2 workspace. This section should feel very familiar as it is the same procedure that was covered in the ROS2 Humble for Beginners from the Prerequisite.


Hello World I - Blinker Node (Approximate Time Investment: 1-2 hours)

With ROS2 set up, we are moving onto Hello World I with the Blinker Node. We will install ROS drivers for the Dataspeed drive-by-wire system so we can have bidirectional communication with ROS and the Lincoln. Hello World I will be activating the car's rear blinkers by running a ROS package.

The Dataspeed drive by wire system is installed in our vehicle. It allows us to communicate to and with the vehicle. The module is able to convert CAN (Controller Area Network) messages from the vehicle’s ECU (Engine Control Unit) and transmit the messages to our PC and vice-versa. It acts as a middleware hardware for controlling the vehicle.



Hello World II - Ouster, Blinker, and Dataspeed: Input and Feedback (Approximate Time Investment: 1-2 hours)

Now that we've covered Hello World I, we will move onto Hello World II where we will incorporate a feedback loop with an input and an output. We will create an "alarm" system where an input (motion detected by the Ouster) will trigger an output (blinkers flash when motion is detected by the Ouster).

As mentioned before, the nature of open source Linux/ROS software is very volatile with changes (jargon: commmits) happening often, so it is good practice to read through the documentation in the drivers' repositories.

Take Week 2 Quiz


Week 3


Topics - Installing Autoware Stack and Planning Simulation

Autoware is one of the foundations of getting our car to drive autonomously. It is a ROS2 stack that acts as a middleware software between ROS2 and the vehicle’s ADAS sensors. It is a large stack that can be containerized in Docker or installed from source. We will install it from source and run some basic simulations to check that it has installed correctly. As previously mentioned, open source software is updated frequently so it is best to read through the references below.



Take Week 3 Quiz


Weeks 4 - 5


Topics - MKZ Sensor Kit, Vehicle Model, Launch Files

With Autoware installed and the simulation using the sample vehicle model and sensor kit working, we will install the following for our Autonomous MKZ Research Vehicle:


Take Week 4-5 Quiz