ranakhalil / SensorFusionHighway

Use pcl to explore sensors in a simple highway environment. Goal is to combine lidar + radar to track other cars

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sensor Fusion Self-Driving Car Course

Welcome to the Sensor Fusion course for self-driving cars.

Are you excited to learn more about working with lidar data, and using it to track multiple objects along with radar information? Then check out this course.

Here are the main things we will be covering.

C++, PCL (Point Cloud Library), Lidar (PCD files), Radar, UKF (Unscented Kalman Filters)

My name is Aaron Brown, and while working at Udacity I worked on teaching, and implementing different self-driving car algorithms. In this course we will be talking about sensor fusion, whch is the process of taking data from multiple sensors and combining it to give us a better understanding of the world around us. we will mostly be focusing on two sensors, lidar, and radar. By the end we will be fusing the data from these two sensors to track multiple cars on the road, estimating their positions and speed.

Lidar sensing gives us high resolution data by sending out thousands of laser signals. These lasers bounce off objects, returning to the sensor where we can then determine how far away objects are by timing how long it takes for the signal to return. Also we can tell a little bit about the object that was hit by measuring the intesity of the returned signal. Each laser ray is in the infrared spectrum, and is sent out at many different angles, usually in a 360 degree range. While lidar sensors gives us very high accurate models for the world around us in 3D, they are currently very expensive, upwards of $60,000 for a standard unit.

Radar data is typically very sparse and in a limited range, however it can directly tell us how fast an object is moving in a certain direction. This ability makes radars a very pratical sensor for doing things like cruise control where its important to know how fast the car infront of you is traveling. Radar sensors are also very affordable and common now of days in newer cars.

Sensor Fusion by combing lidar's high resoultion imaging with radar's ability to measure velocity of objects we can get a better understanding of the sorrounding environment than we could using one of the sensors alone.

Introduction

To get started with this course we will first dive into how to process lidar data, which is called Point Cloud Data (PCD for short). We will be working with a C++ environment, so some fimilarity with C++ will defintely be helpful. PCL is an open source C++ library for working with point clouds, we will be using it to do the majority of our lidar processing. To get started clone this repository, all the source code that this course will be going over is in the src directory. Installation instructions for PCL can be found below, currently instruction for just Linux but you can run on Windows or Mac too. After the repository has been cloned and C++ and PCL are setup check out the first module below on Lidar Obstacle Dection. I hope you enjoy the course!

Let's Get Started

Lidar Obstacle Detection

https://github.com/awbrown90/SensorFusionHighway/blob/master/LidarObstacleDetection/LidarIntroduction.md

Installation

Linux Ubuntu 16

Install PCL, C++

The link here is very helpful, https://larrylisky.com/2014/03/03/installing-pcl-on-ubuntu/

A few updates to the instructions above were needed.

  • libvtk needed to be updated to libvtk6-dev instead of (libvtk5-dev). The linker was having trouble locating libvtk5-dev while building, but this might not be a problem for everyone.

  • BUILD_visualization needed to be manually turned on, this link shows you how to do that, http://www.pointclouds.org/documentation/tutorials/building_pcl.php

About

Use pcl to explore sensors in a simple highway environment. Goal is to combine lidar + radar to track other cars


Languages

Language:C++ 96.9%Language:CMake 2.6%Language:C 0.6%