UZH Robot Perception Course 2019
Solutions forCourse overview
For a robot to be autonomous, it has to perceive and understand the world around it. This course introduces you to the key computer vision algorithms used in mobile robotics, such as image formation, filtering, feature extraction, multiple view geometry, dense reconstruction, tracking, image retrieval, event-based vision, visual-inertial odometry, Simultaneous Localization And Mapping (SLAM), and some basics of deep learning.
What this repository contain
Implemented basic algorithms used for robot perception:
- Normalized eight point algorithm used in two view geometry.
- Camera localization with RANSAC outlier rejection.
results.
Alongside theirCompilation environment
- OS:
- Ubuntu (tested version: 18.04 LTS and 20.04 LTS).
- macOS (tested version: Catalina 10.15.3).
- Tools:
- CMake (tested version: 3.10 and 3.18).
- g++ (tested version: 7.5.0 for Ubuntu).
- clang (tested version: 11.0.0 for macOS).
- Visual Studio Code.
- Dependencies:
- C++17 , for
std::optional
,std::tuple
, etc. - Armadillo (tested version: 9.900.3) , for most matrix computations.
- Eigen3 (tested version: 3.3.7) , for the rest matrix computations.
- Ceres (tested version: 1.14) , for solving general non-linear least squares.
- OpenCV (tested version: 4.3.0 and 4.4.0) , for drawing figures.
- PCL (tested version: 1.8.1 and 1.11.1), for drawing plots and visualizing point clouds.
- Glog , for general logging.
- Gflags , for parsing command line arguments.
- Gtest , for testing (only used for developers).
How to compile.
cd <path_to>/uzh_robot_perception_codes
mkdir build && cd build
cmake -j4 -DCMAKE_BUILD_TYPE=Release ..
make
- The compiled binary files will be in the
bin
directory.