2025-08-22 16:57:29 +08:00
|
|
|
|
# CMVR-ES
|
|
|
|
|
|
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
|
|
|
|
### 1. Git submodules install
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
git submodule update --init --recursive
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2. Dependency install
|
|
|
|
|
|
|
|
|
|
|
|
```shell
|
|
|
|
|
|
# basic
|
2026-02-05 17:31:18 +08:00
|
|
|
|
sudo apt-get update
|
|
|
|
|
|
sudo apt install -y build-essential cmake git pkg-config patchelf libboost-all-dev libssl-dev
|
|
|
|
|
|
# opencv
|
|
|
|
|
|
sudo apt install -y \
|
|
|
|
|
|
libjpeg-dev libpng-dev libtiff-dev \
|
|
|
|
|
|
libavcodec-dev libavformat-dev libswscale-dev \
|
|
|
|
|
|
libv4l-dev libxvidcore-dev libx264-dev \
|
|
|
|
|
|
libgtk-3-dev
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
# PulseAudio
|
|
|
|
|
|
sudo apt-get install libpulse-dev
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
# OpenGL
|
|
|
|
|
|
sudo apt-get install libgl1-mesa-dev
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
# GLFW
|
|
|
|
|
|
sudo apt-get install libglfw3-dev
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
# Assimp
|
|
|
|
|
|
sudo apt-get install libassimp-dev
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-11 15:23:11 +08:00
|
|
|
|
# visp
|
|
|
|
|
|
sudo apt-get install -y libx11-dev liblapack-dev libv4l-dev libzbar-dev libpthread-stubs0-dev libdc1394-dev nlohmann-json3-dev
|
|
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (# json)
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # (sudo apt install libjsoncpp-dev -y)
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (# flann)
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # (sudo apt-get install libflann-dev -y)
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (#alas)
|
2025-12-05 16:33:11 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # (sudo apt-get install libasound2-dev -y)
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (# gstreamer)
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # (sudo apt install gstreamer1.0-plugins-good gstreamer1.0-plugins-bad -y)
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # (sudo apt install gstreamer1.0-plugins-ugly gstreamer1.0-libav -y)
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (# tinyxml2)
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # (sudo apt install libtinyxml2-dev -y)
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (```)
|
2025-08-22 16:57:29 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (### 3. gRPC install (build from source))
|
2025-09-04 10:36:34 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # (version: https://grpc.io/docs/languages/cpp/quickstart/(grpc官网地址 v1.73.0))
|
2026-01-14 14:04:07 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # (#### 安装完成之后要配置环境变量)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (vim ~/.bashrc)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (在末尾添加)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (### 4. ffmpeg install (build from source))
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (#### 4.1 install dependencies)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```shell)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (sudo apt-get update)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (sudo apt install build-essential yasm nasm git -y)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (sudo apt install libx264-dev libx265-dev libvpx-dev libfdk-aac-dev libmp3lame-dev libopus-dev -y)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (#### 4.2 build from source)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```shell)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (cd assets)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (tar xjvf ffmpeg-4.4.tar.bz2)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (cd ffmpeg-4.4)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (# set configurations)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (./configure \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ( --extra-libs="-lpthread -lm" \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ( --enable-gpl \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ( --enable-libass \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ( --enable-libfdk-aac \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ( --enable-libfreetype \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ( --enable-libmp3lame \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ( --enable-libopus \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ( --enable-libvorbis \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ( --enable-libvpx \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ( --enable-libx264 \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ( --enable-libx265 \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ( --enable-pic \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ( --enable-shared \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ( --enable-nonfree \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (# build and install)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (make -j4)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (sudo make install)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (### 5. librealsense2 2.55.1 install)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```shell)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (sudo apt-get install librealsense2-dkms=1.3.24-0ubuntu1 -y)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (sudo apt-get install \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (librealsense2=2.55.1-0~realsense.12473 \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (librealsense2-utils=2.55.1-0~realsense.12473 \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (librealsense2-dev=2.55.1-0~realsense.12473 \)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (librealsense2-dbg=2.55.1-0~realsense.12473 -y)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (### 5. OSQPEigen install(build from source))
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (#### 5.1 install osqp (v0.6.3))
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```shell)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (git clone --branch v0.6.3 https://github.com/osqp/osqp.git)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (cd osqp)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (git submodule init)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (git submodule update)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (mkdir build)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (cd build)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (make -j)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (sudo make install)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (#### 5.2 install OsqpEigen (v0.10.1))
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```shell)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (git clone --branch v0.10.1 https://github.com/robotology/osqp-eigen.git)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (cd osqp-eigen)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (git submodule init)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (git submodule update)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (mkdir build)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (cd build)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (make -j)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (sudo make install)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (#### 6 mech-eye-sdk)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```shell)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (cd assets)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (sudo dkpg -i Mech-Eye_API_2.5.1_amd64.deb)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (### 串口冲突问题)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```shell)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (sudo systemctl stop brltty)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (sudo systemctl disable brltty)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (sudo apt remove brltty)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (### ~./bashrc)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```shell)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (export ARCH="x86")
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (export CMVR_ES_PROJECT_PATH="/home/cmvr/Projects/cmvr-es")
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (# >>> cmake )
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (export PATH="$CMVR_ES_PROJECT_PATH/dependency/$ARCH/third_party/cmake/v3.30.3/cmake-3.30.3-linux-x86_64/bin:$PATH")
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (# <<< cmake)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ()
|
|
|
|
|
|
[//]: # (# >>> ffmpeg)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (export LD_LIBRARY_PATH="$CMVR_ES_PROJECT_PATH/dependency/$ARCH/third_party/x264/v165/lib:$LD_LIBRARY_PATH")
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (export LD_LIBRARY_PATH="$CMVR_ES_PROJECT_PATH/dependency/$ARCH/third_party/x265/v215/lib:$LD_LIBRARY_PATH")
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (export LD_LIBRARY_PATH="$CMVR_ES_PROJECT_PATH/dependency/$ARCH/third_party/ffmpeg/v4.2/lib:$LD_LIBRARY_PATH")
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (# <<< ffmpeg)
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # (```)
|
2026-01-14 14:04:07 +08:00
|
|
|
|
|
2026-02-05 17:31:18 +08:00
|
|
|
|
[//]: # ()
|