# ros导航系统 **Repository Path**: ucas-sas-robot-team/ros-navigation-system ## Basic Information - **Project Name**: ros导航系统 - **Description**: No description available - **Primary Language**: C++ - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2024-09-02 - **Last Updated**: 2025-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ros_navigation ## 介绍 本项目结合了 ROS1、Mid360、Livox、FAST-LIO 和 move_base,旨在实现高效的导航和地图构建。 ## 环境配置 ### 1. 操作系统要求 - Ubuntu 18.04(用于 ROS Melodic) - Ubuntu 20.04(用于 ROS Noetic) ### 2. 安装 ROS 可以根据自己的ubuntu版本进行安装,可以参考官网教程或者直接使用“鱼香ROS”工具包进行安装(推荐)。 - [ROS Melodic 安装说明](https://wiki.ros.org/melodic/Installation) - [ROS Noetic 安装说明](https://wiki.ros.org/noetic/Installation) ### 3. 安装依赖项 ```bash sudo apt update sudo apt install ros-noetic-pointcloud_to_laserscan sudo apt install ros-noetic-move-base sudo apt install ros-noetic-octomap-server sudo apt install ros-noetic-ros-numpy sudo apt install ros-noetic-can-msgs sudo apt install ros-noetic-serial pip3 install open3d ``` ### 4. 编译 ```bash cd src/livox-ros-driver2 ./build.sh ROS1 cd ../.. catkin_make ``` 注意执行前检查 build.sh, 其行尾序列为 LF ## 使用方式 ### 地图扫描 使用以下命令启动地图扫描: ```bash roslaunch navigation_pkg scan_map.launch ``` 运行完成后,使用 `Ctrl + C` 停止,点云数据将保存在 `Fast_lio/PCD/scans.pcd` 中。 ### 地图转化和部署 使用三个终端分别执行以下命令: 1. 打开 roscore: ```bash roscore ``` 2. 执行保存地图,并替换先验点云文件: ```bash sh save_map.sh ``` 3. 执行点云转化: ```bash roslaunch pcd2pgm run.launch ``` 4. 存储后可能会出现地图路径问题可以手动打开 `Fast_lio/PCD/scans.yaml` 文件,把地图文件的路经改称`./scans.pgm` ### 运行导航 使用以下命令启动导航程序: ```bash roslaunch navigation_pkg all_run.launch ``` ## 模块介绍 ### livox_ros_driver Livox ROS 驱动程序包,用于连接和控制 Livox 激光雷达设备。该驱动支持 Mid360 等多种型号的 Livox 激光雷达,提供了点云数据的获取和处理功能。主要特点: - 支持多种 Livox 激光雷达型号 - 提供点云数据实时获取 - 包含丰富的配置选项 - 支持数据同步和时间戳对齐 GitHub 地址:https://github.com/Livox-SDK/livox_ros_driver 需要我们手动调节的参数文件地址为[src/livox_ros_driver2/config/MID360_config.json](src/livox_ros_driver2/config/MID360_config.json) ### Fast_lio Fast_lio 是一个基于激光雷达的实时定位与建图系统,采用卡尔曼滤波算法实现高精度的状态估计。主要特点: - 支持多种激光雷达设备 - 实时建图和定位功能 - 高精度的状态估计 - 计算效率高 GitHub 地址:https://github.com/hku-mars/FAST_LIO 需要我们手动调节的参数文件地址为[src/FAST_LIO/config/mid360.yaml](src/FAST_LIO/config/mid360.yaml)和[src/FAST_LIO/config/mid360_down.yaml](src/FAST_LIO/config/mid360_down.yaml),两者的区别在于对应雷达朝上和朝下的安装方式。 ### Fast_lio_localization Fast_lio_localization 是基于 FAST_LIO 的轻量级定位模块,专注于实时定位功能。 ### pcd2pgm pcd2pgm 模块用于将点云数据(PCD 格式)转换为栅格地图(PGM 格式)。 ### navigation_pkg 连接以上若干包的节点,同时包含move_base导航节点参数。 ### test_node_pkg 临时测试节点 ### middle_pkg 中继节点,用于中转数据,可以将决策模块和其它模块隔离开,方便后续接入仿真。 ### decision_pkg 决策模块,用于控制机器人的移动和行为。 ### middle_coding_pkg 中继节点,用于中转数据,将上行和下行数据进行编码和解码。 ### usb_can_pkg USB-CAN通信节点,用于与 USB-CAN 总线进行通信。 ## 其他说明 - 确保在运行程序之前,所有依赖项都已正确安装并配置。 - 详细的配置文件和参数设置可以在相应的配置目录中找到。