Configure o VINS_Fusion no ubuntu20.04 (o pro-test é eficaz, tudo está disponível)

        Recentemente, configurei o projeto de código VINS_Fusion do laboratório HKUST-Aerial-Robotics ao fazer treinamento em pesquisa científica. Tive alguns problemas com erros de compilação. Deixe-me anotar alguns problemas comuns encontrados durante minha configuração e guardá-los para referência futura e trocar e estudar com todos.

        portal do site github -> https://github.com/HKUST-Aerial-Robotics/VINS-Fusion

1. Instale o ubnutu20.04

        Não vou entrar em detalhes aqui, mas recomendo o vídeo instrutivo sobre a instalação do dual system do ubuntu20.04 na estação b, que é muito bom!

        Portal -> Instalação e desinstalação do sistema dual Windows e Ubuntu_哔哩哔哩_bilibili

2. Instale o ROS

        Para cada versão ubuntu diferente, ROS tem uma versão especial única correspondente a ela. Por exemplo, ROS Kinetic corresponde a ubuntu16.04, ROS Melodic corresponde a ubuntu18.04 e ROS corresponde a ubuntu20.04.noetic.

        As etapas de instalação do ROS são relativamente maduras, portanto, os artigos existentes são citados diretamente aqui como referência.

        Portal ->

        As etapas deste tweet são relativamente simples e quase suficientes. Esta é a primeira escolha.

        Nova instalação e configuração do Ubuntu20.04 ROS Instalação Noetic_ubuntu20.04 ros

        Este tweet é muito mais complicado. Não sabemos por que a instalação do ROS é tão complicada hahahaha, mas deve haver algumas etapas de relatório de erro adicionadas a ele. Se você tiver problemas de relatório de erro, pode consultá-lo.

        Apresente em detalhes como instalar o sistema ROS no ubuntu20.04, e conclua a instalação super rápido (a última versão do tutorial)_ubuntu installation ros_Mu Yu's Blog-CSDN Blog

3. Instale o Ceres

        Observe que haverá um buraco aqui. Se você seguir o link fornecido no github, o ceres instalado é a versão 2.X. Ao usar esta versão, isso causará erros de compilação posteriormente, portanto, não siga as etapas de instalação no oficial A versão que precisamos escolher aqui é Ceres1.14.0, instalar esta versão evitará muitos problemas mais tarde.

        Primeiro baixe as dependências

sudo apt-get install cmake
sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libsuitesparse-dev

        Em seguida, baixe o pacote de instalação ceres-solver1.14.0 e descompacte-o (o pacote de instalação baixado está no diretório principal)

#下载安装包
wget ceres-solver.org/ceres-solver-1.14.0.tar.gz
#解压安装包
tar -xvf ceres-solver-1.14.0.tar.gz

        Por fim, conclua a operação de compilação e instalação

cd ceres-solver-1.14.0
mkdir build
cd build
cmake ..
sudo make 
sudo make test
sudo make install

        Até agora, a instalação da versão ceres1.14.0 está concluída.

4. Configure o VINS-Fusion

        Clone o código do github e compile

    cd ~/catkin_ws/src
    git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git
    cd ../
    catkin_make
    source ~/catkin_ws/devel/setup.bash

       Observe que aqui catkin_ws é apenas um nome de arquivo usado para identificar o arquivo compilado. Se o seu computador criou um arquivo catkin_ws pertencente a esse trecho de código no computador ao compilar outros códigos, você precisa alterar esse trecho de código aqui. Compile o nome do arquivo, como alterar para vins_ws, para evitar conflitos.

        Na etapa catkin_make, se o anaconda3 estiver configurado em seu sistema ubuntu ou houver um problema com o caminho python no uso anterior, é recomendável especificar o caminho de compilação python3 aqui. O comando é o seguinte:

catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

        Durante o processo de compilação, haverá os seguintes tipos de erros:

        1. Em primeiro lugar, há um conflito entre o OpenCV4 que vem com a versão ROS noetic e o OpenCV3 que precisa ser usado no VINS-mono. Modifique o código vins-mono para ser compatível com opencv4. Na verdade, a principal modificação é o pacote camera_model.Felizmente, descobriu-se que não há necessidade de modificar as variáveis ​​incompatíveis no código, mas os arquivos de cabeçalho ausentes podem ser incluídos diretamente. Portanto, consulte o documento de referência opencv para localizar o arquivo de cabeçalho da variável indefinida em opencv4 em opencv3 e, em seguida, adicione-o ao arquivo de cabeçalho correspondente de camera_model para resolver o problema sem problemas. (Vá para a pasta na interface gráfica para encontrar o arquivo correspondente)

在camera_model包中的头文件Chessboard.h中添加
#include <opencv2/imgproc/types_c.h>
#include <opencv2/calib3d/calib3d_c.h>
在CameraCalibration.h中添加
#include <opencv2/imgproc/types_c.h>
#include <opencv2/imgproc/imgproc_c.h>

        2. Um erro foi relatado durante a compilação: 'CV_FONT_HERSHEY_SIMPLEX' não foi declarado neste escopo

Solução: Encontre o arquivo de erro correspondente de acordo com o caminho indicado no lembrete de erro, procure por CV_FONT_HERSHEY_SIMPLEX no arquivo e substitua por cv::FONT_HERSHEY_SIMPLEX.

        3. Um erro foi relatado durante a compilação: 'CV_BGR2GRAY' não foi declarado neste escopo

Solução: Encontre o arquivo de erro correspondente de acordo com o caminho indicado no lembrete de erro, procure por CV_BGR2GRAY no arquivo e substitua-o por cv::COLOR_BGR2GRAY.

        4. Um erro foi relatado durante a compilação: 'CV_LOAD_IMAGE_GRAYSCALE' não foi declarado neste escopo

Solução: Encontre o arquivo de erro correspondente de acordo com o caminho indicado no lembrete de erro, procure por CV_LOAD_IMAGE_GRAYSCALE no arquivo e substitua por IMREAD_GRAYSCALE.

        Todas as etapas acima exigem que encontremos a localização dos arquivos lentamente e modifiquemos um por um. É complicado, então não fique ansioso, esses são processos necessários!

       

        Você pode consultar os artigos relacionados: Ubuntu20.04 executa Vins-fusion_run vin fusion_Keji's Blog-CSDN Blog

5. Execute o conjunto de dados

        Até agora, todas as configurações foram concluídas, só precisamos baixar o conjunto de dados e salvá-lo no local especificado e executá-lo de acordo com as instruções no github.

        Exemplo——Câmera monocular + IMU

    roslaunch vins vins_rviz.launch
    rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml 
    (optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml 
    rosbag play YOUR_DATASET_FOLDER(需要修改为放置数据集的文件夹名字)/MH_01_easy.bag

        Na segunda linha de comando, se nosso arquivo compilado não for chamado catkin_ws, mas chamado vins_ws ou outros nomes, precisamos modificar o comando da seguinte maneira:

rosrun vins vins_node ~/vins_ws(或者对应的文件名)/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml 

         O comando de quatro linhas precisa ser executado em quatro terminais mesmo~

        Finalmente, podemos ver a gravação em vídeo do conjunto de dados rodando no RVIZ!

        FIM!

        

Acho que você gosta

Origin blog.csdn.net/wyr1849089774/article/details/129907177
Recomendado
Clasificación