fast-lio2复现

使用mid360部署FASTLIO2_ROS2

1.安装LIVOX驱动

1.1.基础系统环境准备

系统要求

  • 操作系统:Ubuntu 22.04.5 LTS(推荐使用64位版本)
  • ROS2版本:Humble Hawksbill(ROS2长期支持版本)
  • CMake版本:3.27或更高版本
  • 硬件配置:建议至少8GB内存和64GB存储空间

更新系统软件包和安装基础开发工具

复制代码
sudo apt update && sudo apt upgrade -y

sudo apt install -y \
build-essential \
cmake \
git \
wget \
curl \
software-properties-common \
lsb-release

1.2.CMake 3.27安装

Fast-LIO2对CMake版本有特定要求,需从源码安装:

复制代码
# 下载CMake 3.27.1源码
wget https://cmake.org/files/v3.27/cmake-3.27.1.tar.gz

# 解压并编译安装
tar -zxvf cmake-3.27.1.tar.gz
cd cmake-3.27.1
./bootstrap
make
sudo make install

# 配置环境变量
echo 'export PATH=/usr/local/bin:PATH' >> ~/.bashrc
source ~/.bashrc

# 验证版本
cmake --version

1.3.Livox Mid-360 SDK安装

复制代码
# 创建ROS2工作空间
mkdir -p fast_lio2_ws/src
cd fast_lio2_ws

# 安装Livox SDK2,进入src目录并克隆仓库
cd src
git clone https://github.com/Livox-SDK/Livox-SDK2.git --recursive

# 创建build目录并编译SDK
cd Livox-SDK2
mkdir build
cd build

# 指定CMake路径以避免版本冲突
/usr/local/bin/cmake .. && make -j
sudo make install

1.4.Livox Mid-360 ROS2驱动安装

1.4.1 克隆Livox ROS2驱动
复制代码
# 返回src目录并克隆ROS2驱动仓库
cd ../..
git clone https://github.com/Livox-SDK/livox_ros_driver2.git --recursive

sudo apt update
sudo apt install ros-humble-ament-cmake-auto
1.4.2. 修改mid360的配置文件 (livox_ros_driver2/config/MID360_config.json):
  • "host_net_info"中的"cmd_data_ip"和"push_msg_ip"应设置为与雷达同一子网的IP地址(如192.168.1.50)

  • "host_net_info"中的"cmd_data_port"、"push_msg_port"和"point_data_port"分别设置为56101、56201和56301

  • "lidar_configs"中的"ip"应设置为雷达的IP地址(通常为192.168.1.1XX,XX为雷达SN序列号最后两位)

    {
    "lidar_summary_info" : {
    "lidar_type": 8
    },
    "MID360": {
    "lidar_net_info" : {
    "cmd_data_port": 56100,
    "push_msg_port": 56200,
    "point_data_port": 56300,
    "imu_data_port": 56400,
    "log_data_port": 56500
    },
    "host_net_info" : {
    "cmd_data_ip" : "192.168.1.5",
    "cmd_data_port": 56101,
    "push_msg_ip": "192.168.1.5",
    "push_msg_port": 56201,
    "point_data_ip": "192.168.1.5",
    "point_data_port": 56301,
    "imu_data_ip" : "192.168.1.5",
    "imu_data_port": 56401,
    "log_data_ip" : "",
    "log_data_port": 56501
    }
    },
    "lidar_configs" : [
    {
    "ip" : "192.168.1.100",
    "pcl_data_type" : 1,
    "pattern_mode" : 0,
    "extrinsic_parameter" : {
    "roll": 0.0,
    "pitch": 0.0,
    "yaw": 0.0,
    "x": 0,
    "y": 0,
    "z": 0
    }
    }
    ]
    }

1.4.3 修改驱动发布格式
  • 驱动默认发布 PointCloud2 格式
  • Fast-LIO2 期望 CustomMsg 格式
  • 导致 Fast-LIO2 无法接收和处理雷达数据

修改livox_ros_driver2/launch_ROS2/rviz_MID360_launch.py

复制代码
# 修改前
xfer_format = 0  # PointCloud2

