# 依赖
1. GoogleTest
1. 链接:
[Github原链接](https://github.com/google/googletest.git)、[Gitee镜像链接](https://gitee.com/c12h22o11/googletest.git)
2. 说明:
跨平台的C++单元测试框架,使用各种宏定义来测试不同的函数功能。在视觉开发时,一个函数修改往往牵一发而动全身,单纯为了修改和测试一个函数所带来的开销是不可估量的。因此我们进行单元测试,简单的可以进行类似于main函数的操作。
同时也是其他库的基础依赖之一(BT、OpenCV)
3. 安装:
```shell
cd ~/base
git clone https://gitee.com/c12h22o11/googletest.git
cd googletest
mkdir build
cd build
cmake CMAKE_INSTALL_PREFIX=/usr/local ..
make -j 8
sudo make install
```
2. BehaviourTree.CPP
1. 链接:
[Github原链接](https://github.com/BehaviorTree/BehaviorTree.CPP)、[Gitee镜像链接](https://gitee.com/c12h22o11/BehaviorTree.CPP.git)
2. 说明:
AI控制的行为树组件,是一个比较成熟的C++的行为树库。
暂时未进行研发和编写,原因是在现在已有仓库代码的基础上改动过于困难。
***经验分享***
1. [官方说明文档](https://www.behaviortree.dev/)
2. 树的基础是节点和线径,前者是BT库的最核心的操作,后者则为设计者的需求。在其中要掌握blackboard和background的理念
3. 详见docs、sample_nodes、examples进行更一步的学习
4. 可以使用GUI进行树状图的绘制(App:`Groot`),官方README有提
3. 安装:
```shell
cd ~/base
git clone https://gitee.com/c12h22o11/BehaviorTree.CPP.git
sudo apt-get install libzmq3-dev libboost-dev
cd Behavior.CPP
# 切换稳定分支
mkdir build
cd build
cmake ..
make -j 8
sudo make install
```
3. Spdlog
1. 链接:
[Github原链接](https://github.com/gabime/spdlog.git)、[Gitee镜像链接](https://gitee.com/c12h22o11/spdlog.git)
2. 说明:
1. 快速日志库,可以代替cout进行快速的日志输出打印
2. 日志还有一个重要使命,即为显示程序运行时每一步的调用和关键调试信息
3. 安装:
```shell
cd ~/base
git clone https://gitee.com/c12h22o11/spdlog.git
sudo apt-get install libzmq3-dev libboost-dev
cd spdlog
# 切换至稳定分支
mkdir build
cd build
cmake ..
make -j 8
sudo make install
```
4. oneTBB
1. 说明:
Intel开发的并行计算库,并行计算,是一种不同于多线程、多进程的方式。
2. 安装:
```shell
sudo apt install libtbb-dev
```
5. OpenCV
1. 链接:
[OpenCV home page](https://opencv.org/)
2. 安装:
```shell
cd ~/base
git clone https://gitee.com/c12h22o11/opencv.git
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev ffmpeg libavcodec-dev libavformat-dev libswscale-dev libavutil-dev
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt install libjasper1 libjasper-dev
cd opencv
mkdir build
cd build
# 切换至稳定分支(4.5.4)
cmake -D CMAKE_BUILD_TYPE=RELEASE -D INSTALL_C_EXAMPLES=ON \
-D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON \
-D WITH_GTK=ON -D WITH_FFMPEG=ON -D WITH_LIBV4L=ON -D WITH_OPENGL=ON \
-D WITH_ZLIB=ON -D WITH_GSTREAMER=ON -D WITH_OPENJPEG=ON \
-D BUILD_PNG=ON -D BUILD_JPEG=ON -D BUILD_TIFF=ON -D BUILD_EIGEN=ON \
-D BUILD_EXAMPLES=ON -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=OFF ..
make -j 8
sudo make install
```
```shell
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D BUILD_PNG=ON \
-D BUILD_TIFF=ON \
-D BUILD_JPEG=ON \
-D BUILD_EXAMPLES=ON \
-D WITH_FFMPEG=ON \
-D WITH_GTK=ON \
-D WITH_LIBV4L=ON \
-D WITH_OPENGL=ON \
-D WITH_OPENCL=ON \
-D WITH_ZLIB=ON \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D WITH_CUBLAS=1 \
-D WITH_LAPACK=OFF \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D CUDA_ARCH_BIN=7.0 \
-D CMAKE_INSTALL_PREFIX=/usr/local ..
```
6. MVS
1. 链接:
[MVS](https://www.hikrobotics.com/cn2/source/support/software/MVS_STD_GML_V2.1.1_220511.zip)
2. 说明:
> 海康工业相机客户端
> 解压后会得到很多架构的压缩包文件,在PC上安装X86,在miniPC上安装armhf版本。
3. 安装:
见解压完后文件夹内`INSTALL`文档
7. libusbp
1. 链接
[Github原链接](https://github.com/pololu/libusbp.git)、[Gitee镜像链接](https://gitee.com/c12h22o11/libusbp.git)
2. 说明
C++对libusb的封装,直接调用得到pid、vid,匹配得到串口名,从而实现自动连接。
3. 安装
```shell
sudo apt-get install cmake libudev-dev
cd ~/base
git clone https://gitee.com/c12h22o11/libusbp.git
cd libusbp
# 切换稳定版
mkdir build
cd build
cmake ..
make
sudo make install
```
8. eigen3
1. 说明:
常见的矩阵运算核心库,较常见,底层用C实现,快速且通用性高。
2. 安装:
```shell
sudo apt install libeigen3-dev
```
9. ceres-solver
1. 链接:
[Github原链接](https://github.com/ceres-solver/ceres-solver.git)、[Gitee镜像链接](https://gitee.com/c12h22o11/ceres-solver.git)
2. 说明:
谷歌开发的矩阵线性求解计算库
3. 安装:
```shell
cd ~/base
git clone https://gitee.com/c12h22o11/ceres-solver.git
cd ceres-solver
# 切换稳定分支(2.1.0)
mkdir build
cd build
cmake ..
make -j 8
sudo make install
```
10. CUDA
11. TensorRT