Git Product home page Git Product logo

at3883 / open-adas Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vietanhdev/open-adas

0.0 0.0 0.0 27.43 MB

An open source advanced driver assistance system (ADAS) that uses Jetson Nano as the hardware. Features: Traffic sign detection, Forward collision warning, Lane departure warning.

License: MIT License

Shell 0.04% C++ 83.27% Python 5.41% C 1.74% Cuda 6.88% CMake 2.09% Dockerfile 0.21% SWIG 0.36%

open-adas's Introduction

OpenADAS - An advanced driver-assistance system using Jetson Nano

Donate

An advanced driver-assistance system on Jetson Nano embedded computer with four main functions: forward collision warning, lane departure warning, traffic sign recognition and overspeed warning. This repository contains source code for Jetson Nano, not including the source code for model training and conversion.

The system design

Documentation:

For TensorRT 7 support: Currently, only TensorRT 5 and 6 are supported. TensorRT 7 has a lot of deprecated APIs and I think there is no way to run this project directly with that version. I don't have time to continue with this project soon, so I really need your contributions to extend this project further.

Quick setup on Jetson Nano: SD Card image

I created an image of my SD card here. You can flash and run this image on Jetson Nano.

Note:

  • The source code and binary files in this SD card image is older than in master branch. Please upgrade to the lastest source code and recompile on your device.
  • Use Alt+F4 to exit the GUI and start editing your source code.
  • Login information:
    • Username: smartcam.
    • Password: Open Terminal and type sudo passwd smartcam to change the password.

Compile from source

Requirements:

  • CMake >= 3.10
  • Qt 5
  • OpenCV >= 4.0.1
  • C++ 17 compiler
  • CUDA 10.x
  • TensorRT 5.1.5-1+cuda10.1, or - TensorRT 6.0.1.8+10.2. This project should work with TensorRT 5 and TensorRT 6. TensorRT 7 is not supported for now.

Setup for Linux - Ubuntu 18.04

Setup

  • Install QT:
sudo apt-get install build-essential
sudo apt-get install qt5-default qtcreator qt5-doc qt5-doc-html qtbase5-doc-html qtbase5-examples -y
sudo /sbin/ldconfig -v
  • Install OpenCV
https://linuxize.com/post/how-to-install-opencv-on-ubuntu-18-04/
  • Install protobuf 3.6.1
https://github.com/protocolbuffers/protobuf

Models and test data

  • Download models and testing data here and put into root folder of this project.

Compile and Run

cd <project directory>
mkdir build
cd build
cmake -DCUDA_INCLUDE_DIRS=/usr/local/cuda-10.2/include ..
make

Replace CUDA_INCLUDE_DIRS with your own path.

  • Setup virtual CAN (run once)
sudo bash setup_vcan.sh
  • Run
cd build/bin
./OpenADAS

Arguments:

  • --input_source | default: simulation : Input source. 'camera' or 'simulation'.
  • --input_video_path | optional : Path to video file for simulation.
  • --input_data_path | optional : Path to data file for simulation.
  • --on_dev_machine | default: true : On development machine or not. When this value is set to false, OpenADAS will be launched in fullscreen mode without mouse (touch UI). You should this value to true in development environment.

Specify input_video_path and input_data_path if you want to load a simulation scenario by default. Otherwise, you can select scenarios from simulation selector.

Known issues

Issue: cublas_v2.h not found

fatal error: cublas_v2.h: No such file or directory
 #include <cublas_v2.h>
          ^~~~~~~~~~~~~
compilation terminated.
  • Step 1: Find lib: find /usr/local/ -name cublas_v2.h.
  • Step 2: Export to path: export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/cuda-10.2/targets/x86_64-linux/include/.
  • Step 3: Use CMake and build.

Issue: /usr/bin/ld: cannot find -lcudart, /usr/bin/ld: cannot find -lcublas

sudo ln -s /usr/local/cuda/lib64/libcudart.so /usr/lib/libcudart.so
sudo ln -s /usr/local/cuda/lib64/libcublas.so /usr/lib/libcublas.so

Note: The paths can be different on your computer.

Issue: Qt5Multimedia missing

Could not find a package configuration file provided by "Qt5Multimedia"
  with any of the following names:

    Qt5MultimediaConfig.cmake
    qt5multimedia-config.cmake

How to fix?

sudo apt-get install qttools5-dev-tools libqt5svg5-dev qtmultimedia5-dev

Issue: Need to specify CUDA root

[cmake] CMake Error at /usr/share/cmake-3.10/Modules/FindCUDA.cmake:682 (message):
[cmake]   Specify CUDA_TOOLKIT_ROOT_DIR

How to fix?

export CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2/

You should change the path corresponding to your environment.

Issue: Qt5 library not found

 fatal error: QtWidgets/QCloseEvent: No such file or directory
 #include <QtWidgets/QCloseEvent>
          ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Issue: SIOCGIFINDEX: No such device

sudo bash setup_vcan.sh

References:

open-adas's People

Contributors

vietanhdev avatar uyrusali avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.