ros2 foxy + fast_lio +mid360s学习过程笔记

📅 2026/8/21 10:14:52
ros2 foxy + fast_lio +mid360s学习过程笔记
ROS2 Fast_LIOMID360sROS2 MID360 FAST-LIO2 保姆级避坑与实战指南真的很保姆ROS2 Humble FAST-LIO 2.0 livox_ros_driver2 mid360 建图从 LIO 到 Nav2我把 FAST-LIO改造成了机器人能用的底盘里程计Livox-Mid-360复现Fast-Lio悲伤的小木盒使用ros2跑mid360的fastlio2建图ros2实现路径规划—nav2部分ros2-humble复现沈航23年哨兵导航mid360跑自动规划详细部署教程fastlio2局部规划器使用ros2跑mid360的fastlio2算法详细教程Fast_Lio_ROS2 Mid-360 ROS2-Foxy 机器人真机部署编译octomap_mappingmkdirom_wscdom_wsmkdirsrccdsrcgitclone https://gitee.com/zhankun3280/octomap_mapping.git# 从源码编译 octomap_server依赖 octomapsudoaptinstallliboctomap-dev octomap-tools colcon build --symlink-install报错1zhankunubuntu:~/zhankun/om_ws$ colcon build --symlink-install Startingoctomap_server --- stderr: octomap_server ** WARNING ** io features related to openni will be disabled ** WARNING ** io features related to openni2 will be disabled ** WARNING ** io features related to pcap will be disabled ** WARNING ** io features related to png will be disabled ** WARNING ** io features related to libusb-1.0 will be disabled ** WARNING ** visualization features related to openni will be disabled ** WARNING ** visualization features related to openni2 will be disabled ** WARNING ** apps features related to openni will be disabled Infileincluded from /home/zhankun/zhankun/om_ws/src/octomap_mapping/octomap_server/src/octomap_server_static.cpp:29:0: /home/zhankun/zhankun/om_ws/src/octomap_mapping/octomap_server/include/octomap_server/octomap_server_static.hpp:38:10: fatal error: octomap_msgs/srv/get_octomap.hpp: No suchfileor directory#include octomap_msgs/srv/get_octomap.hpp^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: ***[CMakeFiles/octomap_server_static.dir/build.make:63: CMakeFiles/octomap_server_static.dir/src/octomap_server_static.cpp.o]Error1make[1]: ***[CMakeFiles/Makefile2:235: CMakeFiles/octomap_server_static.dir/all]Error2make[1]: *** Waitingforunfinished jobs....make: ***[Makefile:141: all]Error2--- Failedoctomap_server[11.2s, exited with code2]Summary:0packages finished[11.7s]1package failed: octomap_server1package had stderr output: octomap_server1package not processed解决办法sudoaptinstallros-foxy-octomap-msgs ros-foxy-octomap报错2Infileincluded from /home/zhankun/zhankun/om_ws/src/octomap_mapping/octomap_server/src/octomap_server.cpp:29:0: /home/zhankun/zhankun/om_ws/src/octomap_mapping/octomap_server/include/octomap_server/octomap_server.hpp:54:10: fatal error: pcl_ros/transforms.hpp: No suchfileor directory#include pcl_ros/transforms.hpp^~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: ***[CMakeFiles/octomap_server.dir/build.make:63: CMakeFiles/octomap_server.dir/src/octomap_server.cpp.o]Error1make[1]: ***[CMakeFiles/Makefile2:320: CMakeFiles/octomap_server.dir/all]Error2make: ***[Makefile:141: all]Error2--- Failedoctomap_server[15.6s, exited with code2]解决办法sudoaptinstallros-foxy-pcl-ros ros-foxy-pcl-conversions报错3--- stderr: octomap_server Infileincluded from /home/zhankun/zhankun/om_ws/src/octomap_mapping/octomap_server/src/octomap_server.cpp:29:0: /home/zhankun/zhankun/om_ws/src/octomap_mapping/octomap_server/include/octomap_server/octomap_server.hpp:56:10: fatal error: tf2_ros/buffer.hpp: No suchfileor directory#include tf2_ros/buffer.hpp^~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: ***[CMakeFiles/octomap_server.dir/build.make:63: CMakeFiles/octomap_server.dir/src/octomap_server.cpp.o]Error1make[1]: ***[CMakeFiles/Makefile2:320: CMakeFiles/octomap_server.dir/all]Error2make: ***[Makefile:141: all]Error2--- Failedoctomap_server[2.02s, exited with code2]解决办法Foxy 版本的 tf2_ros 头文件是 buffer.h后缀 .h而不是 buffer.hpp.hppbuffer.hpp 是 Humble 的头文件名Foxy 没有这个文件Foxy 叫 buffer.h。不止这一处后面源码里凡是 xxx.hpp 的 tf2_ros 头全部改成 .h# octomap_server.hpp#include tf2_ros/buffer.h#include tf2_ros/create_timer_ros.h#include tf2_ros/message_filter.h#include tf2_ros/transform_listener.h#include message_filters/subscriber.h# octomap_server.cpp#include tf2_eigen/tf2_eigen.h#include tf2_geometry_msgs/tf2_geometry_msgs.h# octomap_server_multilayer.cpp#include tf2_geometry_msgs/tf2_geometry_msgs.h报错4zhankunubuntu:~/zhankun/om_ws$ colcon build Startingoctomap_server --- stderr: octomap_server ** WARNING ** io features related to openni will be disabled ** WARNING ** io features related to openni2 will be disabled ** WARNING ** io features related to pcap will be disabled ** WARNING ** io features related to png will be disabled ** WARNING ** io features related to libusb-1.0 will be disabled ** WARNING ** visualization features related to openni will be disabled ** WARNING ** visualization features related to openni2 will be disabled ** WARNING ** apps features related to openni will be disabled CMake Error at CMakeLists.txt:16(find_package): By not providingFindament_cmake_auto.cmakeinCMAKE_MODULE_PATH this project has asked CMake tofinda package configurationfileprovided byament_cmake_auto, but CMake did notfindone. Could notfinda package configurationfileprovided byament_cmake_autowith any of the following names: ament_cmake_autoConfig.cmake ament_cmake_auto-config.cmake Add the installation prefix ofament_cmake_autoto CMAKE_PREFIX_PATH orsetament_cmake_auto_DIRto a directory containing one of the above files. Ifament_cmake_autoprovides a separate development package or SDK, be sure it has been installed. --- Failedoctomap_server[2.12s, exited with code1]Summary:0packages finished[2.52s]1package failed: octomap_server1package had stderr output: octomap_server1package not processed解决办法报错缺少 ament_cmake_auto 包。sudoaptupdatesudoaptinstallros-foxy-ament-cmake-auto下面是完整可直接替换的 CMakeLists.txt适配 ROS2 Foxycmake_minimum_required(VERSION 3.5) project(octomap_server) if(NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) endif() if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES Clang) add_compile_options(-Wall -Wextra -Wpedantic) endif() find_package(PCL REQUIRED) find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) find_package(rclcpp_components REQUIRED) find_package(geometry_msgs REQUIRED) find_package(sensor_msgs REQUIRED) find_package(nav_msgs REQUIRED) find_package(std_msgs REQUIRED) find_package(std_srvs REQUIRED) find_package(visualization_msgs REQUIRED) find_package(message_filters REQUIRED) find_package(pcl_ros REQUIRED) find_package(pcl_conversions REQUIRED) find_package(octomap_msgs REQUIRED) find_package(octomap_ros REQUIRED) find_package(tf2 REQUIRED) find_package(tf2_ros REQUIRED) find_package(tf2_eigen REQUIRED) find_package(tf2_geometry_msgs REQUIRED) find_package(octomap REQUIRED) include_directories( include ${PCL_INCLUDE_DIRS} ${octomap_INCLUDE_DIRS} ) # ---------------- octomap_server_static ---------------- add_library(octomap_server_static SHARED src/octomap_server_static.cpp ) ament_target_dependencies(octomap_server_static rclcpp rclcpp_components geometry_msgs sensor_msgs nav_msgs std_msgs std_srvs visualization_msgs message_filters pcl_ros pcl_conversions octomap_msgs octomap_ros tf2 tf2_ros tf2_eigen tf2_geometry_msgs ) target_link_libraries(octomap_server_static ${octomap_LIBRARIES} ${PCL_LIBRARIES} ) rclcpp_components_register_node(octomap_server_static PLUGIN octomap_server::OctomapServerStatic EXECUTABLE octomap_server_static_node ) # ---------------- octomap_server ---------------- add_library(octomap_server SHARED src/octomap_server.cpp ) ament_target_dependencies(octomap_server rclcpp rclcpp_components geometry_msgs sensor_msgs nav_msgs std_msgs std_srvs visualization_msgs message_filters pcl_ros pcl_conversions octomap_msgs octomap_ros tf2 tf2_ros tf2_eigen tf2_geometry_msgs ) target_link_libraries(octomap_server ${octomap_LIBRARIES} ${PCL_LIBRARIES} ) rclcpp_components_register_node(octomap_server PLUGIN octomap_server::OctomapServer EXECUTABLE octomap_server_node ) # ---------------- octomap_server_multilayer ---------------- add_library(octomap_server_multilayer SHARED src/octomap_server.cpp src/octomap_server_multilayer.cpp ) ament_target_dependencies(octomap_server_multilayer rclcpp rclcpp_components geometry_msgs sensor_msgs nav_msgs std_msgs std_srvs visualization_msgs message_filters pcl_ros pcl_conversions octomap_msgs octomap_ros tf2 tf2_ros tf2_eigen tf2_geometry_msgs ) target_link_libraries(octomap_server_multilayer ${octomap_LIBRARIES} ${PCL_LIBRARIES} ) rclcpp_components_register_node(octomap_server_multilayer PLUGIN octomap_server::OctomapServerMultilayer EXECUTABLE octomap_server_multilayer_node ) # ---------------- tracking_octomap_server ---------------- add_library(tracking_octomap_server SHARED src/octomap_server.cpp src/tracking_octomap_server.cpp ) ament_target_dependencies(tracking_octomap_server rclcpp rclcpp_components geometry_msgs sensor_msgs nav_msgs std_msgs std_srvs visualization_msgs message_filters pcl_ros pcl_conversions octomap_msgs octomap_ros tf2 tf2_ros tf2_eigen tf2_geometry_msgs ) target_link_libraries(tracking_octomap_server ${octomap_LIBRARIES} ${PCL_LIBRARIES} ) rclcpp_components_register_node(tracking_octomap_server PLUGIN octomap_server::TrackingOctomapServer EXECUTABLE tracking_octomap_server_node ) # ---------------- color_octomap_server ---------------- add_library(color_octomap_server SHARED src/octomap_server.cpp ) ament_target_dependencies(color_octomap_server rclcpp rclcpp_components geometry_msgs sensor_msgs nav_msgs std_msgs std_srvs visualization_msgs message_filters pcl_ros pcl_conversions octomap_msgs octomap_ros tf2 tf2_ros tf2_eigen tf2_geometry_msgs ) target_link_libraries(color_octomap_server ${octomap_LIBRARIES} ${PCL_LIBRARIES} ) target_compile_definitions(color_octomap_server PUBLIC COLOR_OCTOMAP_SERVER) rclcpp_components_register_node(color_octomap_server PLUGIN octomap_server::ColorOctomapServer EXECUTABLE color_octomap_server_node ) # ---------------- octomap_saver ---------------- add_library(octomap_saver SHARED src/octomap_saver.cpp ) ament_target_dependencies(octomap_saver rclcpp rclcpp_components geometry_msgs sensor_msgs nav_msgs std_msgs std_srvs visualization_msgs message_filters pcl_ros pcl_conversions octomap_msgs octomap_ros tf2 tf2_ros tf2_eigen tf2_geometry_msgs ) target_link_libraries(octomap_saver ${octomap_LIBRARIES} ) rclcpp_components_register_node(octomap_saver PLUGIN octomap_server::OctomapSaver EXECUTABLE octomap_saver_node ) # install库 install(TARGETS octomap_server_static octomap_server octomap_server_multilayer tracking_octomap_server color_octomap_server octomap_saver ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) # 安装launch、params install(DIRECTORY launch params DESTINATION share/${PROJECT_NAME} ) install(PROGRAMS scripts/octomap_eraser_cli.py DESTINATION lib/${PROJECT_NAME} ) # if(BUILD_TESTING) # find_package(ament_lint_auto REQUIRED) # ament_lint_auto_find_test_dependencies() # endif() ament_package()报错5Startingoctomap_server --- stderr: octomap_server ** WARNING ** io features related to openni will be disabled ** WARNING ** io features related to openni2 will be disabled ** WARNING ** io features related to pcap will be disabled ** WARNING ** io features related to png will be disabled ** WARNING ** io features related to libusb-1.0 will be disabled ** WARNING ** visualization features related to openni will be disabled ** WARNING ** visualization features related to openni2 will be disabled ** WARNING ** apps features related to openni will be disabled CMake Error at CMakeLists.txt:22(find_package): By not providingFindnav_msgs.cmakeinCMAKE_MODULE_PATH this project has asked CMake tofinda package configurationfileprovided bynav_msgs, but CMake did notfindone. Could notfinda package configurationfileprovided bynav_msgswith any of the following names: nav_msgsConfig.cmake nav_msgs-config.cmake Add the installation prefix ofnav_msgsto CMAKE_PREFIX_PATH orsetnav_msgs_DIRto a directory containing one of the above files. Ifnav_msgsprovides a separate development package or SDK, be sure it has been installed. --- Failedoctomap_server[3.50s, exited with code1]解决办法缺少 ROS2‑Foxy 的 nav_msgs、std_srvs、visualization_msgs、pcl_ros、octomap_ros等 消息包。sudoaptupdatesudoaptinstallros-foxy-nav-msgs ros-foxy-std-srvs ros-foxy-visualization-msgs ros-foxy-pcl-ros ros-foxy-octomap-ros ros-foxy-tf2-eigen基于Mid-360从 FAST-LIO 点云到导航地图去顶、滤波、PGM/YAML 生成及 GIMP 优化全流程详解