##Introduction I introduced sensor fusion capabilities to the iron car, which could fuse the measurements from ultrasonic sensors and stereo camera to give a good estimate of the states of moving object in front of the iron car. The Extended Kalman Filter is used for the sensor fusion. In the future, measurements from different other types of sensors could be incorporated to the framework. With the state information at hand, it becomes possible in the future for the iron car to have adaptive cruise control and overtaking functionalities. Please refer to the final presentation for detailed information of the project.
- Set up tri-aural ultrasonic sensor in the iron car.
- Design an algorithm to extract distance information from the depth map generated by stereo camera.
- Implement CV algorithms to do obstacle classification and add this information to the sensor fusion framework, which let the car better decide its action, be it overtaking or following the object.
##Install KFilter Library A small static library (libkalman.a) will be installed in /usr/local/lib. A directory named 'kalman' containing all necessary include files will be installed in /usr/local/include.
Run the following commands in Linux under the Sensor_Fusion folder:
make
su
install
##Install OpenCV Library This OpenCV library is needed only if you would like to run the project in videoSimulation folder.
Run the following commands in Linux:
sudo apt-get update && sudo apt-get upgrade && sudo rpi-update
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git
cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
make -j $(nproc)
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo make install && sudo ldconfig
sudo apt-get install libboost-system-dev libboost-thread-dev libboost-timer-dev libboost-chrono-dev libboost-filesystem-dev
##Compile run make under the fusionSimulation and/or viodeSimulation folder to create the executable.
Note: You could run simulation.m in Matlab to create simulated sensor measurements data used for sensor fusion.