Livox-Mapping - An all-in-one and ready-to-use LiDAR-inertial odometry system for Livox LiDAR

Overview

Livox-Mapping

This repository implements an all-in-one and ready-to-use LiDAR-inertial odometry system for Livox LiDAR. The system is developed based on the open-source odometry framework LIO-Livox to get the odometry information in our front-end part. Besides, we have added more constraints and features to enhance the mapping performance.

At the same time, we provide you one simple lidar-map based localization module in Livox-Localization.

Livox_Mapping

1. Features

We only describe the new features added to our baseline framework LIO-Livox. For the amazing features developed by LIO-Livox, please check their own repository.

1.1 Loop Closure Detection

In the LCD part, we use the ScanContext to perform the loop closure detection and then add the loop closure constrains to the optimization solver. With the LCD module, we are able to close the gap and compensate the accumulated translation error of the scan matching in large environments.

with Loop Closure without Loop Closure
with_sc without_sc

1.2 Ground Constrain

To avoid the drifting alongside the Z-axis, the general problem occurred in LOAM (LiDAR Odometry and Mapping) algorithms, we add the the ground constraints ( the plane detection is done by LIO-Livox) to the optimization solver as hdl_graph_slam.

with Ground Constrain without Ground Constrain
with_ground wo_ground

1.3 Map Merging from Multiple Rosbags

In practice, we usually collect environment data in multiple times, thus we need one functionality to fuse the map information from multiple rosbags. In this implementation, we use GPS information (optionally) to convert LiDAR scans collected in different time into one coordinate system and then use ScanContext and ICP to find fine matching result. At the same time, we maintain one lifelong optimization vector in our backend to store the previous key-frames. Through this approach, we are able to connect scans in different collections.

bags

1.4 GPS Factor

We also offer the GPS factor to aid the mapping process. This is only one optional choice. Without the GPS information, the whole system could also work.

1.5 Compatible with Mapping Editor interactive_slam

interactive_slam is an open-source 3D LiDAR-based mapping framework. We add one functionality to output the mapping result in the format compatible with interactive_slam, by this, you can easily edit your mapping result and get one more accurate LiDAR map. At the same time, if you have one camera alongside the Livox, we also offer one dummy moving objects removal function with aid of mmdection and easy LiDAR points projection.

Represented in interactive_slam Moving Object Removal
interact_slam image-20211223215338497

2. Prerequisites

2.1 Dependencies for baseline

Our framework is developed based on the open-source framework LIO-Livox for odometry part, ScanContext for loop closure part and interactive_slam for map-editing part (if you need), so technically, please refer to these repos for detailed information.

2.2 General Dependencies

2.3 Docker

For one quick and convenient test, we are offering you a Docker Image with DockerHub.

Please check the DockerHub Link for more information.

  • Pull the docker image.
docker pull siyuanhuang95/livox_slam:release
  • Execute the docker run command. You can use -v to bind the docker to your local machine as you wish.
docker run --gpus all -it -p 3316:22 --device=/dev/dri --group-add video --volume=/tmp/.X11-unix:/tmp/.X11-unix  --env="DISPLAY=$DISPLAY" siyuanhuang95/livox_slam:release /bin/bash
  • To allow the RVIZ in Docker to run in the host PC. In the local mashine:
xhost +

3. Build

  • Clone the repository and catkin_make
cd ~/catkin_ws/src
git clone https://github.com/PJLab-ADG/LIO_Livox_SLAM.git
cd ..
catkin_make
  • Remember to source the livox_ros_driver before build (follow livox_ros_driver)

4. Run

4.1 Dataset Requirements

Before running the mapping functionality, please make sure the sensor data are published to the correct rostopic.

  • Livox LiDAR: /livox/lidar
  • IMU: /livox/imu
  • GPS: /localization/navstate_info

4.2 Run Mapping Function

  • In one terminal, launch the mapping thread
# If you don't have the GPS data
cd ~/catkin_ws
source devel/setup.bash
roslaunch livox_mapping Livox_mapping.launch save_path:="PATH_TO_SAVE_SLAM_POSE_RESULT"
# If you have the GPS data
cd ~/catkin_ws
source devel/setup.bash
roslaunch livox_mapping Livox_mapping.launch useRTK:="true" save_path:="PATH_TO_SAVE_SLAM_POSE_RESULT"
  • In another terminal, launch the odometry thread
cd ~/catkin_ws
source devel/setup.bash
roslaunch livox_odometry livox_odometry.launch save_path:="PATH_TO_SAVE_ODOM_RESULT_in_txt"
  • In another terminal, play the rosbag
rosbag play YOUR_ROSBAG.bag

4.3 Multiple Bags Merge

If you have more rosbags collected in one same area, you can restart odometry thread at the end of the first odometry thread run and play the next package.

  • In the terminal for odometry thread, use Ctrl+C to shut down the old odometry thread.
  • In the terminal for odometry thread, use the command below to start one new odometry thread
roslaunch livox_odometry livox_odometry.launch save_path:="PATH_TO_SAVE_ODOM_RESULT_in_txt"
  • Play one new rosbag.

5. Datasets

For the ease of usage, we are providing several test rosbags collected in one industrial park located in Shanghai. Please be aware that all codes and datasets included in this repository are for academic research purposes only. Other usages are NOT encouraged, and it is at your own risk. If You have any concerns including privacy, please contact us by sending an e-mail to [email protected]

The dataset can be downloaded through the Baidu Netdisk with:

Link:https://pan.baidu.com/s/17ElBOWiFVr68975FtXY8ZA 
Passwort:pjop

6. Acknowledgments

Thanks for the authors of LIO-Livox, ScanContextFast-LIO-SLAM and interactive_slam.

Contact

