Ubuntu erstellt die CT_ICP-Kilometerzählerumgebung und die CT-ICP-Bereitstellung

0. Laden Sie die Ressourcen herunter und folgen Sie dem Vorgang der ursprünglichen Github-URL.

Quellcode-URL: https://github.com/jedeschaud/ct_icp
Alle Schritte werden gemäß den Schritten in readme.md ausgeführt . Fügen Sie auf dieser Grundlage die Probleme und Lösungen hinzu, auf die Sie während dieses Prozesses gestoßen sind.

1. Überprüfen Sie die Version jedes benötigten Teils.

Versionsanforderungen:

GCC >= 7,5, clang >= 8,01, cmake >= 3,14

Überprüfen Sie die gcc- Version , gcc -v check

(base) xiaoduan@fighter:~/source1/CT-ICP/pyLiDAR-SLAM$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

cmake --version, um die cmake- Version anzuzeigen

(base) xiaoduan@fighter:~/source1/CT-ICP/pyLiDAR-SLAM$ cmake --version
cmake version 3.16.1

CMake suite maintained and supported by Kitware (kitware.com/cmake).

2. Installieren Sie den Clang-Compiler

Um Clang zu installieren, rufen Sie bitte die folgende URL auf: https://blog.csdn.net/xujianjun229/article/details/128902018#commentBox
.
Geben Sie nacheinander die folgenden drei Befehle ein:

sudo apt-get install llvm
sudo apt-get install clang
clang -v

Das Ergebnis der Betrachtung der Produktionsversion ist:

clang version 10.0.0-4ubuntu1 
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/8
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/9
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/9
Candidate multilib: .;@m64
Selected multilib: .;@m64
Found CUDA installation: /usr/lib/cuda, version 10.1

Zu diesem Zeitpunkt sind alle Grundvoraussetzungen erfüllt.

3. Machen Sie einen Super-Build

3.1 Standardverhalten

Führen Sie die folgenden Befehle nacheinander aus, um alle Abhängigkeiten zu installieren:

mkdir .cmake-build-superbuild && cd .cmake-build-superbuild     #< Creates the cmake folder
cmake ../superbuild                                             #< (1) Configure step 
cmake --build . --config Release                                #< Build step (Downloads and install the dependencies), add -DWITH_VIZ3D=ON to install with the GUI
cmake . -DWITH_VIZ3D=ON         #构建可视化

Nachdem alle Befehle ausgeführt wurden und alles normal ist, sollte ein Installationsverzeichnis erstellt werden, in dem auch eine superbuild_import.cmake-Datei angezeigt wird.
( Vor diesem Schritt wird empfohlen, viz3d herunterzuladen und pip install auszuführen. Bei der Installation können dadurch einige später auftretende Probleme vermieden werden. )

3.2 Während des Bauprozesses aufgetretene Probleme

  1. Beim Ausführen des dritten Befehls trat ein Problem auf, das mit der Verbindung zum externen Netzwerk zusammenhängen sollte. Ich habe es einen Nachmittag lang versucht und beschlossen, es zu ignorieren.
    Hauptsächlich hängen geblieben an:

Git-Klon https://ceres-solver.googlesource.com/ceres-solveratal: Zugriff auf „https://ceres-solver.googlesource.com/ceres-solver/“ nicht möglich: Verbindung zu ceres-solver.googlesource konnte nicht hergestellt werden. COM-Port 443: 连接超

  1. Als ich am nächsten Morgen ankam, beschloss ich, es auszuprobieren, denn wenn ich es hier ignoriere, könnten eine Reihe anderer Probleme auftreten.
    Das Anpassungsnetzwerk war nicht erfolgreich, also begann ich, in der Datei nach der Klon-Anweisung zu suchen, und fand schließlich den unten gezeigten Pfad. Öffnen Sie
    im Ordner .cmake-build-superbuild/MappingResearchKEU_superbuild/src/MappingResearchKEU_superbuild die CMakeLists. txt-Datei und nehmen Sie die folgenden Änderungen vor.
