fast-lio2复现:使用livox_avia

本文档介绍了如何安装Ceres求解器和Livox ROS驱动,包括依赖安装、源码编译及激光雷达消息类型匹配问题。在尝试使用livox_lidar.launch时遇到类型不匹配问题,提出了修改驱动发布消息类型或调整雷达扫描模式的解决方案。后续步骤包括查阅文档和调整算法配置来解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装依赖以及ceres

sudo apt-get install libsuitesparse-dev
git clone https://github.com/ceres-solver/ceres-solver/archive/1.14.0.zip
cd ~/你新建的文件夹/ceres-solver-1.14.0
mkdir ceres-bin && cd ceres-bin
cmake …
sudo make install -j4
cd ~

下载livox_ros_driver,fast-lio2并编译

git clone https://github.com/hku-mars/FAST_LIO.git Fast_Lio_ws/src
git clone https://github.com/Livox-SDK/livox_ros_driver.git
cd …
catkin_make

运行

cd ~/$Fast_Lio_ws$
source devel/setup.bash
roslaunch fast_lio mapping_avia.launch
roslaunch livox_ros_driver livox_lidar_msg.launch

效果

lio_livox运行()待完善

直接使用驱动livox_lidar.launch,拉起激光雷达获得的是sensor_msgs::PointCloud2,扫描形式为旋转。
此时无论拉起horizon.launch 还是 hap.launch 均会出现所需消息类型不匹配问题。所需类型为livox_ros_driver::CustomMsg

可尝试的解决方案:1、先修改激光雷达驱动中发布的消息类型;2、之后再使用livox_viewer对激光雷达扫描形式进行修改。将激光雷达设置为重复扫描模式再尝试。

接下来的安排:1,再阅读关于驱动的文档,是否有关于更改发布的消息类型的说明,2、有则执行上述解决方案,无则更改算法文件配置中的雷达类型再执行上述方案。

更改发布的消息类型:livox_lidar_msg.launch Connect to Livox LiDAR device Publish livox customized pointcloud data

重复扫描图案设置:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
[1.0, 0.0, 0.0, -0.04165,
0.0, 1.0, 0.0, -0.02326,
0.0, 0.0, 1.0, 0.02840,
0.0, 0.0, 0.0, 1.0]
学校主楼后的校友林
在这里插入图片描述在这里插入图片描述

