Problemas encontrados durante el proceso de reproducción de ORB-SLAM3 y sus soluciones

Debido a que el entorno es relativamente limpio, se han encontrado relativamente pocos problemas, pero todos los problemas se han resuelto perfectamente.
Mi entorno está justo después de instalar Ubuntu20.04 y he realizado las primeras cosas que deben hacerse después de instalar el sistema Ubuntu . un entorno posterior.

1. Verificación de versión

Debido a que los requisitos ambientales de ORB-SLAM3 son algo diferentes de los de ORB-SLAM2, algunas versiones que son demasiado bajas pueden causar errores.
Por lo tanto, antes de comenzar, verifiquemos la versión de la biblioteca en su entorno.
Nota: Usando Ubuntu20.04

1.1 Detección de versión Opencv

Ejecute el siguiente comando y podrá encontrar que la versión es 4.2.0

pkg-config --modversion opencv
# 4.2.0
//或者
opencv_version
# 4.2.0

1.2 Detección de versión propia

Ejecute el siguiente comando:

whereis eigen3
# 我的是在/usr/include/eigen3
gedit /usr/include/eigen3/Eigen/scr/Core/util/Macros.h

Las primeras líneas del archivo son las siguientes, lo que significa que mi versión de Eigen es 3.3.7

#ifndef EIGEN_MACROS_H
#define EIGEN_MACROS_H

#define EIGEN_WORLD_VERSION 3
#define EIGEN_MAJOR_VERSION 3
#define EIGEN_MINOR_VERSION 7

1.3 Verificar la versión de Python

  1. Ejecute el siguiente comando:
xiaoduan@fighter:~$ python3 --version
Python 3.8.10
  1. También puedes escribir python en la terminal y presionar la tecla tab dos veces para ver tu propia versión de Python.

1.4 Otros

  1. En términos de c++, el mío es c++11.
  2. DBoW2 y g2o existen directamente en el archivo del proyecto y no es necesario instalarlos manualmente, se instalarán automáticamente durante el proceso de compilación.
  3. Pangolin aún no está instalado.

2. Problemas encontrados durante la compilación y sus soluciones.

2.1 Problemas encontrados por ./build.sh

1. Pregunta 1:

Aparece el error que se muestra a continuación:

Insertar descripción de la imagen aquí
Análisis de causa:

Las versiones no coinciden, así que simplemente cambie la versión.

Solución:

Abra el archivo /home/xiaoduan/project/source2/orb_slam3/CMakeLists.txt
y cambie los dos contenidos siguientes:

  • La versión de Opencv en la línea 33 se cambia a 4
  • Línea 41 La versión de Eigen se cambia a 3

2. Pregunta 2:

Visualización de errores:

'slots_reference' no fue declarado en este alcance 1180 | cow_copy_type<tipo_lista, bloqueable>

Análisis de la razón:
debido a que el mío es C ++ 11, C ++ 11 aquí no admite algunas compilaciones de este proyecto, simplemente cambie la versión de C ++ a C ++ 14.

Solución: ingrese el siguiente comando en la terminal

sed -i 's/++11/++14/g' CMakeLists.txt

3. Pregunta tres:

Visualización de errores:

./Monocular/mono_euroc: error al cargar bibliotecas compartidas: libpango_windowing.so: no se puede abrir el archivo objeto compartido: no existe tal archivo o directorio

Análisis de causa:

原因一:La ubicación de la carpeta en ejecución es incorrecta. Preste atención a la ubicación cuando ejecute el comando para asegurarse de que se pueda encontrar el archivo en ejecución.
原因二:El archivo de configuración no tiene efecto

Solución:

Para el primer caso, simplemente vaya a la carpeta correspondiente. Para la segunda situación, ejecute el siguiente comando:

sudo ldconfig

2.2 Problemas encontrados por ./build_ros.sh

1. Pregunta 1:

Visualización de errores:

Error: la vista de rosdep está vacía: llame a 'sudo rosdep init' y 'rosdep update'

Análisis de causa:

Debido a que ROS se instala con un clic, rosdep no se inicializa, por lo que solo necesita ejecutar la instrucción en el mensaje de error del terminal.

Solución:

Ejecute el siguiente comando:

sudo rosdep fix-permissions
sudo rosdep init
rosdep update

Nota: Es posible que este proceso siempre falle debido a problemas de red, así que hágalo unas cuantas veces más. Si no funciona, ejecute sudo apt install python2 y vuelva a ejecutarlo.

2. Pregunta 2:

Visualización de errores:

'slots_reference' no fue declarado en este alcance 1180 | cow_copy_type<tipo_lista, bloqueable>

Análisis de causa:

Las versiones no coinciden, así que simplemente cambie la versión.

Solución:

Abra el archivo /home/xiaoduan/project/source2/orb_slam3/Examples_old/ROS/ORB_SLAM3/CMakeLists.txt
y cambie los dos contenidos siguientes:

  • La versión de Opencv en la línea 33 se cambia a 4
  • Línea 41 La versión de Eigen se cambia a 3

3. Pregunta tres:

Visualización de errores:

error fatal: sophus/se3.hpp: No existe tal archivo o directorio
29 | #incluir <sophus/se3.hpp>

Análisis de causa:

No se puede encontrar la ubicación del archivo sophus, simplemente agréguelo.

Solución:

打开文件
/home/xiaoduan/project/source2/orb_slam3/Examples_old/ROS/ORB_SLAM3/CMakeLists.txt
第49行加入
${PROJECT_SOURCE_DIR}/../../../Thirdparty/Sophus

4. Pregunta 4:

Visualización de errores:

/usr/local/include/sigslot/signal.hpp:1180:65: error: 'slots_reference' no se declaró en este ámbito cow_copy_type<list_type, Lockable> ref = slots_reference();

Análisis de la razón:
debido a que el mío es C ++ 11, C ++ 11 aquí no admite algunas compilaciones de este proyecto, simplemente cambie la versión de C ++ a C ++ 14.

Solución:
ingrese el siguiente comando en la terminal

sed -i 's/++11/++14/g' CMakeLists.txt

5. Pregunta 5:

Visualización de errores:

4. Pregunta 4:

Visualización de errores:

/usr/local/include/sigslot/signal.hpp:1180:65: error: 'slots_reference' no se declaró en este ámbito cow_copy_type<list_type, Lockable> ref = slots_reference();

Análisis de causa: Se
informa un error de conversión de tipo Sophus :: SE3f, cv :: MAT, Eigen :: Vector3f, debería ser que no se puede convertir directamente, pero hay otra forma.

Solución: ingrese el siguiente comando en la terminal

sed -i 's/++11/++14/g' CMakeLists.txt

Análisis de la razón:
debido a que el mío es C ++ 11, C ++ 11 aquí no admite algunas compilaciones de este proyecto, simplemente cambie la versión de C ++ a C ++ 14.

Solución: Para conocer la
solución, consulte el artículo Proceso detallado de reproducción de ORB-SLAM3 - Instalación de configuración y ejecución de ROS y script - 2.4 en Ubuntu20.04. Simplemente siga los pasos en 2.4 para modificar el código fuente.

Hasta ahora, estos son todos los problemas que he encontrado.

Supongo que te gusta

Origin blog.csdn.net/qq_44164791/article/details/132652174
Recomendado
Clasificación