Comments
  • catkin_make error

    catkin_make error

    First of all, thanks for your works and share it with all of us 🙂 i'm actually trying to catkin_make the Livox mapping but i have 2 make errors as shown in the pictures. can you help me to identify the problem and solve it?

    [email protected]:~/catkin_ws$ catkin_make Base path: /home/glic/catkin_ws Source space: /home/glic/catkin_ws/src Build space: /home/glic/catkin_ws/build Devel space: /home/glic/catkin_ws/devel Install space: /home/glic/catkin_ws/install

    Running command: "cmake /home/glic/catkin_ws/src -DCATKIN_DEVEL_PREFIX=/home/glic/catkin_ws/devel -DCMAKE_INSTALL_PREFIX=/home/glic/catkin_ws/install -G Unix Makefiles" in "/home/glic/catkin_ws/build"

    -- Using CATKIN_DEVEL_PREFIX: /home/glic/catkin_ws/devel -- Using CMAKE_PREFIX_PATH: /opt/ros/melodic -- This workspace overlays: /opt/ros/melodic -- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.17", minimum required is "2") -- Using PYTHON_EXECUTABLE: /usr/bin/python2 -- Using Debian Python package layout -- Using empy: /usr/bin/empy -- Using CATKIN_ENABLE_TESTING: ON -- Call enable_testing() -- Using CATKIN_TEST_RESULTS_DIR: /home/glic/catkin_ws/build/test_results -- Found gtest sources under '/usr/src/googletest': gtests will be built -- Found gmock sources under '/usr/src/googletest': gmock will be built -- Found PythonInterp: /usr/bin/python2 (found version "2.7.17") -- Using Python nosetests: /usr/bin/nosetests-2.7 -- catkin 0.7.29 -- BUILD_SHARED_LIBS is on -- BUILD_SHARED_LIBS is on -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ~~ traversing 8 packages in topological order: -- ~~ - ad_localization_msgs -- ~~ - dnb_msgs -- ~~ - camera_control_msgs -- ~~ - pylon_camera -- ~~ - livox_ros_driver -- ~~ - livox_mapping -- ~~ - livox_odometry -- ~~ - xsens_mti_driver -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- +++ processing catkin package: 'ad_localization_msgs' -- ==> add_subdirectory(Livox-Mapping/ad_localization_msgs) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- ad_localization_msgs: 1 messages, 0 services -- +++ processing catkin package: 'dnb_msgs' -- ==> add_subdirectory(dragandbot_common/dnb_msgs) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- dnb_msgs: 4 messages, 4 services -- +++ processing catkin package: 'camera_control_msgs' -- ==> add_subdirectory(pylon-ros-camera/camera_control_msgs) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Generating .msg files for action camera_control_msgs/GrabAndSaveImage /home/glic/catkin_ws/src/pylon-ros-camera/camera_control_msgs/action/GrabAndSaveImage.action -- Generating .msg files for action camera_control_msgs/GrabHDRImage /home/glic/catkin_ws/src/pylon-ros-camera/camera_control_msgs/action/GrabHDRImage.action -- Generating .msg files for action camera_control_msgs/GrabImages /home/glic/catkin_ws/src/pylon-ros-camera/camera_control_msgs/action/GrabImages.action -- camera_control_msgs: 22 messages, 14 services -- +++ processing catkin package: 'pylon_camera' -- ==> add_subdirectory(pylon-ros-camera/pylon_camera) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- +++ processing catkin package: 'livox_ros_driver' -- ==> add_subdirectory(livox_ros_driver) -- livox_ros_driver version: 2.6.0 -- Boost version: 1.65.1 -- Found the following Boost libraries: -- system -- thread -- chrono -- date_time -- atomic -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Boost version: 1.65.1 -- Found the following Boost libraries: -- system -- filesystem -- thread -- date_time -- iostreams -- serialization -- chrono -- atomic -- regex -- Could NOT find ensenso (missing: ENSENSO_LIBRARY ENSENSO_INCLUDE_DIR) ** WARNING ** io features related to ensenso will be disabled -- Could NOT find DAVIDSDK (missing: DAVIDSDK_LIBRARY DAVIDSDK_INCLUDE_DIR) ** WARNING ** io features related to davidSDK will be disabled -- Could NOT find DSSDK (missing: _DSSDK_LIBRARIES) ** WARNING ** io features related to dssdk will be disabled ** WARNING ** io features related to pcap will be disabled ** WARNING ** io features related to png will be disabled -- The imported target "vtkRenderingPythonTkWidgets" references the file "/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so" but this file does not exist. Possible reasons include:

    • The file was deleted, renamed, or moved to another location.
    • An install or uninstall procedure did not complete successfully.
    • The installation package was faulty and contained "/usr/lib/cmake/vtk-6.3/VTKTargets.cmake" but not all the files it references.

    -- The imported target "vtk" references the file "/usr/bin/vtk" but this file does not exist. Possible reasons include:

    • The file was deleted, renamed, or moved to another location.
    • An install or uninstall procedure did not complete successfully.
    • The installation package was faulty and contained "/usr/lib/cmake/vtk-6.3/VTKTargets.cmake" but not all the files it references.

    ** WARNING ** io features related to libusb-1.0 will be disabled -- Could NOT find ensenso (missing: ENSENSO_LIBRARY ENSENSO_INCLUDE_DIR) ** WARNING ** visualization features related to ensenso will be disabled -- Could NOT find DAVIDSDK (missing: DAVIDSDK_LIBRARY DAVIDSDK_INCLUDE_DIR) ** WARNING ** visualization features related to davidSDK will be disabled -- Could NOT find DSSDK (missing: _DSSDK_LIBRARIES) ** WARNING ** visualization features related to dssdk will be disabled -- Could NOT find RSSDK (missing: _RSSDK_LIBRARIES) ** WARNING ** visualization features related to rssdk will be disabled -- looking for PCL_COMMON -- looking for PCL_OCTREE -- looking for PCL_IO -- looking for PCL_KDTREE -- looking for PCL_SEARCH -- looking for PCL_SAMPLE_CONSENSUS -- looking for PCL_FILTERS -- looking for PCL_2D -- looking for PCL_GEOMETRY -- looking for PCL_FEATURES -- looking for PCL_ML -- looking for PCL_SEGMENTATION -- looking for PCL_VISUALIZATION -- looking for PCL_SURFACE -- looking for PCL_REGISTRATION -- looking for PCL_KEYPOINTS -- looking for PCL_TRACKING -- looking for PCL_RECOGNITION -- looking for PCL_STEREO -- looking for PCL_APPS -- looking for PCL_IN_HAND_SCANNER -- looking for PCL_MODELER -- looking for PCL_POINT_CLOUD_EDITOR -- looking for PCL_OUTOFCORE -- looking for PCL_PEOPLE -- livox_ros_driver: 2 messages, 0 services -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") -- Checking for module 'apr-1' -- Found apr-1, version 1.6.3 /usr/include/apr-1.0 apr-1 find livox sdk library success -- +++ processing catkin package: 'livox_mapping' -- ==> add_subdirectory(Livox-Mapping/SC-PGO) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Boost version: 1.65.1 -- Found the following Boost libraries: -- system -- filesystem -- thread -- date_time -- iostreams -- serialization -- chrono -- atomic -- regex -- Could NOT find ensenso (missing: ENSENSO_LIBRARY ENSENSO_INCLUDE_DIR) ** WARNING ** io features related to ensenso will be disabled -- Could NOT find DAVIDSDK (missing: DAVIDSDK_LIBRARY DAVIDSDK_INCLUDE_DIR) ** WARNING ** io features related to davidSDK will be disabled -- Could NOT find DSSDK (missing: _DSSDK_LIBRARIES) ** WARNING ** io features related to dssdk will be disabled ** WARNING ** io features related to pcap will be disabled ** WARNING ** io features related to png will be disabled -- The imported target "vtkRenderingPythonTkWidgets" references the file "/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so" but this file does not exist. Possible reasons include:

    • The file was deleted, renamed, or moved to another location.
    • An install or uninstall procedure did not complete successfully.
    • The installation package was faulty and contained "/usr/lib/cmake/vtk-6.3/VTKTargets.cmake" but not all the files it references.

    -- The imported target "vtk" references the file "/usr/bin/vtk" but this file does not exist. Possible reasons include:

    • The file was deleted, renamed, or moved to another location.
    • An install or uninstall procedure did not complete successfully.
    • The installation package was faulty and contained "/usr/lib/cmake/vtk-6.3/VTKTargets.cmake" but not all the files it references.

    ** WARNING ** io features related to libusb-1.0 will be disabled -- Could NOT find ensenso (missing: ENSENSO_LIBRARY ENSENSO_INCLUDE_DIR) ** WARNING ** visualization features related to ensenso will be disabled -- Could NOT find DAVIDSDK (missing: DAVIDSDK_LIBRARY DAVIDSDK_INCLUDE_DIR) ** WARNING ** visualization features related to davidSDK will be disabled -- Could NOT find DSSDK (missing: _DSSDK_LIBRARIES) ** WARNING ** visualization features related to dssdk will be disabled -- Could NOT find RSSDK (missing: _RSSDK_LIBRARIES) ** WARNING ** visualization features related to rssdk will be disabled -- looking for PCL_COMMON -- looking for PCL_OCTREE -- looking for PCL_IO -- looking for PCL_KDTREE -- looking for PCL_SEARCH -- looking for PCL_SAMPLE_CONSENSUS -- looking for PCL_FILTERS -- looking for PCL_2D -- looking for PCL_GEOMETRY -- looking for PCL_FEATURES -- looking for PCL_ML -- looking for PCL_SEGMENTATION -- looking for PCL_VISUALIZATION -- looking for PCL_SURFACE -- looking for PCL_REGISTRATION -- looking for PCL_KEYPOINTS -- looking for PCL_TRACKING -- looking for PCL_RECOGNITION -- looking for PCL_STEREO -- looking for PCL_APPS -- looking for PCL_IN_HAND_SCANNER -- looking for PCL_MODELER -- looking for PCL_POINT_CLOUD_EDITOR -- looking for PCL_OUTOFCORE -- looking for PCL_PEOPLE -- Found required Ceres dependency: Eigen version 3.3.4 in /usr/lib/cmake/eigen3 -- Found required Ceres dependency: glog -- Found required Ceres dependency: gflags -- Found Ceres version: 2.1.0 installed in: /usr/local with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, CXSparse, SchurSpecializations, Multithreading] -- Found OpenMP_C: -fopenmp
    -- Found OpenMP_CXX: -fopenmp
    -- Found OpenMP: TRUE
    -- GTSAM include directory: /usr/local/lib/cmake/GTSAM/../../../include -- +++ processing catkin package: 'livox_odometry' -- ==> add_subdirectory(Livox-Mapping/LIO-Livox) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Found Eigen3: /usr/include/eigen3 (Required is at least version "2.91.0") -- Boost version: 1.65.1 -- Found the following Boost libraries: -- system -- filesystem -- thread -- date_time -- iostreams -- serialization -- chrono -- atomic -- regex -- Could NOT find ensenso (missing: ENSENSO_LIBRARY ENSENSO_INCLUDE_DIR) ** WARNING ** io features related to ensenso will be disabled -- Could NOT find DAVIDSDK (missing: DAVIDSDK_LIBRARY DAVIDSDK_INCLUDE_DIR) ** WARNING ** io features related to davidSDK will be disabled -- Could NOT find DSSDK (missing: _DSSDK_LIBRARIES) ** WARNING ** io features related to dssdk will be disabled ** WARNING ** io features related to pcap will be disabled ** WARNING ** io features related to png will be disabled -- The imported target "vtkRenderingPythonTkWidgets" references the file "/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so" but this file does not exist. Possible reasons include:

    • The file was deleted, renamed, or moved to another location.
    • An install or uninstall procedure did not complete successfully.
    • The installation package was faulty and contained "/usr/lib/cmake/vtk-6.3/VTKTargets.cmake" but not all the files it references.

    -- The imported target "vtk" references the file "/usr/bin/vtk" but this file does not exist. Possible reasons include:

    • The file was deleted, renamed, or moved to another location.
    • An install or uninstall procedure did not complete successfully.
    • The installation package was faulty and contained "/usr/lib/cmake/vtk-6.3/VTKTargets.cmake" but not all the files it references.

    ** WARNING ** io features related to libusb-1.0 will be disabled -- Could NOT find ensenso (missing: ENSENSO_LIBRARY ENSENSO_INCLUDE_DIR) ** WARNING ** visualization features related to ensenso will be disabled -- Could NOT find DAVIDSDK (missing: DAVIDSDK_LIBRARY DAVIDSDK_INCLUDE_DIR) ** WARNING ** visualization features related to davidSDK will be disabled -- Could NOT find DSSDK (missing: _DSSDK_LIBRARIES) ** WARNING ** visualization features related to dssdk will be disabled -- Could NOT find RSSDK (missing: _RSSDK_LIBRARIES) ** WARNING ** visualization features related to rssdk will be disabled -- looking for PCL_COMMON -- looking for PCL_OCTREE -- looking for PCL_IO -- looking for PCL_KDTREE -- looking for PCL_SEARCH -- looking for PCL_SAMPLE_CONSENSUS -- looking for PCL_FILTERS -- looking for PCL_2D -- looking for PCL_GEOMETRY -- looking for PCL_FEATURES -- looking for PCL_ML -- looking for PCL_SEGMENTATION -- looking for PCL_VISUALIZATION -- looking for PCL_SURFACE -- looking for PCL_REGISTRATION -- looking for PCL_KEYPOINTS -- looking for PCL_TRACKING -- looking for PCL_RECOGNITION -- looking for PCL_STEREO -- looking for PCL_APPS -- looking for PCL_IN_HAND_SCANNER -- looking for PCL_MODELER -- looking for PCL_POINT_CLOUD_EDITOR -- looking for PCL_OUTOFCORE -- looking for PCL_PEOPLE -- Found required Ceres dependency: Eigen version 3.3.4 in /usr/lib/cmake/eigen3 -- Found required Ceres dependency: glog -- Found required Ceres dependency: gflags -- Found Ceres version: 2.1.0 installed in: /usr/local with components: [EigenSparse, SparseLinearAlgebraLibrary, LAPACK, SuiteSparse, CXSparse, SchurSpecializations, Multithreading] -- A library with BLAS API found. -- Found AMD headers in: /usr/include/suitesparse -- Found AMD library: /usr/lib/x86_64-linux-gnu/libamd.so -- Found CAMD headers in: /usr/include/suitesparse -- Found CAMD library: /usr/lib/x86_64-linux-gnu/libcamd.so -- Found COLAMD headers in: /usr/include/suitesparse -- Found COLAMD library: /usr/lib/x86_64-linux-gnu/libcolamd.so -- Found CCOLAMD headers in: /usr/include/suitesparse -- Found CCOLAMD library: /usr/lib/x86_64-linux-gnu/libccolamd.so -- Found CHOLMOD headers in: /usr/include/suitesparse -- Found CHOLMOD library: /usr/lib/x86_64-linux-gnu/libcholmod.so -- Found SUITESPARSEQR headers in: /usr/include/suitesparse -- Found SUITESPARSEQR library: /usr/lib/x86_64-linux-gnu/libspqr.so -- Did not find Intel TBB library, assuming SuiteSparseQR was not compiled with TBB. -- Found SUITESPARSE_CONFIG headers in: /usr/include/suitesparse -- Found SUITESPARSE_CONFIG library: /usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so -- Found LIBRT library: /usr/lib/x86_64-linux-gnu/librt.so -- Adding librt: /usr/lib/x86_64-linux-gnu/librt.so to SuiteSparse_config libraries (required on Linux & Unix [not OSX] if SuiteSparse is compiled with timing). -- Did not find METIS library (optional SuiteSparse dependency) -- Found SuiteSparse: TRUE (found version "5.1.2") CMake Warning at /home/glic/catkin_ws/build/Livox-Mapping/LIO-Livox/cmake/livox_odometry-genmsg.cmake:3 (message): Invoking generate_messages() without having added any message or service file before.

    You should either add add_message_files() and/or add_service_files() calls or remove the invocation of generate_messages(). Call Stack (most recent call first): /opt/ros/melodic/share/genmsg/cmake/genmsg-extras.cmake:307 (include) Livox-Mapping/LIO-Livox/CMakeLists.txt:46 (generate_messages)

    -- livox_odometry: 0 messages, 0 services -- +++ processing catkin package: 'xsens_mti_driver' -- ==> add_subdirectory(xsens_ros_mti_driver) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Configuring done CMake Warning (dev) at Livox-Mapping/SC-PGO/CMakeLists.txt:46 (add_executable): Policy CMP0028 is not set: Double colon in target name means ALIAS or IMPORTED target. Run "cmake --help-policy CMP0028" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

    Target "livox_mapping" links to target "Boost::timer" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing? This warning is for project developers. Use -Wno-dev to suppress it.

    -- Generating done -- Build files have been written to: /home/glic/catkin_ws/build

    Running command: "make -j12 -l12" in "/home/glic/catkin_ws/build"

    Scanning dependencies of target std_msgs_generate_messages_nodejs Scanning dependencies of target _ad_localization_msgs_generate_messages_check_deps_NavStateInfo Scanning dependencies of target std_msgs_generate_messages_cpp Scanning dependencies of target geometry_msgs_generate_messages_cpp Scanning dependencies of target geometry_msgs_generate_messages_py Scanning dependencies of target std_msgs_generate_messages_py Scanning dependencies of target geometry_msgs_generate_messages_nodejs Scanning dependencies of target std_msgs_generate_messages_lisp Scanning dependencies of target geometry_msgs_generate_messages_lisp Scanning dependencies of target std_msgs_generate_messages_eus Scanning dependencies of target geometry_msgs_generate_messages_eus [ 0%] Built target geometry_msgs_generate_messages_cpp [ 0%] Built target std_msgs_generate_messages_cpp [ 0%] Built target geometry_msgs_generate_messages_py [ 0%] Built target std_msgs_generate_messages_lisp [ 0%] Built target std_msgs_generate_messages_py [ 0%] Built target geometry_msgs_generate_messages_eus [ 0%] Built target geometry_msgs_generate_messages_lisp [ 0%] Built target geometry_msgs_generate_messages_nodejs [ 0%] Built target std_msgs_generate_messages_eus [ 0%] Built target std_msgs_generate_messages_nodejs [ 0%] Built target _dnb_msgs_generate_messages_check_deps_RunProgramWithArguments [ 0%] Built target _ad_localization_msgs_generate_messages_check_deps_NavStateInfo [ 0%] Built target _dnb_msgs_generate_messages_check_deps_SetInt32 [ 0%] Built target _dnb_msgs_generate_messages_check_deps_ComponentStatus [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_SetGamma [ 0%] Built target _dnb_msgs_generate_messages_check_deps_Program [ 0%] Built target _dnb_msgs_generate_messages_check_deps_Argument [ 0%] Built target _dnb_msgs_generate_messages_check_deps_SetString [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabAndSaveImageActionResult [ 0%] Built target _dnb_msgs_generate_messages_check_deps_StringMultiArray [ 0%] Built target _dnb_msgs_generate_messages_check_deps_GetProgramsList [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabHDRImageActionGoal [ 0%] Built target sensor_msgs_generate_messages_cpp [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabImagesActionResult [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabAndSaveImageResult [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_SetFloatValue [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabAndSaveImageActionGoal [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_SetIntegerValue [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_SetGain [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GetIntegerValue [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_currentParams [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabHDRImageActionFeedback [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabImagesGoal [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_SetBinning [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabImagesActionGoal [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GetCamProperties [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabHDRImageActionResult [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_SetExposure [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GetFloatValue [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabAndSaveImageActionFeedback [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_SetSleeping [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabImagesActionFeedback [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_SetROI [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_SetStringValue [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabHDRImageResult [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabAndSaveImageFeedback [ 0%] Built target actionlib_msgs_generate_messages_cpp [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_SetWhiteBalance [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabAndSaveImageGoal [ 0%] Built target actionlib_msgs_generate_messages_nodejs [ 0%] Built target sensor_msgs_generate_messages_nodejs [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabHDRImageGoal [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabImagesFeedback [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabHDRImageAction [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabImagesResult [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabHDRImageFeedback [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_SetBrightness [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabAndSaveImageAction [ 0%] Built target actionlib_msgs_generate_messages_lisp [ 0%] Built target _camera_control_msgs_generate_messages_check_deps_GrabImagesAction [ 0%] Built target sensor_msgs_generate_messages_lisp [ 0%] Built target actionlib_msgs_generate_messages_eus Scanning dependencies of target rosgraph_msgs_generate_messages_py Scanning dependencies of target rosgraph_msgs_generate_messages_nodejs [ 0%] Built target actionlib_msgs_generate_messages_py [ 0%] Built target sensor_msgs_generate_messages_eus Scanning dependencies of target rosgraph_msgs_generate_messages_lisp Scanning dependencies of target rosgraph_msgs_generate_messages_eus [ 0%] Built target diagnostic_msgs_generate_messages_py [ 0%] Built target sensor_msgs_generate_messages_py [ 0%] Building CXX object pylon-ros-camera/pylon_camera/CMakeFiles/write_device_user_id_to_camera.dir/src/pylon_camera/write_device_user_id_to_camera.cpp.o Scanning dependencies of target rosgraph_msgs_generate_messages_cpp Scanning dependencies of target roscpp_generate_messages_lisp [ 0%] Building CXX object pylon-ros-camera/pylon_camera/CMakeFiles/IPConfigAuto.dir/src/pylon_camera/IPConfigAuto.cpp.o [ 0%] Built target rosgraph_msgs_generate_messages_py Scanning dependencies of target roscpp_generate_messages_py Scanning dependencies of target roscpp_generate_messages_nodejs [ 0%] Built target rosgraph_msgs_generate_messages_nodejs [ 0%] Built target rosgraph_msgs_generate_messages_lisp Scanning dependencies of target roscpp_generate_messages_eus Scanning dependencies of target roscpp_generate_messages_cpp [ 0%] Built target rosgraph_msgs_generate_messages_cpp [ 0%] Built target rosgraph_msgs_generate_messages_eus [ 0%] Built target roscpp_generate_messages_lisp [ 0%] Built target roscpp_generate_messages_py [ 0%] Built target roscpp_generate_messages_nodejs [ 0%] Built target roscpp_generate_messages_eus [ 0%] Built target roscpp_generate_messages_cpp [ 0%] Built target _catkin_empty_exported_target [ 0%] Built target actionlib_generate_messages_py [ 0%] Built target actionlib_generate_messages_nodejs [ 0%] Built target std_srvs_generate_messages_eus [ 0%] Built target actionlib_generate_messages_lisp [ 0%] Built target actionlib_generate_messages_cpp [ 0%] Built target std_srvs_generate_messages_lisp [ 0%] Built target diagnostic_msgs_generate_messages_eus [ 0%] Built target diagnostic_msgs_generate_messages_cpp [ 0%] Built target actionlib_generate_messages_eus [ 0%] Built target diagnostic_msgs_generate_messages_lisp Scanning dependencies of target _livox_ros_driver_generate_messages_check_deps_CustomPoint Scanning dependencies of target _livox_ros_driver_generate_messages_check_deps_CustomMsg Scanning dependencies of target livox_mapping Scanning dependencies of target livox_odometry_generate_messages_py Scanning dependencies of target livox_odometry_generate_messages_lisp [ 0%] Built target std_srvs_generate_messages_nodejs [ 0%] Built target diagnostic_msgs_generate_messages_nodejs [ 0%] Built target std_srvs_generate_messages_cpp Scanning dependencies of target livox_odometry_generate_messages_eus [ 0%] Built target std_srvs_generate_messages_py [ 0%] Built target livox_odometry_generate_messages_lisp [ 0%] Built target livox_odometry_generate_messages_py Scanning dependencies of target livox_odometry_generate_messages_cpp Scanning dependencies of target livox_odometry_generate_messages_nodejs [ 0%] Generating EusLisp manifest code for livox_odometry Scanning dependencies of target PoseEstimation Scanning dependencies of target ScanRegistration Scanning dependencies of target ad_localization_msgs_generate_messages_nodejs [ 0%] Built target livox_odometry_generate_messages_nodejs [ 0%] Built target _livox_ros_driver_generate_messages_check_deps_CustomPoint [ 0%] Built target livox_odometry_generate_messages_cpp [ 0%] Built target _livox_ros_driver_generate_messages_check_deps_CustomMsg [ 0%] Generating Javascript code from ad_localization_msgs/NavStateInfo.msg [ 1%] Building CXX object xsens_ros_mti_driver/CMakeFiles/xsens_mti_node.dir/src/main.cpp.o Scanning dependencies of target ad_localization_msgs_generate_messages_cpp Scanning dependencies of target ad_localization_msgs_generate_messages_lisp Scanning dependencies of target ad_localization_msgs_generate_messages_py [ 1%] Building CXX object xsens_ros_mti_driver/CMakeFiles/xsens_mti_node.dir/src/xdainterface.cpp.o [ 1%] Generating C++ code from ad_localization_msgs/NavStateInfo.msg [ 1%] Generating Lisp code from ad_localization_msgs/NavStateInfo.msg [ 2%] Generating Python from MSG ad_localization_msgs/NavStateInfo [ 2%] Built target ad_localization_msgs_generate_messages_nodejs [ 2%] Building CXX object xsens_ros_mti_driver/CMakeFiles/xsens_mti_node.dir/src/xdacallback.cpp.o [ 2%] Built target ad_localization_msgs_generate_messages_lisp Scanning dependencies of target ad_localization_msgs_generate_messages_eus [ 2%] Building CXX object Livox-Mapping/SC-PGO/CMakeFiles/livox_mapping.dir/src/laserPosegraphOptimization.cpp.o [ 2%] Generating EusLisp code from ad_localization_msgs/NavStateInfo.msg [ 2%] Building CXX object Livox-Mapping/LIO-Livox/CMakeFiles/ScanRegistration.dir/src/lio/ScanRegistration.cpp.o [ 2%] Building CXX object Livox-Mapping/LIO-Livox/CMakeFiles/PoseEstimation.dir/src/lio/PoseEstimation.cpp.o [ 3%] Generating EusLisp manifest code for ad_localization_msgs [ 3%] Built target ad_localization_msgs_generate_messages_cpp [ 3%] Generating Python msg init.py for ad_localization_msgs [ 4%] Building CXX object Livox-Mapping/LIO-Livox/CMakeFiles/ScanRegistration.dir/src/lio/LidarFeatureExtractor.cpp.o [ 4%] Built target ad_localization_msgs_generate_messages_py [ 7%] Built target dnb_msgs_generate_messages_nodejs [ 7%] Linking CXX executable /home/glic/catkin_ws/devel/lib/pylon_camera/write_device_user_id_to_camera [ 9%] Built target dnb_msgs_generate_messages_lisp [ 9%] Building CXX object Livox-Mapping/LIO-Livox/CMakeFiles/ScanRegistration.dir/src/segment/segment.cpp.o [ 9%] Built target write_device_user_id_to_camera [ 9%] Building CXX object Livox-Mapping/LIO-Livox/CMakeFiles/ScanRegistration.dir/src/segment/pointsCorrect.cpp.o [ 9%] Built target livox_odometry_generate_messages_eus In file included from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/src/lio/ScanRegistration.cpp:1:0: /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/include/LidarFeatureExtractor/LidarFeatureExtractor.h:4:10: fatal error: livox_ros_driver/CustomMsg.h: Aucun fichier ou dossier de ce type #include <livox_ros_driver/CustomMsg.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. [ 10%] Building CXX object Livox-Mapping/LIO-Livox/CMakeFiles/PoseEstimation.dir/src/lio/Estimator.cpp.o Livox-Mapping/LIO-Livox/CMakeFiles/ScanRegistration.dir/build.make:62: recipe for target 'Livox-Mapping/LIO-Livox/CMakeFiles/ScanRegistration.dir/src/lio/ScanRegistration.cpp.o' failed make[2]: *** [Livox-Mapping/LIO-Livox/CMakeFiles/ScanRegistration.dir/src/lio/ScanRegistration.cpp.o] Error 1 make[2]: *** Attente des tâches non terminées.... [ 11%] Building CXX object Livox-Mapping/SC-PGO/CMakeFiles/livox_mapping.dir/include/scancontext/Scancontext.cpp.o In file included from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/src/lio/LidarFeatureExtractor.cpp:1:0: /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/include/LidarFeatureExtractor/LidarFeatureExtractor.h:4:10: fatal error: livox_ros_driver/CustomMsg.h: Aucun fichier ou dossier de ce type #include <livox_ros_driver/CustomMsg.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. Livox-Mapping/LIO-Livox/CMakeFiles/ScanRegistration.dir/build.make:86: recipe for target 'Livox-Mapping/LIO-Livox/CMakeFiles/ScanRegistration.dir/src/lio/LidarFeatureExtractor.cpp.o' failed make[2]: *** [Livox-Mapping/LIO-Livox/CMakeFiles/ScanRegistration.dir/src/lio/LidarFeatureExtractor.cpp.o] Error 1 [ 14%] Built target dnb_msgs_generate_messages_cpp [ 14%] Building CXX object Livox-Mapping/LIO-Livox/CMakeFiles/PoseEstimation.dir/src/lio/IMUIntegrator.cpp.o [ 14%] Built target ad_localization_msgs_generate_messages_eus [ 17%] Built target dnb_msgs_generate_messages_eus [ 20%] Built target dnb_msgs_generate_messages_py [ 33%] Built target camera_control_msgs_generate_messages_cpp [ 45%] Built target camera_control_msgs_generate_messages_nodejs [ 58%] Built target camera_control_msgs_generate_messages_lisp [ 70%] Built target camera_control_msgs_generate_messages_eus [ 84%] Built target camera_control_msgs_generate_messages_py Scanning dependencies of target livox_ros_driver_generate_messages_cpp [ 85%] Generating C++ code from livox_ros_driver/CustomPoint.msg [ 85%] Generating C++ code from livox_ros_driver/CustomMsg.msg [ 85%] Built target livox_ros_driver_generate_messages_cpp Scanning dependencies of target livox_ros_driver_generate_messages_eus [ 85%] Generating EusLisp code from livox_ros_driver/CustomPoint.msg [ 86%] Generating EusLisp code from livox_ros_driver/CustomMsg.msg [ 86%] Generating EusLisp manifest code for livox_ros_driver Scanning dependencies of target livox_ros_driver_generate_messages_nodejs [ 86%] Generating Javascript code from livox_ros_driver/CustomPoint.msg [ 86%] Generating Javascript code from livox_ros_driver/CustomMsg.msg [ 86%] Built target livox_ros_driver_generate_messages_nodejs [ 86%] Building CXX object Livox-Mapping/LIO-Livox/CMakeFiles/PoseEstimation.dir/src/lio/ceresfunc.cpp.o [ 87%] Building CXX object Livox-Mapping/LIO-Livox/CMakeFiles/PoseEstimation.dir/src/lio/Map_Manager.cpp.o [ 87%] Built target livox_ros_driver_generate_messages_eus Scanning dependencies of target livox_ros_driver_generate_messages_lisp [ 87%] Generating Lisp code from livox_ros_driver/CustomPoint.msg [ 88%] Generating Lisp code from livox_ros_driver/CustomMsg.msg [ 88%] Built target livox_ros_driver_generate_messages_lisp Scanning dependencies of target livox_ros_driver_generate_messages_py [ 89%] Generating Python from MSG livox_ros_driver/CustomPoint [ 89%] Generating Python from MSG livox_ros_driver/CustomMsg [ 89%] Generating Python msg init.py for livox_ros_driver [ 89%] Built target livox_ros_driver_generate_messages_py Scanning dependencies of target livox_odometry_generate_messages [ 89%] Built target livox_odometry_generate_messages Scanning dependencies of target ad_localization_msgs_generate_messages [ 89%] Built target ad_localization_msgs_generate_messages [ 89%] Built target dnb_msgs_generate_messages [ 89%] Built target camera_control_msgs_generate_messages [ 89%] Building CXX object pylon-ros-camera/pylon_camera/CMakeFiles/pylon_camera.dir/src/pylon_camera/binary_exposure_search.cpp.o [ 90%] Linking CXX executable /home/glic/catkin_ws/devel/lib/xsens_mti_driver/xsens_mti_node [ 90%] Built target xsens_mti_node Scanning dependencies of target livox_ros_driver_node [ 91%] Building CXX object livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/lvx_file.cpp.o [ 92%] Building CXX object pylon-ros-camera/pylon_camera/CMakeFiles/pylon_camera.dir/src/pylon_camera/encoding_conversions.cpp.o [ 92%] Building CXX object livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/ldq.cpp.o [ 92%] Building CXX object livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/lds.cpp.o [ 92%] Building CXX object pylon-ros-camera/pylon_camera/CMakeFiles/pylon_camera.dir/src/pylon_camera/pylon_camera.cpp.o [ 93%] Building CXX object livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/lds_lvx.cpp.o [ 93%] Building CXX object livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/lds_lidar.cpp.o [ 93%] Building CXX object livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/lds_hub.cpp.o /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/src/lio/PoseEstimation.cpp: In function ‘bool TryMAPInitialization()’: /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/src/lio/PoseEstimation.cpp:250:33: warning: ‘LocalParameterization’ is deprecated: LocalParameterizations will be removed from the Ceres Solver API in version 2.2.0. Use Manifolds instead. [-Wdeprecated-declarations] ceres::LocalParameterization quatParam = new ceres::QuaternionParameterization(); ^~~~~~~~~ In file included from /usr/local/include/ceres/autodiff_local_parameterization.h:39:0, from /usr/local/include/ceres/ceres.h:39, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/include/utils/ceresfunc.h:3, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/include/Estimator/Estimator.h:20, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/src/lio/PoseEstimation.cpp:1: /usr/local/include/ceres/local_parameterization.h:121:18: note: declared here CERES_EXPORT LocalParameterization { ^~~~~~~~~~~~~~~~~~~~~ /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/src/lio/PoseEstimation.cpp:250:56: warning: ‘QuaternionParameterization’ is deprecated: Use QuaternionManifold instead. [-Wdeprecated-declarations] ceres::LocalParameterization quatParam = new ceres::QuaternionParameterization(); ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/local/include/ceres/autodiff_local_parameterization.h:39:0, from /usr/local/include/ceres/ceres.h:39, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/include/utils/ceresfunc.h:3, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/include/Estimator/Estimator.h:20, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/src/lio/PoseEstimation.cpp:1: /usr/local/include/ceres/local_parameterization.h:211:18: note: declared here CERES_EXPORT QuaternionParameterization : public LocalParameterization { ^~~~~~~~~~~~~~~~~~~~~~~~~~ /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/src/lio/PoseEstimation.cpp:253:57: warning: ‘void ceres::Problem::AddParameterBlock(double, int, ceres::LocalParameterization)’ is deprecated: LocalParameterizations are deprecated. Use the version with Manifolds instead. [-Wdeprecated-declarations] problem_quat.AddParameterBlock(para_quat, 4, quatParam); ^ In file included from /usr/local/include/ceres/ceres.h:65:0, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/include/utils/ceresfunc.h:3, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/include/Estimator/Estimator.h:20, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/src/lio/PoseEstimation.cpp:1: /usr/local/include/ceres/problem.h:302:8: note: declared here void AddParameterBlock(double* values, ^~~~~~~~~~~~~~~~~ [ 94%] Building CXX object livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/lddc.cpp.o [ 94%] Building CXX object livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/livox_ros_driver/livox_ros_driver.cpp.o [ 94%] Building CXX object livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/timesync/timesync.cpp.o [ 95%] Building CXX object livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/timesync/user_uart/user_uart.cpp.o [ 95%] Building CXX object livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/common/comm/comm_protocol.cpp.o [ 95%] Building CXX object livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/common/comm/sdk_protocol.cpp.o [ 96%] Building CXX object livox_ros_driver/CMakeFiles/livox_ros_driver_node.dir/common/comm/gps_protocol.cpp.o /home/glic/catkin_ws/src/Livox-Mapping/SC-PGO/include/scancontext/Scancontext.cpp: In function ‘float xy2theta(const float&, const float&)’: /home/glic/catkin_ws/src/Livox-Mapping/SC-PGO/include/scancontext/Scancontext.cpp:36:1: warning: control reaches end of non-void function [-Wreturn-type] } // xy2theta ^ [ 96%] Building CXX object pylon-ros-camera/pylon_camera/CMakeFiles/pylon_camera.dir/src/pylon_camera/pylon_camera_node.cpp.o [ 97%] Building CXX object pylon-ros-camera/pylon_camera/CMakeFiles/pylon_camera.dir/src/pylon_camera/pylon_camera_parameter.cpp.o CMakeFiles/Makefile2:7839: recipe for target 'Livox-Mapping/LIO-Livox/CMakeFiles/ScanRegistration.dir/all' failed make[1]: *** [Livox-Mapping/LIO-Livox/CMakeFiles/ScanRegistration.dir/all] Error 2 make[1]: *** Attente des tâches non terminées.... In file included from /home/glic/catkin_ws/src/livox_ros_driver/livox_ros_driver/lddc.h:32:0, from /home/glic/catkin_ws/src/livox_ros_driver/livox_ros_driver/lddc.cpp:25: /opt/ros/melodic/include/pcl_ros/point_cloud.h:303:27: warning: variable templates only available with -std=c++14 or -std=gnu++14 constexpr static bool pcl_uses_boost = true; ^~~~~~~~~~~~~~ In file included from /home/glic/catkin_ws/src/livox_ros_driver/livox_ros_driver/lddc.h:32:0, from /home/glic/catkin_ws/src/livox_ros_driver/livox_ros_driver/livox_ros_driver.cpp:32: /opt/ros/melodic/include/pcl_ros/point_cloud.h:303:27: warning: variable templates only available with -std=c++14 or -std=gnu++14 constexpr static bool pcl_uses_boost = true; ^~~~~~~~~~~~~~ [ 97%] Linking CXX executable /home/glic/catkin_ws/devel/lib/livox_ros_driver/livox_ros_driver_node [ 97%] Built target livox_ros_driver_node In file included from /usr/include/pcl-1.8/pcl/sample_consensus/sac_model.h:52:0, from /usr/include/pcl-1.8/pcl/sample_consensus/sac.h:45, from /usr/include/pcl-1.8/pcl/sample_consensus/ransac.h:44, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/include/utils/pcl_utils.hpp:4, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/include/Estimator/Estimator.h:21, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/src/lio/Estimator.cpp:1: /usr/include/pcl-1.8/pcl/sample_consensus/model_types.h: In function ‘void __static_initialization_and_destruction_0(int, int)’: /usr/include/pcl-1.8/pcl/sample_consensus/model_types.h:99:3: warning: ‘pcl::SAC_SAMPLE_SIZE’ is deprecated: This map is deprecated and is kept only to prevent breaking existing user code. Starting from PCL 1.8.0 model sample size is a protected member of the SampleConsensusModel class [-Wdeprecated-declarations] SAC_SAMPLE_SIZE (sample_size_pairs, sample_size_pairs + sizeof (sample_size_pairs) / sizeof (SampleSizeModel)); ^~~~~~~~~~~~~~~ /usr/include/pcl-1.8/pcl/sample_consensus/model_types.h:99:3: note: declared here In file included from /usr/include/pcl-1.8/pcl/sample_consensus/sac_model.h:52:0, from /usr/include/pcl-1.8/pcl/sample_consensus/sac.h:45, from /usr/include/pcl-1.8/pcl/sample_consensus/ransac.h:44, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/include/utils/pcl_utils.hpp:4, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/include/Estimator/Estimator.h:21, from /home/glic/catkin_ws/src/Livox-Mapping/LIO-Livox/src/lio/PoseEstimation.cpp:1: /usr/include/pcl-1.8/pcl/sample_consensus/model_types.h: In function ‘void __static_initialization_and_destruction_0(int, int)’: /usr/include/pcl-1.8/pcl/sample_consensus/model_types.h:99:3: warning: ‘pcl::SAC_SAMPLE_SIZE’ is deprecated: This map is deprecated and is kept only to prevent breaking existing user code. Starting from PCL 1.8.0 model sample size is a protected member of the SampleConsensusModel class [-Wdeprecated-declarations] SAC_SAMPLE_SIZE (sample_size_pairs, sample_size_pairs + sizeof (sample_size_pairs) / sizeof (SampleSizeModel)); ^~~~~~~~~~~~~~~ /usr/include/pcl-1.8/pcl/sample_consensus/model_types.h:99:3: note: declared here [ 97%] Linking CXX shared library /home/glic/catkin_ws/devel/lib/libpylon_camera.so [ 97%] Built target pylon_camera In file included from /usr/include/pcl-1.8/pcl/sample_consensus/sac_model.h:52:0, from /usr/include/pcl-1.8/pcl/sample_consensus/sac.h:45, from /usr/include/pcl-1.8/pcl/sample_consensus/ransac.h:44, from /usr/include/pcl-1.8/pcl/registration/icp.h:45, from /home/glic/catkin_ws/src/Livox-Mapping/SC-PGO/src/laserPosegraphOptimization.cpp:19: /usr/include/pcl-1.8/pcl/sample_consensus/model_types.h: In function ‘void __static_initialization_and_destruction_0(int, int)’: /usr/include/pcl-1.8/pcl/sample_consensus/model_types.h:99:3: warning: ‘pcl::SAC_SAMPLE_SIZE’ is deprecated: This map is deprecated and is kept only to prevent breaking existing user code. Starting from PCL 1.8.0 model sample size is a protected member of the SampleConsensusModel class [-Wdeprecated-declarations] SAC_SAMPLE_SIZE (sample_size_pairs, sample_size_pairs + sizeof (sample_size_pairs) / sizeof (SampleSizeModel)); ^~~~~~~~~~~~~~~ /usr/include/pcl-1.8/pcl/sample_consensus/model_types.h:99:3: note: declared here [ 97%] Linking CXX executable /home/glic/catkin_ws/devel/lib/pylon_camera/IPConfigAuto [ 97%] Built target IPConfigAuto [ 97%] Linking CXX executable /home/glic/catkin_ws/devel/lib/livox_mapping/livox_mapping /usr/bin/ld : ne peut trouver -lBoost::timer collect2: error: ld returned 1 exit status Livox-Mapping/SC-PGO/CMakeFiles/livox_mapping.dir/build.make:479: recipe for target '/home/glic/catkin_ws/devel/lib/livox_mapping/livox_mapping' failed make[2]: *** [/home/glic/catkin_ws/devel/lib/livox_mapping/livox_mapping] Error 1 CMakeFiles/Makefile2:7372: recipe for target 'Livox-Mapping/SC-PGO/CMakeFiles/livox_mapping.dir/all' failed make[1]: *** [Livox-Mapping/SC-PGO/CMakeFiles/livox_mapping.dir/all] Error 2 [ 97%] Linking CXX executable /home/glic/catkin_ws/devel/lib/livox_odometry/PoseEstimation [ 97%] Built target PoseEstimation Makefile:140: recipe for target 'all' failed make: *** [all] Error 2 Invoking "make -j12 -l12" failed

    opened by geoarch2021 18
  • GPS topic

    GPS topic

    Hello,

    Livox_Mapping topics are

    Livox LiDAR: /livox/lidar
    IMU: /livox/imu
    GPS: /localization/navstate_info
    

    my topics are

    Livox LiDAR: /livox/lidar
    IMU: /imu/data (Type: sensor_msgs/Imu)
    GPS: /gnss (Type: sensor_msg/NavSatFix)
    

    i rename imu topic from /imu/data to /livox/imu using rosrun rosbag topic_renamer.py

    but i cant do the same for GPS cause it has different msg type. Is there any way to run the package with my topics ? Thank you.

    opened by ManChrys 15
  • Something wrong with spin lidar(ouster64)

    Something wrong with spin lidar(ouster64)

    Hi, thanks for your interest!
    
    To support other types of lidar, some modification works are needed:
    1. You need one external IMU to publish the information. Also, extrinsic information is also needed.
    2. If the point cloud pattern is different from Livox, the feature extraction block needs to de updated accordingly.
    3.  The backend for LIOs with different types of lidar is similar.
    
    
    
    Bests,
    
    _Originally posted by @SiyuanHuang95 in https://github.com/PJLab-ADG/Livox-Mapping/issues/2#issuecomment-1047702546_
    

    Hi, everybody

    As mentioned above, I modify the "ScanRegistration.cpp and LidarFeatureExtractor.cpp" for my spin lidar--ouster,and the code is implemented based on lio_sam. Now, the feature extract module is normal. And the result is good with the IMU_Mode is 0 and 1. But there's something wrong when IMU_Mode is 2(Tightly Coupled IMU). 2022-03-10 17-33-21屏幕截图

    As the picture above, when process "Frame:4654", the trajectory starts to shift. The points and imu data record by ouster laser(OS1-64), so the transformation matrix of the laser and imu is the unit matrix. Other parameters are default. The printing parameters are as follows:

    微信截图_20220310174838 微信截图_20220310174913

    What causes this? Do you have a similar situation? Thanks again.

    opened by chengwei0427 9
  • livox_mapping node error

    livox_mapping node error

    Hello, Thanks for great work! Command: $ roslaunch livox_mapping livox_mapping.launch save_path:="/home/seven/Leraning/Livox-Mapping_note_ws/src/result" $ roslaunch livox_odometry livox_odometry.launch save_path:="/home/seven/Leraning/Livox-Mapping_note_ws/src/result/pose.txt" $ rosbag play my.bag

    Problem: livox_odometry works normally and livox_mapping has the following error. What are the possible reasons? Screenshot from 2022-02-27 13-52-21

    opened by JinMing-Gu 8
  • Can not build follow your steps

    Can not build follow your steps

    1. Can not pass the step 3-Build .

    When I execute the sentence :git clone https://github.com/PJLab-ADG/LIO_Livox_SLAM.git, system responds me :remote: Repository not found. Is the website still be right?

    1. Besides, step 2.3-Docker :docker run --gpus all -it -p 3316:22 --device=/dev/dri --group-add video --volume=/tmp/.X11-unix:/tmp/.X11-unix --env="DISPLAY=$DISPLAY" siyuanhuang95/livox_slam:release /bin/bash, I can not run, either , what does it mean? Is it necessary to execute? system responds me:docker: Error response from daemon: error gathering device information while adding custom device "/dev/dri": no such file or directory.
    opened by wdwz2000 7
  • Parameters between Lidar and Imu/GNSS

    Parameters between Lidar and Imu/GNSS

    Hello,

    i have a livox mid 40 and an INS/GNSS system (xsens mti g 710) . I would like to ask you whats these parameters mean

    <rosparam param="Extrinsic_T_livox2gnss"> [0.997573, -0.024254, 0.065274, 0.322019,
                                               0.023477, 0.999644, 0.012663, 0.043158,
                                               -0.066402, -0.011080, 0.997733, 0.456606,
                                               0.0, 0.0, 0.0, 1.0]</rosparam>
    

    I understand that some of them are the distances between lidar and imu but could you explain every number on this table what represents?

    Thanks in advance.

    opened by ManChrys 7
  • maybe something wrong

    maybe something wrong

    Hi, @SiyuanHuang95

    I change the param SLIDEWINDOWSIZE from 2 to 3 in Estimator.h, and test the bag casual_walk.bag which lio_sam privode.

    After lidar-imu inited, the trajectory drift .Used topics: /points_raw and /imu_raw. The extrinsics lidar -> IMU: extrinsicTrans: [0.0, 0.0, 0.0] extrinsicRot: [-1, 0, 0, 0, 1, 0, 0, 0, -1]

    2022-03-24 11-31-40屏幕截图

    If set the SLIDEWINDOWSIZE=2, the program is normal.

    2022-03-24 11-34-17屏幕截图

    The bag contains two imu topics(/imu_raw and /imu_correct).

    If used /imu_corrcect as the imu input, The extrinsics lidar -> IMU: extrinsicTrans: [0.0, 0.0, 0.0] extrinsicRot: [1, 0, 0, 0, 1, 0, 0, 0, 1]

    Whether the SLIDEWINDOWSIZE is 2 or 3, the program is normal.

    It's strange, and maybe something wrong with the extrinsics params in the code.

    Do you have a similar problem? Or any Suggestions?

    opened by chengwei0427 6
  • use for livox mid70

    use for livox mid70

    Hi I am using livox mid70 and a extern IMU. the problem is that lidarFeatureExtractor node always output logs: too few ground points. and the other nodes seem run nothing. I have change the horizon_config.yaml to mid70.yaml like this:

    `%YAML:1.0

    switches

    Lidar_Type: 0 # 0-horizon Used_Line: 1 # lines used for lio, set to 1~6 Feature_Mode: 0 # 0(false) or 1(true) NumCurvSize: 2 DistanceFaraway: 100 # [m] <DistanceFaraway near / >DistanceFaraway far NumFlat: 3 # nums of one part's flat feature PartNum: 150 # nums of one scan's parts FlatThreshold: 0.02 # cloud curvature threshold of flat feature BreakCornerDis: 1 # break distance of break points LidarNearestDis: 0.50 # if(depth < LidarNearestDis) do not use this point KdTreeCornerOutlierDis: 0.2 # corner filter threshold Use_seg: 1 # use segment algorithm map_skip_frame: 2`

    how can I modify the params to make the project can work with mid 70?

    opened by gongyue666 5
  • 缺失头文件NavStateInfo.h

    缺失头文件NavStateInfo.h

    fatal error: ad_localization_msgs/NavStateInfo.h: 没有那个文件或目录 #include <ad_localization_msgs/NavStateInfo.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 请问这个头文件是不是您不小心误删啦,麻烦重新上传一下呗,谢谢啦

    opened by wdwz2000 4
  • IMU_LiDAR params

    IMU_LiDAR params

    Hello again my friend , I understand what do you mean in #16 but as I'm new, how can I find these parameters ? I tried LiDAR-imu-init repository but the results are not good. I got something like that

    Initialization result: Rotation LiDAR to IMU (degree) = 80.540787 -36.750309 78.788532 Translation LiDAR to IMU (meter) = -0.141204 0.223906 0.390454 Time Lag IMU to LiDAR (second) = -18.262039 Bias of Gyroscope (rad/s) = 0.051176 -0.071062 -0.004010 Bias of Accelerometer (meters/s^2) = -0.005226 0.015899 -0.003477 Gravity in World Frame(meters/s^2) = -7.115069 -6.738784 -0.447985

    Homogeneous Transformation Matrix from LiDAR to IMU: 0.155873 -0.276107 0.948403 -0.141204 0.785972 -0.546882 -0.288390 0.223906 0.598291 0.790370 0.131768 0.390454 0.000000 0.000000 0.000000 1.000000

    Refinement result: Rotation LiDAR to IMU (degree) = 82.048534 -36.625378 77.469056 Translation LiDAR to IMU (meter) = -0.274615 0.277822 0.348879 Time Lag IMU to LiDAR (second) = -18.262039 Bias of Gyroscope (rad/s) = 0.257372 -0.246300 -0.139832 Bias of Accelerometer (meters/s^2) = -0.005012 0.015841 -0.003373 Gravity in World Frame(meters/s^2) = -7.115129 -6.738791 -0.448222

    Homogeneous Transformation Matrix from LiDAR to IMU: 0.174212 -0.263379 0.948832 -0.274615 0.783446 -0.546662 -0.295589 0.277822 0.596543 0.794853 0.111108 0.348879 0.000000 0.000000 0.000000 1.000000

    How can I calib my imu(mti g 710 )with LiDAR (livox mid 40)?? There is any repo ?

    EDIT

    The values are too big because i did fast calib with lil-init just to show you the type of extracting data.

    Thanks in advance .

    opened by ManChrys 4
  • RTK factor

    RTK factor

    ``

                mtxPosegraph.lock();
                {
                    // odom factor
                    gtSAMgraph.add(gtsam::BetweenFactor<gtsam::Pose3>(prev_node_idx, curr_node_idx, poseFrom.between(poseTo), odomNoise));
    
                    // // rtk factor 
                    // if(hasRTKforThisKF) {
                    //     gtsam::Pose3 poseRTK = Pose6DtoGTSAMPose3(currRTK);
                    //     gtSAMgraph.add(gtsam::PriorFactor<gtsam::Pose3>(curr_node_idx, poseRTK, RTKNoise));
                    //     cout << "RTK factor added at node " << curr_node_idx << endl;
                    // }
                    initialEstimate.insert(curr_node_idx, poseTo);                
                    // runISAM2opt();
                }
                mtxPosegraph.unlock();
    

    ``

    我看到你在上面代码中将因子图优化的rtk部分给注释掉了,请问是什么原因呢? 如果我想直接用使用GNSS数据进行因子图优化,可以直接把这些注释给去掉吗?还是需要修改其他的代码?

    opened by WadeFrank 3
Owner
null
LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometry via Smoothing and Mapping

LVI-SAM This repository contains code for a lidar-visual-inertial odometry and mapping system, which combines the advantages of LIO-SAM and Vins-Mono

Tixiao Shan 1.1k Nov 25, 2022
A ros package for robust odometry and mapping using LiDAR with aid of different sensors

W-LOAM A ros package for robust odometry and mapping using LiDAR with aid of different sensors Demo Video https://www.bilibili.com/video/BV1Fy4y1L7kZ?

Saki-Chen 51 Nov 2, 2022
RRxIO - Robust Radar Visual/Thermal Inertial Odometry: Robust and accurate state estimation even in challenging visual conditions.

RRxIO - Robust Radar Visual/Thermal Inertial Odometry RRxIO offers robust and accurate state estimation even in challenging visual conditions. RRxIO c

Christopher Doer 62 Nov 30, 2022
VID-Fusion: Robust Visual-Inertial-Dynamics Odometry for Accurate External Force Estimation

VID-Fusion VID-Fusion: Robust Visual-Inertial-Dynamics Odometry for Accurate External Force Estimation Authors: Ziming Ding , Tiankai Yang, Kunyi Zhan

ZJU FAST Lab 86 Nov 18, 2022
Continuous-Time Spline Visual-Inertial Odometry

Continuous-Time Spline Visual-Inertial Odometry Related Publications Direct Sparse Odometry, J. Engel, V. Koltun, D. Cremers, In IEEE Transactions on

Minnesota Interactive Robotics and Vision Laboratory 68 Nov 18, 2022
Visual-inertial-wheel fusion odometry, better performance in scenes with drastic changes in light

VIW-Fusion An visual-inertial-wheel fusion odometry VIW-Fusion is an optimization-based viusla-inertial-wheel fusion odometry, which is developed as a

庄庭达 248 Nov 29, 2022
A Multi-sensor Fusion Odometry via Smoothing and Mapping.

LVIO-SAM A multi-sensor fusion odometry, LVIO-SAM, which fuses LiDAR, stereo camera and inertial measurement unit (IMU) via smoothing and mapping. The

Xinliang Zhong 151 Nov 20, 2022
This repository uses a ROS node to subscribe to camera (hikvision) and lidar (livox) data. After the node merges the data, it publishes the colored point cloud and displays it in rviz.

fusion-lidar-camera-ROS 一、介绍 本仓库是一个ROS工作空间,其中ws_fusion_camera/src有一个工具包color_pc ws_fusion_camera │ README.md │ └───src │ └───package: c

hongyu wang 22 Dec 2, 2022
calibrate a Livox LiDAR and a camera

Livox LiDAR-Camera Calibration This method is from the official method of Livox(https://github.com/Livox-SDK/livox_camera_lidar_calibration) It's just

null 10 Nov 24, 2022
This is a simulation of Livox lidar

Livox Laser Simulation A package to provide plug-in for Livox Series LiDAR.

lvfengchi 63 Nov 26, 2022
A package to provide plug-in for Livox Series LiDAR.

Livox Laser Simulation A package to provide plug-in for Livox Series LiDAR. Requirements ROS(=Melodic) Gazebo (= 9.x, http://gazebosim.org/) Ubuntu(=1

livox 81 Nov 25, 2022
Continuous Time LiDAR odometry

CT-ICP: Elastic SLAM for LiDAR sensors This repository implements the SLAM CT-ICP (see our article), a lightweight, precise and versatile pure LiDAR o

null 365 Dec 2, 2022
Direct LiDAR Odometry: Fast Localization with Dense Point Clouds

Direct LiDAR Odometry: Fast Localization with Dense Point Clouds DLO is a lightweight and computationally-efficient frontend LiDAR odometry solution w

VECTR at UCLA 359 Nov 30, 2022
A real-time, direct and tightly-coupled LiDAR-Inertial SLAM for high velocities with spinning LiDARs

LIMO-Velo [Alpha] ?? [16 February 2022] ?? The project is on alpha stage, so be sure to open Issues and Discussions and give all the feedback you can!

Andreu Huguet 139 Nov 25, 2022
Cool and different approach to Strimer Plus. Colorful scrolling text message. It's ready for you!

Strimer Plus DIY Version: 2021.10.27 Author: Murat TAMCI Web Site: www.themt.co Note: In loving memory of my grandfather (Ahmet Ozdil) Welcome to Stri

Murat TAMCI 2 Jan 10, 2022
Creates 3D lithophanes from image files, exports them to stl files, ready for slicing and 3D printing.

LithoMaker Creates 3D lithophanes from PNG image files and exports them to STL files, ready for slicing and 3D printing. Download the latest release h

Lars Muldjord 20 Nov 27, 2022
Tightly coupled GNSS-Visual-Inertial system for locally smooth and globally consistent state estimation in complex environment.

GVINS GVINS: Tightly Coupled GNSS-Visual-Inertial Fusion for Smooth and Consistent State Estimation. paper link Authors: Shaozu CAO, Xiuyuan LU and Sh

HKUST Aerial Robotics Group 572 Nov 27, 2022
It creates a random word by mixing two English common words into a single one, each one with the first character in capital letter. It also allow you to scroll down infinitely without repeating the same word twice.

startup_namer A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if

Samuel Cobas 2 Feb 3, 2022