Chad Krause

A small blog about my projects

X491 - Autonomous Vehicles

This year I took a brand new class - CSE 491, which was also combined with EE and ME 491 (the reason it was called X 491)

This class was a new class on Autonomous Vehicles and related technology. It was an excellent class and I enjoyed every bit of it. There were no quizzes or tests, just labs and projects. That made it easy to come to class and pay attention without trying to write down notes at the speed of light.

My last project was to take 3D vehicle detection and get the velocity based on the positions of the cars.


This is the algorithm used to detect vehicles

KITTI Dataset

This is the where the 3d point cloud comes from. The KITTI Dataset is a public dataset used to train ML models, benchmark and test algorithms, and just a nice place to get data.

How does it work?

The KITTI dataset is converted into ROS using a KITTI to ROSBAG conversion tool. I couldn't get it working, so someone who already got it working gave me a ROSBAG to test stuff out with.

The SECOND V1.5 tool is run on ROS. I had a lot of help by Su Peng in getting it working. He provided the script to get it working. SECOND V1.5 uses the lidar data to detect the vehicles and publish them on a ROS node

The code takes that data and uses a simple distance over time formula:

$$v = \frac{\Delta d}{\Delta t}$$

The code simply saved the last position and time and subtracted it from the current position and time.

Unfortunatly this introduced cosine error because I wasn't getting the distance from the detected vehicle to the detected vehicle, I was getting the distance from the host (KITTI car) to the detected vehicle. Small details (or big, depending on the angle)

This could've been much improved by using vehicle tracking instead of vehicle detection. Tracking is when you track a vehicle over time. There are two majors reason we didn't do tracking:

  1. All public tracking algorithms already provide velocity (and my project was to get velocity)
  2. We tried and couldn't get it installed properly

All in all this project was pretty successful. Here is a video of our stuff working (in 1/2 real time, my computer wasn't fast enough to do real time)

All comments