<think>好的,我需要帮助用户搭建云深Lite3机器狗和速腾RSHELIOS32线雷达(70度FOV,5515型号)的Gazebo仿真平台,并验证Faster-LIO和OctoMap的可行性。首先,我应该分步骤思考整个流程,确保每个环节都正确。 首先,用户需要搭建Gazebo仿真环境。云深Lite3机器狗的模型可能需要从官方或开源社区获取,比如GitHub上的legged robotics相关项目。如果官方没有提供,可能需要自己创建URDF模型,添加关节、传感器等。然后,速腾雷达的模型也需要导入Gazebo。速腾可能提供了现成的Gazebo插件,或者需要用户自定义激光雷达的插件,设置参数如线数、FOV、分辨率等。特别是70度垂直视场和5515型号的具体参数,需要确认是否正确设置。 接下来,配置传感器到机器狗的TF变换,确保雷达的位置和方向与实际一致。可能需要通过<gazebo>标签在URDF中添加传感器插件,并发布正确的tf信息。 然后是仿真环境搭建,比如选择一个合适的场景,比如室内或室外环境,测试雷达的点云生成是否正常。需要启动Gazebo,加载机器狗和雷达,观察点云数据是否正确生成,是否存在噪声或畸变。 接下来,安装和配置Faster-LIOFaster-LIO作为LiDAR惯性里程计,需要IMU和雷达的数据输入。需要确保Gazebo中的机器狗模型包含IMU传感器,并且话题名称与Faster-LIO的配置一致。可能需要修改Faster-LIO的配置文件,调整参数如雷达类型、IMU频率、话题名称等。在仿真中运行Faster-LIO,记录轨迹和点云地图,评估定位精度和实时性。 然后是OctoMap的集成。Faster-LIO输出的点云需要通过pointcloud_to_laserscan转换为2D激光数据(如果OctoMap需要),或者直接处理3D点云。安装OctoMap后,配置ROS节点订阅点云话题,生成八叉树地图。需要调整分辨率、概率阈值等参数,并在Rviz中观察地图构建情况,测试动态更新和障碍物识别能力。 验证阶段需要设计测试场景,比如静态环境中的建图精度、动态障碍物的处理、长时间运行的稳定性。比较仿真结果与预期,检查Faster-LIO的定位是否漂移,OctoMap是否能正确反映环境结构。可能需要调整算法参数或传感器配置,反复测试优化。 可能出现的问题包括:雷达模型在Gazebo中的表现不符合实际,如点云密度不足或噪声过大;TF变换错误导致传感器数据错位;Faster-LIO参数不匹配导致定位失败;OctoMap参数设置不当导致内存占用过高或地图不准确。需要逐一排查,查看日志和RViz中的显示,确保每个环节的数据流正确。 最后,整理步骤,确保用户能按照顺序操作,包括环境搭建、模型导入、传感器配置、算法部署和验证测试。可能需要提供具体的命令和配置文件修改示例,帮助用户避免常见错误。</think>以下是基于云深Lite3机器狗与速腾RSHELIOS32线雷达(70°FOV/5515)搭建Gazebo仿真平台,并验证Faster-LIO与OctoMap可行性的详细步骤: --- ### 一、仿真环境搭建 #### 1.1 硬件模型导入 ```xml <!-- 示例:在URDF中添加雷达的Gazebo插件 --> <gazebo reference="rslidar_link"> <sensor type="gpu_ray" name="rslidar_sensor"> <pose>0 0 0 0 0 0</pose> <visualize>false</visualize> <update_rate>10</update_rate> <ray> <scan> <horizontal> <samples>5515</samples> <resolution>1</resolution> <min_angle>-0.610865</min_angle> <!-- 水平35° --> <max_angle>0.610865</max_angle> </horizontal> <vertical> <samples>32</samples> <resolution>1</resolution> <min_angle>-0.349</min_angle> <!-- 垂直70° --> <max_angle>0.349</max_angle> </vertical> </scan> <range> <min>0.5</min> <max>200.0</max> <resolution>0.03</resolution> </range> </ray> <plugin name="gpu_lidar" filename="libgazebo_ros_gpu_lidar.so"> <topicName>/rslidar_points</topicName> <frameName>rslidar_link</frameName> </plugin> </sensor> </gazebo> ``` #### 1.2 IMU仿真配置 ```bash # 在机器狗URDF中添加IMU插件 <gazebo reference="imu_link"> <sensor type="imu" name="imu_sensor"> <plugin filename="libgazebo_ros_imu_sensor.so" name="imu_plugin"> <topicName>/imu/data</topicName> <bodyName>imu_link</bodyName> </plugin> </sensor> </gazebo> ``` --- ### 二、算法部署流程 #### 2.1 Faster-LIO配置 ```bash # 安装依赖 sudo apt install ros-$ROS_DISTRO-livox_ros_driver # 修改config/velodyne.yaml参数: lidar_topic: "/rslidar_points" imu_topic: "/imu/data" lidar_type: 1 # 对应机械式雷达 scan_rate: 10 # 与Gazebo插件一致 point_filter_num: 1 # 全点数采样 ``` #### 2.2 OctoMap集成 ```bash # 安装octomap_server sudo apt install ros-$ROS_DISTRO-octomap-server # 启动3D建图节点 roslaunch octomap_server octomap_mapping.launch <param name="resolution" value="0.1" /> <param name="latch" value="false" /> <remap from="cloud_in" to="/fasterlio/mapping/cloud" /> ``` --- ### 三、验证测试方案 #### 3.1 基础功能验证 ```bash # 启动仿真环境 roslaunch lite3_gazebo lite3_world.launch lidar_model:=rshelios_32 # 启动Faster-LIO roslaunch faster_lio mapping_avia.launch # 可视化检测 rviz -d src/Faster-LIO/config/mapping.rviz ``` #### 3.2 精度验证方法 1. **闭环检测**:在Gazebo中设置正方形路径,通过`evo_ape`评估轨迹误差 ```bash evo_ape bag result.bag /ground_truth/odom /laser_odom ``` 2. **点云配准度**:使用CloudCompare比对仿真环境模型与生成点云的匹配度 --- ### 四、典型问题解决方案 1. **点云异常**:检查Gazebo中雷达的`<noise>`配置,建议设置: ```xml <noise> <type>gaussian</type> <mean>0.0</mean> <stddev>0.01</stddev> </noise> ``` 2. **IMU同步问题**:在Faster-LIO的配置文件中启用时间同步: ```yaml time_sync_en: true time_offset_lidar_to_imu: 0.0 ``` 3. **OctoMap更新延迟**:调整`octomap_server`参数: ```xml <param name="max_depth" value="15.0" /> <!-- 最大探测距离 --> <param name="occupancy_thres" value="0.7" /> <!-- 占据概率阈值 --> ``` --- ### 五、优化建议 1. **硬件加速**:启用Gazebo的GPU渲染模式 ```bash export GAZEBO_GPU_VENDOR=nvidia ``` 2. **多传感器融合**:在URDF中添加深度相机仿真,实现多模态建图 3. **动态障碍测试**:使用Gazebo插件生成移动障碍物,验证SLAM鲁棒性 通过以上步骤可系统性完成从仿真环境搭建到算法验证的全流程,建议使用ROS bag记录测试数据以便复现分析。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值