The package projects one or more LiDAR point clouds in map frame to a camera, generating a depth image for the camera. Parallel versions are implemented in both OpenMP and CUDA.
This is a class project for 15-618 Parallel Computer Architecture and Programming, Spring 2020.
Demo Video:
- Ubuntu 18.04
- ROS Melodic Follow the installation guide here.
- OpenCV 3
- OpenMP
- CUDA 10
- Install
python-catkin-tools
- Create a ROS workspace and clone our package into
src
directory - Build with
catkin build
- Run
./benchmark.sh -b <your_dataset.bag> -t <play_duration>
underscripts
- Example:
./benchmark.sh -b ~/Downloads/objdet_2019-08-17-16-37-39_3.bag -t 10
- It should automatically build and run tests for all three implementations
- Observe produced CSV logging files under current working directory
- Process and visualize raw results by running
python3 visualize.py
underscripts
We use ROS launch files to configure parameters and run executables.
- For sequential version, use launch file
subt.launch
- For OpenMP version, use launch file
subt_omp.launch
- For CUDA version, use launch file
subt_cuda.launch
GPU parallel version with CUDA.
- To compile, checkout your GPU compute capability here, and add it to NVCC compile flags in CMakeList.
CPU parallel version using OpenMP multi-threading directives.
We achieved on average 120.0x speed up using CUDA implementation.
- Henry Zhang ([email protected])
- Haowen Shi ([email protected])