Módulo central JETSON Xavier nx (ubuntu20.04) + placa portadora RTSO-6002e
Preparación:
(1) Instale jetpack5.1.1 y los componentes de Jetpack (cuda, etc.)
(2) Instalar la página de inicio de ros | Yuxiang ROS (fishros.org.cn)
(3) Instalar ceres 1.14.0 Ubuntu20.04 instalar Ceres1.14.0
(4) Instalar opencv4.6.0
6) Instale VINS-Fusion-gpu
1. No se demostrará el flasheo ni la instalación del jetpack, todos son fijos y correspondientes.
2. Instalación de ros con un clic, siga las instrucciones para seleccionar la versión Jetson ubuntu20.
3 、 solucionador de Ceres
cd ~/Downloads/
sudo apt-get install -y cmake libgoogle-glog-dev libatlas-base-dev libsuitesparse-dev
wget http://ceres-solver.org/ceres-solver-1.14.0.tar.gz
tar zxf ceres-solver-1.14.0.tar.gz
mkdir ceres-bin
mkdir solver && cd ceres-bin
cmake ../ceres-solver-1.14.0 -DEXPORT_BUILD_DIR=ON -DCMAKE_INSTALL_PREFIX="../solver"
#good for build without being root privileged and at wanted directory
make -j3 # 6 : number of cores
make install
bin/simple_bundle_adjuster ../ceres-solver-1.14.0/data/problem-16-22106-pre.txt # to check version
4. Instalación de Opencv
sudo apt-get purge libopencv* python-opencv sudo apt-get update sudo apt-get install -y build-essential pkg-config
sudo apt-get install -y cmake libavcodec-dev libavformat-dev libavutil-dev \ libglew-dev libgtk2.0-dev libgtk-3-dev libjpeg-dev libpng-dev libpostproc-dev \ libswscale-dev libtbb-dev libtiff5-dev libv4l-dev libxvidcore-dev \ libx264-dev qt5-default zlib1g-dev libgl1 libglvnd-dev pkg-config \ libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev mesa-utils sudo apt-get install python2.7-dev python3-dev python-numpy python3-numpy
Compile opencv 4.6.0,
mkdiropencv
Descomprima el opencv y opencv_contrib-4.6.0 descargados aquí
sudo mkdir build && cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.6.0/modules \ -D WITH_CUDA=ON \ -D CUDA_ARCH_BIN=5.3 \ -D CUDA_ARCH_PTX="" \ -D ENABLE_FAST_MATH=ON \ -D CUDA_FAST_MATH=ON \ -D WITH_CUBLAS=ON \ -D WITH_LIBV4L=ON \ -D WITH_GSTREAMER=ON \ -D WITH_GSTREAMER_0_10=OFF \ -D WITH_QT=ON \ -D WITH_OPENGL=ON \ -D CUDA_NVCC_FLAGS="--expt-relaxed-constexpr" \ -D WITH_TBB=ON \ ..
make -j6 sudo make install
La instalación de OpenCV en NX es relativamente lenta y tarda casi 1 hora . Después de instalar OpenCV, debe compilar aún más CV-Bridge (cv_bridge es un paquete de funciones que convierte entre mensajes de imágenes ROS e imágenes OpenCV).
Debido a que los datos opencv y ROS deben convertirse, es necesario utilizar la herramienta de puente cv_bridge. A continuación, presentaremos cómo descargar, instalar y configurar su propio paquete de funciones cv_bridge.
Primero, cree un espacio de trabajo ROS
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
catkin_init_workspace
cd ..
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
Luego descargue el código fuente de la versión correspondiente, debido a que es Ubuntu 20.04, descargue la versión noética.
1) Archivo CMakeLists.txt
Agregue su ruta de instalación de opencv delante de set(_opencv_version 4), probablemente en la línea 20
https://github.com/ros-perception/vision_opencv/tree/noetic
Después de la descarga, extráigalo al directorio ~/catkin_ws/src. Dado que solo necesitamos cv_bridge, solo necesitamos conservar la carpeta cv_bridge, colocarla en ~/catkin_ws/src/ y luego modificar el archivo de configuración cv_bridge.
set(OpenCV_DIR /home/nvidia/opencv/opencv-4.6.0/build/)
set(_opencv_version 4)
find_package(OpenCV 4 QUIET)
Luego compila este paquete de funciones.
-
CD ~/catkin_ws/src
-
catkin_make
Si la compilación es exitosa, se completa la producción del paquete de funciones cv_bridge, lo que también significa que opencv 4.6.0 se ha instalado correctamente y este paquete de funciones cv_bridge puede conectarse correctamente a la versión de opencv instalada por nosotros mismos. Finalmente, agregamos el ruta de este paquete de funciones a la carpeta ~/.bashrc, para que podamos llamar a este paquete de funciones cv_bridge al compilar vins-fusion-gpu más tarde, abrir la carpeta ~/.bashrc y agregar el siguiente comando en la fuente final ~/catkin_ws /devel/setup.bash
_
Finalmente, obtenga la ruta actual en la terminal.
source ~/.bashrc
No se encontró el comando 'rosrun', rosrun no puede encontrar el problema
$ sudo apt install ros-noetic-rosbash
5. Instalar sentido real
6. Compile vins-fusion-gpu
cd ~/catkin_ws/src
git clone https://github.com/pjrambo/VINS-Fusion-gpu.git
修改 vins_estimator/CMakeLists.txt 文件
注释一行
#include(/home/dji/opencv/build/OpenCVConfig.cmake)
添加 cv_bridge_460 功能包的路径和 opencv-4.6.0 的路径
set(cv_bridge_460_DIR "/home/nvidia/catkin_ws/devel/share/cv_bridge/cmake")
set(OpenCV_DIR "/home/nvidia/opencv/opencv-4.6.0/build/")
Guarde y salga, y finalmente ingrese a la carpeta VINS-Fusion-gpu
Ingrese el siguiente código en la terminal para que VINS-Fusion-gpu coincida automáticamente con la versión OpenCV4 (el nombre de la variable cambia)
sed -i 's/CV_FONT_HERSHEY_SIMPLEX/cv::FONT_HERSHEY_SIMPLEX/g' `grep CV_FONT_HERSHEY_SIMPLEX -rl ./`
sed -i 's/CV_LOAD_IMAGE_GRAYSCALE/cv::IMREAD_GRAYSCALE/g' `grep CV_LOAD_IMAGE_GRAYSCALE -rl ./`
sed -i 's/CV_BGR2GRAY/cv::COLOR_BGR2GRAY/g' `grep CV_BGR2GRAY -rl ./`
sed -i 's/CV_RGB2GRAY/cv::COLOR_RGB2GRAY/g' `grep CV_RGB2GRAY -rl ./`
sed -i 's/CV_GRAY2RGB/cv::COLOR_GRAY2RGB/g' `grep CV_GRAY2RGB -rl ./`
sed -i 's/CV_GRAY2BGR/cv::COLOR_GRAY2BGR/g' `grep CV_GRAY2BGR -rl ./`
sed -i 's/CV_CALIB_CB_ADAPTIVE_THRESH/cv::CALIB_CB_ADAPTIVE_THRESH/g' `grep CV_CALIB_CB_ADAPTIVE_THRESH -rl ./`
sed -i 's/CV_CALIB_CB_NORMALIZE_IMAGE/cv::CALIB_CB_NORMALIZE_IMAGE/g' `grep CV_CALIB_CB_NORMALIZE_IMAGE -rl ./`
sed -i 's/CV_CALIB_CB_FILTER_QUADS/cv::CALIB_CB_FILTER_QUADS/g' `grep CV_CALIB_CB_FILTER_QUADS -rl ./`
sed -i 's/CV_CALIB_CB_FAST_CHECK/cv::CALIB_CB_FAST_CHECK/g' `grep CV_CALIB_CB_FAST_CHECK -rl ./`
sed -i 's/CV_ADAPTIVE_THRESH_MEAN_C/cv::ADAPTIVE_THRESH_MEAN_C/g' `grep CV_ADAPTIVE_THRESH_MEAN_C -rl ./`
sed -i 's/CV_THRESH_BINARY/cv::THRESH_BINARY/g' `grep CV_THRESH_BINARY -rl ./`
sed -i 's/CV_SHAPE_CROSS/cv::MORPH_CROSS/g' `grep CV_SHAPE_CROSS -rl ./`
sed -i 's/CV_SHAPE_RECT/cv::MORPH_RECT/g' `grep CV_SHAPE_RECT -rl ./`
sed -i 's/CV_TERMCRIT_EPS/cv::TermCriteria::EPS/g' `grep CV_TERMCRIT_EPS -rl ./`
sed -i 's/CV_TERMCRIT_ITER/cv::TermCriteria::MAX_ITER/g' `grep CV_TERMCRIT_ITER -rl ./`
sed -i 's/CV_RETR_CCOMP/cv::RETR_CCOMP/g' `grep CV_RETR_CCOMP -rl ./`
sed -i 's/CV_CHAIN_APPROX_SIMPLE/cv::CHAIN_APPROX_SIMPLE/g' `grep CV_CHAIN_APPROX_SIMPLE -rl ./`
sed -i 's/CV_AA/cv::LINE_AA/g' `grep CV_AA -rl ./`
Luego ingrese al directorio de trabajo catkin_ws/ y compile
cd ~/catkin_ws/
catkin_make
¡Después de una compilación exitosa, VINS-Fusion-gpu puede ejecutarse exitosamente!
Por ejemplo, si se produce el error "NO se pudo encontrar image_transport (falta: image_transport_DIR)", debe ingresarlo en la terminal
sudo apt install ros-noetic-image-transport
ERROR: cannot launch node of type [rviz/rviz]: rviz
sudo apt-get install ros-noetic-rviz