Ubuntu18.04 compila más rápido-lio sin actualizar gcc/g++ versión 9.0 (C++17)

Faster-lio es un método de cálculo de kilometraje inercial láser de código abierto del equipo Gaobo de Zhixingzhe. Este algoritmo se basa en el algoritmo Fast-LIO2. El principal punto de innovación es proponer una estructura de vóxel dispersa incremental: iVox, que mejora en gran medida la eficiencia del algoritmo.

En github, el autor ha dado el método de configuración basado en Docker, el método de configuración del entorno de ubuntu20.04 y Ubuntu18.04. Para Ubuntu 18.04, mi versión de gcc/g++ es 7.5.0, y es necesario instalar una versión superior de gcc en línea. Esto no es muy amigable para los trabajadores cuyas computadoras no pueden conectarse a Internet, y actualizar la versión de gcc puede causar compilación. excepciones en otros proyectos. Este artículo tiene como objetivo resolver el problema de compilar más rápido-lio sin actualizar la versión de gcc.

 

 1. ¿Por qué actualizar gcc/g++?

Porque para mejorar la eficiencia del algoritmo en Fast-lio, se utilizan algunas características nuevas de C++17, por lo que se requiere una versión superior de gcc/g++. Por lo tanto, una solución es reemplazar la parte de fast-lio que usa las nuevas características de C++17 con la sintaxis de la versión inferior.

 

2. ¿Dónde se utilizan las nuevas características de C++17?

Después de leer todo el programa, a través del archivo de encabezado incluido en el programa, se puede encontrar que la nueva característica <ejecución> se usa en el programa ,

<execution> es una nueva biblioteca de C++ 17 y parte de <algorithm>. Define principalmente tres estrategias para que las funciones paralelas se ejecuten en subprocesos múltiples para mejorar la eficiencia del algoritmo. Consulte este blog para obtener más información: <ejecución> . La aplicación de ejecución en Faster-lio se usa como parámetro de for_each.

#include <execution>

std::for_each(std::execution::par_unseq, index.begin(), index.end(), [&cloud, &closest_cloud, this](size_t idx)
{****}

Por lo tanto, también es muy sencillo de modificar, siempre que se comenten los archivos de encabezado <ejecución> en todos los archivos relacionados y se elimine el std::execution::par_unseq detrás de for_each, de la siguiente manera:

//#include <execution>

std::for_each(index.begin(), index.end(), [&cloud, &closest_cloud, this](size_t idx)
{****}

3. Compilar

Cree una nueva carpeta de proyecto work_space, cree una carpeta de compilación y una carpeta src en ella, y coloque el paquete más rápido-lio en la carpeta src. Abra el terminal en la carpeta work_space, use catkin_make para compilar y luego fuente.

catkin_make
source devel/setup.bash

 Tenga en cuenta que más rápido-lio también tiene las siguientes bibliotecas dependientes, que deben instalarse antes de compilar. Si falta alguna biblioteca, puede instalarla solo sin conexión. Ya hay muchos tutoriales sobre CSDN.

Biblioteca dependiente:

  1. ROS (melódico o noético)
  2. espino: sudo apt-get install libgoogle-glog-dev
  3. propio: sudo apt-get install libeigen3-dev
  4. PCL: sudo apt-get install libpcl-dev
  5. yaml-cpp: sudo apt-get install libyaml-cpp-dev

Supongo que te gusta

Origin blog.csdn.net/weixin_44884315/article/details/131189298
Recomendado
Clasificación