Pular para o conteúdo principal

Como executar A-LOAM 3D SLAM no reComputer

Introdução ao A-LOAM

A-LOAM é uma implementação avançada do algoritmo LOAM (Lidar Odometry and Mapping) original de J. Zhang e S. Singh. Os principais recursos do A-LOAM incluem:

  • Odometria e mapeamento LiDAR em tempo real.
  • Estrutura de código simplificada usando Eigen e Ceres Solver.
  • Alto desempenho e robustez em ambientes variados.

O A-LOAM pode ser usado para várias aplicações, incluindo direção autônoma, robótica e mapeamento 3D.

Este wiki fornece etapas detalhadas para configurar e executar o algoritmo A-LOAM (Advanced LOAM) na reComputer Jetson Série usando um sensor LiDAR RoboSense RS32. O A-LOAM é uma implementação avançada do LOAM (Lidar Odometry and Mapping in Real-time) que utiliza Eigen e Ceres Solver para mapeamento e localização eficientes e em tempo real.

Pré-requisitos

Primeiros Passos

Configuração do Ambiente

  • Etapa 1: Instale gflags, google-glog, suitesparse, cxsparse3, cxsparse.

    sudo apt-get install libgflags-dev libgoogle-glog-dev
    sudo apt-get install libsuitesparse-dev libcxsparse3 libcxsparse-dev
  • Etapa 2: Instale PCL (Point Cloud Library).

    sudo apt install libpcl-dev
  • Etapa 3: Instale 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
  • Etapa 4: Clone o código do A-LOAM no diretório src do seu workspace (~/catkin_ws/src).

    cd ~/catkin_ws/src
    git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git

Modificar Arquivos de Configuração e Código-fonte

  • Etapa 1: Como o algoritmo A-LOAM requer que o tipo de nuvem de pontos seja XYZIRT, e a saída padrão do RS32 LiDAR é XYZI, você precisa modificar o arquivo CMakeLists.txt na linha 8 no diretório ~/catkin_ws/src/rslidar_sdk/, alterando XYZI para XYZIRT.

  • Etapa 2: O tópico padrão de nuvem de pontos ao qual o A-LOAM assina é /velodyne_points, enquanto o tópico de saída padrão do RS32 LiDAR é /rslidar_points. Portanto, modifique o nome do tópico na linha 26 no arquivo ~/catkin_ws/src/rslidar_sdk/config/config.yaml para /velodyne_points.

  • Etapa 3: Se você estiver usando C++14, modifique a linha 5 no arquivo CMakeLists.txt localizado no diretório ~/catkin_ws/src/A-LOAM/, alterando C++11 para C++14.

  • Etapa 4: Se você estiver usando OpenCV 4.x, será necessário atualizar as referências aos arquivos de cabeçalho do OpenCV na linha 44 do arquivo scanRegistration.cpp localizado no diretório ~/catkin_ws/src/A-LOAM/src (esta etapa pode ser ignorada se você estiver usando OpenCV 3.x).

    Substitua o código

    #include <opencv/cv.h>

    por

    #include <opencv2/opencv.hpp>
  • Etapa 5: Nas linhas 91 e 93 de ~/catkin_ws/src/A-LOAM/src/kittiHelper.cpp, altere CV_LOAD_IMAGE_GRAYSCALE para cv::IMREAD_GRAYSCALE

  • Etapa 6: Se você estiver usando tf2, modifique todos os arquivos .cpp (kittiHelper.cpp, laserMapping.cpp, laserOdometry.cpp, scanRegistration.cpp) no diretório ~/catkin_ws/src/A-LOAM/src/ alterando frame_id=/camera_init para frame_id=camera_init, removendo apenas o símbolo '/'.

Compilar o Pacote

  • Etapa 1: Volte para o workspace e recompile o pacote de recursos e recarregue o ambiente.

    cd ~/catkin_ws
    catkin_make
    source ~/catkin_ws/devel/setup.bash

Iniciando o 3D SLAM

  • Etapa 1: Executando o código do lidar

      roslaunch rslidar_sdk start.launch
  • Etapa 2: Executando o código do A-LOAM

    roslaunch aloam_velodyne aloam_velodyne_HDL_32.launch

Suporte Técnico e Discussão de Produtos

Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes formas de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...