# 修改后  
xfer_format = 1  # CustomMsg
1.4.4 编译驱动
复制代码
cd /home/guan2/Desktop/fast_lio2_ws/src/livox_ros_driver2
sudo chmod +x build.sh
source /opt/ros/humble/setup.sh
./build.sh humble
1.4.5 测试驱动
复制代码
# 临时设置IP(重启后失效)
sudo ip addr add 192.168.1.5/24 dev enP8p1s0
sudo ip link set enP8p1s0 up

# 验证设置
ip addr show enP8p1s0

# 运行驱动不查看点云数据
cd /home/guan2/Desktop/fast_lio2_ws
source install/setup.sh
ros2 launch livox_ros_driver2 msg_MID360_launch.py

# 运行驱动并查看点云数据
# ros2 launch livox_ros_driver2 rviz_MID360_launch.py

2.安装FASTLIO2_ROS2

2.1 克隆FASTLIO2_ROS2

复制代码
git clone https://github.com/liangheming/FASTLIO2_ROS2.git

2.2 sophus编译

复制代码
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout 1.22.10 #旧版本
mkdir build && cd build
cmake .. -DSOPHUS_USE_BASIC_LOGGING=ON
make
sudo make install

2.1 gtsam编译

需要添加dllexport.h文件,不然编译会报错

复制代码
git clone https://github.com/borglab/gtsam.git
# 进入 cephes 目录
cd gtsam/gtsam/3rdparty/cephes
# 创建 dllexport.h 文件
tee dllexport.h > /dev/null << 'EOF'
#ifndef DLLEXPORT_H
#define DLLEXPORT_H
 
/* Define DLLEXPORT for Windows, empty for other platforms */
#ifdef _WIN32
    #ifdef GTSAM_SHARED_LIB
        #define DLLEXPORT __declspec(dllexport)
    #else
        #define DLLEXPORT __declspec(dllimport)
    #endif
#else
    #define DLLEXPORT
#endif
 
#endif // DLLEXPORT_H
EOF

cd ../../../..
cd gtsam
#!bash
mkdir build
cd build
cmake ..
make check -j8 #多线程编译
sudo make install

将fast-lio2移动到自己src中编译即可使用

复制代码
colcon build --cmake-args -DROS_EDITION=ROS2 -DHUMBLE_ROS=humble

3.使用FASTLIO2_ROS2

3.1激光惯性里程计

先启动驱动,然后再启动FASTLIO2_ROS2节点

复制代码
source install/setup.bash
ros2 launch livox_ros_driver2 rviz_MID360_launch.py

source install/setup.bash
ros2 launch fastlio2 lio_launch.py
ros2 bag play your_bag_file

3.2里程计加回环

复制代码
source install/setup.bash
# 先设置环境变量,让系统libusb优先
export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH
# 然后启动pgo
ros2 launch pgo pgo_launch.py
ros2 bag play your_bag_file

3.3里程计加重定位

复制代码
source install/setup.bash
ros2 launch localizer localizer_launch.py
ros2 bag play your_bag_file // 可选

3.3里程计加重定位

启动一致性地图优化节点

复制代码
source install/setup.bash
ros2 launch hba hba_launch.py

调用优化服务

复制代码
ros2 service call /hba/refine_map interface/srv/RefineMap "{"maps_path": "your maps directory"}"
相关推荐
青山_FPGA2 小时前
AT24CM01芯片的时序是如何进行控制的?
嵌入式硬件·fpga开发·lattice
Century_Dragon2 小时前
哈弗M6汽车故障诊断与排除仿真教学软件:让课堂与实训无缝对接
学习
for_ever_love__2 小时前
Objective- C学习: 手动内存管理
c语言·学习·ios·objective-c
gechunlian882 小时前
Spring Security 官网文档学习
java·学习·spring
鲨辣椒100862 小时前
51单片机核心钉子户——温度采集模块
单片机·嵌入式硬件·51单片机
2401_853448232 小时前
Maix例程代码学习
学习
FPGA小迷弟3 小时前
FPGA工程师面试题汇总(二)
学习·fpga开发·verilog·fpga
arvin_xiaoting3 小时前
OpenClaw学习总结_I_核心架构_9:Multi-Agent详解
网络·学习·架构·系统架构·ai agent·multi-agent·openclaw
xiangw@GZ3 小时前
CapSense底层逻辑:硬件设计规范
单片机·嵌入式硬件·设计规范