Skip to main content

Cómo ejecutar A-LOAM 3D SLAM en la reComputer

Introducción a A-LOAM

A-LOAM es una implementación avanzada del algoritmo LOAM (Lidar Odometry and Mapping) original de J. Zhang y S. Singh. Las características clave de A-LOAM incluyen:

  • Odometría y mapeo LiDAR en tiempo real.
  • Estructura de código simplificada utilizando Eigen y Ceres Solver.
  • Alto rendimiento y robustez en diversos entornos.

A-LOAM se puede utilizar para diversas aplicaciones, incluida la conducción autónoma, la robótica y la cartografía 3D.

Esta wiki proporciona pasos detallados para configurar y ejecutar el algoritmo A-LOAM (Advanced LOAM) en la reComputer Jetson Series utilizando un sensor LiDAR RoboSense RS32. A-LOAM es una implementación avanzada de LOAM (Lidar Odometry and Mapping in Real-time) que utiliza Eigen y Ceres Solver para mapeo y localización eficientes y en tiempo real.

Prerequisitos

Primeros pasos

Configuración del entorno

  • Paso 1: Instala gflags, google-glog, suitesparse, cxsparse3, cxsparse.
    sudo apt-get install libgflags-dev libgoogle-glog-dev
    sudo apt-get install libsuitesparse-dev libcxsparse3 libcxsparse-dev
  • Paso 2: Instala PCL (Biblioteca de nube de puntos).
    sudo apt install libpcl-dev
  • Paso 3: Instals Ceres.
    wget ceres-solver.org/ceres-solver-1.14.0.tar.gz
    tar xvf ceres-solver-1.14.0.tar.gz
    cd ceres-solver-1.14.0
    mkdir build
    cd build
    cmake ..
    make -j4
    sudo make install
  • Paso 4: Clona el código A-LOAM en el directorio src de tu espacio de trabajo (~/catkin_ws/src).
    cd ~/catkin_ws/src
    git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git

Modificar archivos de configuración y código fuente

  • Paso 1: Dado que el algoritmo A-LOAM requiere que el tipo de nube de puntos sea XYZIRT, y la salida predeterminada de LiDAR RS32 es XYZI, debes modificar el archivo CMakeLists.txt en la línea 8 en el directorio ~/catkin_ws/src/rslidar_sdk/, cambiando XYZI a XYZIRT.

  • Paso 2: El tema de nube de puntos predeterminado al que se suscribe A-LOAM es /velodyne_points, mientras que el tema de salida predeterminado de LiDAR RS32 es /rslidar_points. Por lo tanto, modifica el nombre del tema en la línea 26 del archivo ~/catkin_ws/src/rslidar_sdk/config/config.yaml a /velodyne_points.

  • Paso 3: Si estás utilizando C++14, modifica la línea 5 en el archivo CMakeLists.txt ubicado en el directorio ~/catkin_ws/src/A-LOAM/, cambiando C++11 a C++14.

  • Paso 4: Si estás utilizando OpenCV 4.x, debes actualizar las referencias del archivo de encabezado OpenCV en la línea 44 en el archivo scanRegistration.cpp ubicado en el directorio ~/catkin_ws/src/A-LOAM/src (este paso se puede omitir si estás utilizando OpenCV 3.x).

    Replace code

    #include <opencv/cv.h>

    with

    #include <opencv2/opencv.hpp>
  • Paso 5: En las líneas 91 y 93 de ~/catkin_ws/src/A-LOAM/src/kittiHelper.cpp, cambia CV_LOAD_IMAGE_GRAYSCALE a cv::IMREAD_GRAYSCALE

  • Paso 6: Si estás utilizando tf2, modifica todos los archivos .cpp (kittiHelper.cpp, laserMapping.cpp, laserOdometry.cpp, scanRegistration.cpp) en el directorio ~/catkin_ws/src/A-LOAM/src/ cambiando frame_id=/camera_init a frame_id=camera_init, eliminando sólo el símbolo '/'.

Compilar el paquete

  • Paso 1: Regresa al espacio de trabajo, vuelve a compilar el paquete de funciones y vuelve a cargar el entorno.
    cd ~/catkin_ws
    catkin_make
    source ~/catkin_ws/devel/setup.bash

Inicializar 3D SLAM

  • Paso 1: Ejecutar código lidar
      roslaunch rslidar_sdk start.launch
  • Paso 2: Ejecutar el siguiente script
    roslaunch aloam_velodyne aloam_velodyne_HDL_32.launch

Soporte Tech y discusión del producto

¡Gracias por elegir nuestros productos! Estamos aquí para darte soporte y asegurar que tu experiencia con nuestros productos sea la mejor posible. Tenemos diversos canales de comunicación para adaptarnos distintas preferencias y necesidades.

Loading Comments...