The goal of the project is to consistantly detect objects in a real lidar point cloud stream. This is achieved by filtering, segmenting and clustering the point cloud. Lidar is an active sensor that provides real-time spatial perception of the environment.
Lidar is an active sensor that emits laser beams and receives them upon reflection. The distance of the obstructing surface is computed using the Time of Flight and speed of the corresponding beam. Each such beam, upon 360 degrees rotation of the Lidar scanner, provides the distances of the obstacles present in the contemporary environment. In addition, the intensities of the reflected beams are recorded. This process is called environment perception, which is the first step in the motion planning of an autonomous robot.
The point cloud used in this project is obtained using a Velodyne VLP-64 Lidar, where 64 stands for the number of laser emitters in the emitter array. One scan of this sensor generates 256,000 points.
The workspace provided in the SFND classroom comes preinstallated with everything that you need to finish the exercises and projects. Versions used by Udacity for this ND are as follows:
- Ubuntu 16.04
- PCL - v1.7.2
- C++ v11
- gcc v5.5
Note The [CMakeLists.txt] file provided in this repo can be used locally if you have the same package versions as mentioned above. If you want to run this project locally (outside the Udacity workspace), please follow the steps under the Local Installation section.
-
Clone this github repo:
cd ~ git clone https://github.com/udacity/SFND_Lidar_Obstacle_Detection.git
-
Edit CMakeLists.txt as follows:
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
add_definitions(-std=c++14)
set(CXX_FLAGS "-Wall")
set(CMAKE_CXX_FLAGS, "${CXX_FLAGS}")
project(playback)
find_package(PCL 1.11 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4")
add_executable (environment src/environment.cpp src/render/render.cpp src/processPointClouds.cpp)
target_link_libraries (environment ${PCL_LIBRARIES})
-
Execute the following commands in a terminal
sudo apt install libpcl-dev cd ~/SFND_Lidar_Obstacle_Detection mkdir build && cd build cmake .. make ./environment
This should install the latest version of PCL. You should be able to do all the classroom exercises and project with this setup.
-
install homebrew
-
update homebrew
$> brew update
-
add homebrew science tap
$> brew tap brewsci/science
-
view pcl install options
$> brew options pcl
-
install PCL
$> brew install pcl
-
Clone this github repo
cd ~ git clone https://github.com/udacity/SFND_Lidar_Obstacle_Detection.git
-
Edit the CMakeLists.txt file as shown in Step 2 of Ubuntu installation instructions above.
-
Execute the following commands in a terminal
cd ~/SFND_Lidar_Obstacle_Detection mkdir build && cd build cmake .. make ./environment
-
Follow the steps here to install PCL.
-
Clone this github repo
cd ~ git clone https://github.com/udacity/SFND_Lidar_Obstacle_Detection.git
-
Edit the CMakeLists.txt file as shown in Step 2 of Ubuntu installation instructions above.
-
Execute the following commands in Powershell or Terminal
cd ~/SFND_Lidar_Obstacle_Detection mkdir build && cd build cmake .. make ./environment