//更改前:
# INSTALL Ceres          
if (WITH_CERES)
    message(INFO "${LOG_PREFIX}Generating Ceres dependency")

    ExternalProject_Add(
            Ceres
            PREFIX Ceres

            GIT_REPOSITORY https://ceres-solver.googlesource.com/ceres-solver  //!!!!需要改动的地方   
            GIT_TAG 2.0.0

//更改后:
# INSTALL Ceres         
if (WITH_CERES)
    message(INFO "${LOG_PREFIX}Generating Ceres dependency")

    ExternalProject_Add(
            Ceres
            PREFIX Ceres

            GIT_REPOSITORY https://github.com/ceres-solver/ceres-solver
            GIT_TAG 2.0.0

Dann gelang es mir, aber zum Glück gab ich nicht auf.

4. Erstellen und installieren Sie die CT-ICP-Bibliothek

4.1 Standardverhalten

Führen Sie den folgenden Befehl aus:

# Inside the main directory
mkdir cmake-build-release && cd  cmake-build-release                  #< Create the build directory
cmake .. -DCMAKE_BUILD_TYPE=Release                                   #< (2) Configure with the desired options (specify arguments with -D<arg_name>=<arg_value>), add -DWITH_VIZ3D=ON to install with the GUI
cmake --build . --target install --config Release --parallel 12       #< Build and Install the project
cmake . -DWITH_VIZ3D=ON         #构建可视化

Hinweis: Die erste Befehlszeile sollte unter der Hauptdatei dieses Projekts ausgeführt werden.
Wenn alles in Ordnung ist, sollte es im Super-Build-Verzeichnis ein Unterverzeichnis <SUPERBUILD_INSTALL_DIR>/CT_ICP/lib/cmake geben. Bibliotheksprojekte können mithilfe einer Konfigurationsdatei unter , oder mithilfe von ROS oder einer angegebenen ausführbaren Datei in cmake geladen werden. CT_ICP

4.2 Aufgetretene Probleme und Lösungen

  1. Beim Ausführen der zweiten Befehlszeile ist ein weiterer Fehler aufgetreten:
CMake Error at cmake/external.cmake:13 (get_target_property):
  INTERFACE_LIBRARY targets may only have whitelisted properties.  The
  property "IMPORTED_RELEASE_LOCATION" is not allowed.
Call Stack (most recent call first):
  CMakeLists.txt:51 (include)


INFO /home/xiaoduan/project/lidar/ct_icp-master/install/Ceres/lib/libceres.so.2.0.0
INFO /home/xiaoduan/project/lidar/ct_icp-master/install/glog/lib/libglog.so.0.5.0
CMake Error at cmake/external.cmake:13 (get_target_property):
  INTERFACE_LIBRARY targets may only have whitelisted properties.  The
  property "IMPORTED_RELEASE_LOCATION" is not allowed.
Call Stack (most recent call first):
  CMakeLists.txt:51 (include)


INFO /home/xiaoduan/project/lidar/ct_icp-master/install/yaml-cpp/lib/libyaml-cpp.so.0.6.3
CMake Error at cmake/external.cmake:13 (get_target_property):
  INTERFACE_LIBRARY targets may only have whitelisted properties.  The
  property "IMPORTED_RELEASE_LOCATION" is not allowed.
Call Stack (most recent call first):
  CMakeLists.txt:51 (include)


INFO /home/xiaoduan/project/lidar/ct_icp-master/install/tinyply/lib/libtinyply.so
INFO -- [CT-ICP] -- Appending to the INSTALL RPATH the RPATH to the external libraries: 
		[:/home/xiaoduan/project/lidar/ct_icp-master/install/Ceres/lib:/home/xiaoduan/project/lidar/ct_icp-master/install/glog/lib:/home/xiaoduan/project/lidar/ct_icp-master/install/yaml-cpp/lib:/home/xiaoduan/project/lidar/ct_icp-master/install/tinyply/lib]
INFO [CT_ICP] -- "WITH_GTSAM=OFF gtsam dependent targets will not be built"
-- Configuring incomplete, errors occurred!
See also "/home/xiaoduan/project/lidar/ct_icp-master/cmake-build-release/CMakeFiles/CMakeOutput.log".
See also "/home/xiaoduan/project/lidar/ct_icp-master/cmake-build-release/CMakeFiles/CMakeError.log".

Ich habe im Internet nach vielen Methoden gesucht, aber sie haben nicht funktioniert und ich habe sie nicht verstanden. Dann habe ich auf der offiziellen Camke-Website gesucht und nicht einmal IMPORTED_RELEASE_LOCATION gefunden.
Ich habe viele Methoden ausprobiert und festgestellt, dass IMPORTED_LOCATION_RELEASE jedes Mal gefunden wurde, also habe ich den Inhalt der Datei cmake/external.cmake:13 geändert. Es stellt sich jedoch heraus, dass es keine Wirkung hat.

Dann habe ich cmake gemäß der folgenden URL
https://blog.csdn.net/weixin_45860565/article/details/127869813
aktualisiert und das Problem wurde gelöst. Die letzte Befehlszeile wird direkt ausgeführt, was relativ reibungslos verläuft.
Die aktuelle Version von cmake ist 3.22.1

  1. Nach der Ausführung von cmake... --DWITH_VIZ3D=ON trat das folgende Problem auf.
CMake Error at install/superbuild_import.cmake:35 (find_package):
  Could not find a package configuration file provided by "viz3d" with any of
  the following names:

    viz3dConfig.cmake
    viz3d-config.cmake

  Add the installation prefix of "viz3d" to CMAKE_PREFIX_PATH or set
  "viz3d_DIR" to a directory containing one of the above files.  If "viz3d"
  provides a separate development package or SDK, be sure it has been
  installed.
Call Stack (most recent call first):
  install/superbuild_import.cmake:101 (SLAM_DEFAULT_FIND_PACKAGE)
  cmake/superbuild_utils.cmake:27 (include)
  CMakeLists.txt:49 (SLAM_INCLUDE_SUPERBUILD)

Das Debuggen war nicht gut. Glücklicherweise habe ich cmake-build-release gelöscht und Schritt D erneut ausgeführt.

Gehen Sie dann in den Ordner ct_icp-master/.cmake-build-superbuild/MappingResearchKEU_superbuild/src/MappingResearchKEU_superbuild-build/viz3d/src/viz3d und führen Sie den Befehl ./install.sh aus, um ihn zu installieren.

Führen Sie dann den dritten Schritt erneut durch.

  1. Beim Ausführen des zweiten Satzes tritt ein Fehler auf:
CMake Error at /opt/ros/noetic/share/catkin/cmake/empy.cmake:30 (message):
  Unable to find either executable 'empy' or Python module 'em'...  try
  installing the package 'python3-empy'
Call Stack (most recent call first):
  /opt/ros/noetic/share/catkin/cmake/all.cmake:164 (include)
  /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:20 (include)
  CMakeLists.txt:64 (find_package)

Lösen Sie das Problem gemäß dem Inhalt der folgenden beiden Websites:
https://blog.csdn.net/gongdiwudu/article/details/124430036
https://blog.csdn.net/zkk9527/article/details/125558478

5. Erstellen Sie das ROS-Paket von CT-ICP

5.1 Standardverhalten

  1. Um die gemeinsam genutzte Bibliothek zu installieren, führen Sie den folgenden Befehl aus:
cd ros/roscore
mkdir cmake-build-release && cd  cmake-build-release                  #< Create the build directory
cmake .. -DCMAKE_BUILD_TYPE=Release                                   #< (2) Configure with the desired options (specify arguments with -D<arg_name>=<arg_value>)
cmake --build . --target install --config Release --parallel 12       #< Build and Install the ROSCore library
  1. Erstellen Sie einen neuen Arbeitsbereich, catkin_ws. Und erstellen Sie darin eine src-Datei und führen Sie den folgenden Befehl aus:
mkdir -p catkin_ws/src
  1. Verbinden Sie Projekte mit Ihrem eigenen Raum
cd <path-to-your-catkin-workspace>/src                              #< Move to the Catkin Workspace's src directory
ln -s <path-to-ct_icp-git-project>/ros/catkin_ws/ct_icp_odometry ct_icp_odometry        #< Make a symbolic link to the `catkin_ws` folder
ln -s <path-to-ct_icp-git-project>/ros/catkin_ws/slam_roscore slam_roscore        #< Make a symbolic link to the `catkin_ws` folder
cd ..                                                               #< Move back to the root of the catkin workspace
catkin_make -DSUPERBUILD_INSTALL_DIR=<path-to-superbuild-install-dir>

Wenn die Installation erfolgreich ist und Sie das Entwicklungsverzeichnis des Arbeitsbereichs erhalten haben, sollten Sie in der Lage sein, den installierten ROS-Knoten zu starten.
Der Wrapper definiert die folgenden Knoten:
ct_icp_dataset_node: Veröffentlicht einen Knoten, der Punktwolken verschiedener ct_icp-Datensätze von der Festplatte liest.
ct_icp_odometry_node: Der Hauptknoten zur Entfernungsmessung, der die ct_icp-Entfernungsmessung ausführt.
Hinweis: Hier besteht keine Beziehung zwischen dem Arbeitsbereich und dem Projekt.

Führen Sie den Test durch:

roslaunch ct_icp_odometry launch_slam_dataset.launch dataset_path:=/home/xiaoduan/Desktop/dataset/KITTI/KITTI_raw dataset:=KITTI_raw sequence:=00

Testergebnisse:
Ein Screenshot während des Testvorgangs, und was am Ende übrig bleibt, ist ein Flugbahndiagramm.
Screenshot der Demo-Testergebnisse

Betrieb

1. Skript verwenden (für ct-icp-Datensatz)

Zu diesem Zeitpunkt hatte ich das Gefühl, dass ich es ohne Ros ausführen konnte, also habe ich es direkt mit dem Skript ausgeführt und es wurde erfolgreich ausgeführt.
Einen Auftrag ausführen:

./run_odometry -c /home/xiaoduan/project/lidar/ct_icp-master/config/odometry/driving_config.yaml

Ergebnisse des Skripttests:
Screenshot der Demo-Testergebnisse

2. Verwenden Sie steuerbare Systeme (ROS)

Verwenden Sie nach Abschluss der ROS-Installation Rosbag, um die Odometrie zu starten, zum Beispiel: ros/catkin_ws/ct_icp_odometry/launch

roslaunch ct_icp_odometry lidar_odometry_subt.launch rosbag:=/home/xiaoduan/Desktop/dataset/a_lvl_1.bag 

Operationsergebnis:
1

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

Am Ende geschrieben:
Die gesamten allgemeinen Schritte umfassen im Allgemeinen die folgenden Prozesse.

Laden Sie viz3d herunter und führen Sie pip install aus. Installieren Sie
git
cd ,
um Super Build auszuführen
. Aktualisieren Sie cmake manuell.
Führen Sie den Aufbau der Slam-Bibliothek aus
. Führen Sie den Aufbau der ROS-Bibliothek aus.
Erstellen Sie unabhängig einen Arbeitsbereich, der sich von der Adresse von Git unterscheidet.
Erstellen Sie den Knoten .
Abschließen
und dann ausführen.

Je suppose que tu aimes

Origine blog.csdn.net/qq_44164791/article/details/132188049
conseillé
Classement