# eaiNavMap **Repository Path**: eai-navigation-lab/eaiNavMap ## Basic Information - **Project Name**: eaiNavMap - **Description**: eaiNavMap是一个专注于环境感知与地图构建的开源项目,适用于机器人导航、自动驾驶等领域,提供高效精准的建图算法与工具。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-10 - **Last Updated**: 2025-12-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # eaiNavMap 工作空间 ## 描述 `eaiNavMap`用于支持建立PCD点云图、将PCD转化PGM,对PGM地图微修图,包含WEB界面以及受管依赖。 ## 首次使用 要首次使用 `eaiNavMap` 工作空间,请按照以下步骤操作: ### 系统环境要求 - 操作系统:**Ubuntu 22.04** - ROS2 发行版:**Humble** - 显卡:**NVIDIA 30 / 40 / 50 系列** - CUDA 版本:**12.2 ~ 12.8** > 如果你的环境不满足以上条件,建议先完成系统和驱动 / CUDA 的安装再继续。 --- ### 先决条件 ROS2-humble 和 CUDA(如已安装请忽略) 1、鱼香 ros 一键安装 Ros2,版本 humble: ```bash # 终端直接执行以下命令,工控机建议选择选择ROS base进行安装,更换源并删除第三方源 wget http://fishros.com/install -O fishros && bash fishros # 安装humble版本 #【1】一键安装(推荐) ROS(支持ROS/ROS2,树莓派Jetson)→【2】更换系统源再继续安装→【2】更换系统源并清理第三方源→【1】自动测速选择最快的源→【1】中科大镜像源 (推荐国内用户使用)→【1】humble(ROS2)→【1】humble(ROS2)桌面版 ``` 2、电脑显卡为 30 、40 和 50 系列且 cuda 要求为12.2 ~ 12.8 - https://developer.nvidia.com/cuda-toolkit-archive ### 步骤 1:安装 `eaiNavMap` 依赖 ```bash # 运行 build_eaiNavMap.sh 也会检测并安装 sudo apt install tmux ros-humble-nav2_map_server sudo apt install libomp-dev libboost-all-dev libmetis-dev \ libfmt-dev libspdlog-dev \ libglm-dev libglfw3-dev libpng-dev libjpeg-dev pip install flask pyyaml psutil Pillow numpy==numpy==1.21.5 ``` ### 步骤 2:编译 `eaiNavMap` ```bash # 进入 eaiNavMap/src 文件夹 cd eaiNavMap/src # 运行脚本(可以通过脚本 5-10 行控制编译内容,默认全部编译) bash build_eaiNavMap.sh ``` ### 步骤 3:运行建图程序 #### WEB 便捷建图界面(推荐) ```bash cd eaiNavMap python3 src/glim_web_tool/map_web.py # 运行 map_web.py 后打开网页输入以下网址(端口:8050),默认自动打开 http://127.0.0.1:8050/ # 注意雷达高度:机器人走着录制的数据高度推荐 1.62,机器人推着录制的数据,需要增加架子的高度,推荐1.8,也可根据架子高度调整 ``` #### 手动运行 1、打开一个终端,启动 glim 建图节点 ```bash cd eaiNavMap source install/setup.bash ros2 run glim_ros glim_rosnode ``` 2、再打开另一个终端运行 ```bash ros2 bag play 你保存地图的地址/录制的点云数据包 # 示例:ros2 bag play rosbag2_2025_11_25-15_35_05 ``` 3、保存 PCD 地图 - 当`ros2 bag play`数据播放完成后(默认会自动退出程序),将运行`ros2 run glim_ros glim_rosnode`的终端`Ctrl+C`关闭,地图保存到了`eaiNavMap`目录,文件名默认为`map.pcd`,可通过`map_save_name`参数自定义 注:保存地图必须先保证`ros2 bag play`关闭,随后再关闭`ros2 run glim_ros glim_rosnode` 4、PCD 转换为 PGM 修改`eaiNavMap/src/projects/pcd2pgm/config/pcd2pgm.yaml`中的`pcd_file`为你的`map.pcd`位置(默认`eaiNavMap/map.pcd`),返回到`eaiNavMap`,打开终端启动`pcd2pgm`节点,可在`RViz`中预览滤波后点云和栅格地图: ```bash source install/setup.bash ros2 launch pcd2pgm pcd2pgm_launch.py ``` ```bash # pcd2pgm.yaml 参数说明 pcd2pgm: ros__parameters: pcd_file: /home/users/pcd_map/your_map.pcd # pcd 文件所在目录 odom_to_lidar_odom: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] # [x, y, z, r, p, y] 里程计到激光雷达的坐标变换(用于变换点云) flag_pass_through: false # 是否使用 Pass Through 滤波器 map_resolution: 0.05 # 地图分辨率 map_topic_name: map # 发布地图的 ROS 话题名 thre_radius: 0.1 # Radius Outlier 滤波器半径 thre_z_max: 2.0 # Z轴最大值(用于 Pass Through 滤波器) thre_z_min: 0.1 # Z轴最小值(用于 Pass Through 滤波器) thres_point_count: 10 # 最小点数阈值(用于 Radius Outlier 滤波器) ``` 5、保存栅格地图:(确保你的系统里有`humble`版本的`ros2`) ```bash ros2 run nav2_map_server map_saver_cli -f ```