Radar: Preparation of SLAM Mapping Software Environment

Radar: Preparation of SLAM Mapping Software Environment

02 - 阶段二执行记录:SLAM 建图软件环境准备

1. 概述

最终选型:Cartographer(理由见 01_阶段二规划 文档)


2. 已完成步骤

2.1 安装 apt 依赖 【待用户手动执行】

当前环境无 sudo 权限,以下命令需在小车上手动执行:

# 安装 Cartographersudoapt update sudoaptinstall-y ros-humble-cartographer ros-humble-cartographer-ros # 安装 Nav2 地图服务器(保存地图用)sudoaptinstall-y ros-humble-nav2-map-server # 安装 URDF 工具(编译 description 包需要)sudoaptinstall-y ros-humble-robot-state-publisher ros-humble-joint-state-publisher ros-humble-xacro 
以上三条命令也可以合并为一条执行。

2.2 设置 LIDAR_TYPE 环境变量 【已完成】

已写入 ~/.bashrc

exportLIDAR_TYPE=4ros 

源码中的 launch 文件会读取此变量,自动选择对应的雷达配置。

2.3 复制建图相关包到工作空间并编译 【已完成】

从源码目录复制了 3 个包到 ~/ydlidar_ws/src/

包名作用编译类型
yahboomcar_nav建图/导航 launch 文件 + 参数配置ament_python
yahboomcar_descriptionURDF 模型(TF 坐标关系)ament_python
yahboomcar_msgs自定义消息类型ament_cmake

编译命令:

cd ~/ydlidar_ws colcon build --symlink-install --packages-select yahboomcar_description yahboomcar_msgs yahboomcar_nav 

编译结果:3 个包全部成功(仅有 setuptools 弃用警告,不影响运行)。

2.4 TF Frame 分析 【无需修复】

分析结论:

组件Frame 名称来源
雷达驱动 /scanlaserydlidar_4ros.yamlframe_id: laser
URDF 模型laser_linkyahboomcar_X3.urdf 中固定关节
launch 静态 TFbase_link → laserlaser_bringup_launch.py

两者共存不冲突:

  • URDF 的 laser_link 用于 RViz 模型可视化
  • 静态 TF 的 laser 用于实际 /scan 数据的坐标变换
  • Cartographer 按 /scan 消息的 frame_idlaser)查 TF,走静态 TF 链路

2.5 Cartographer 配置优化 【已完成】

针对 TG30 雷达创建了两份 Cartographer 配置文件:

tg30_2d.lua(正式建图用,有 odom)
参数原值新值说明
tracking_framebase_footprint不变跟踪底盘
use_odometrytrue不变使用底盘里程计
min_range0.10.05TG30 最小 0.01m
max_range812.0TG30 最远 64m,室内取 12m
missing_data_ray_length0.55.0增大无数据射线长度
publish_frame_projected_to_2dfalsetrue2D 投影
optimize_every_n_nodes注释掉30启用全局优化
min_score0.70.65适当放宽回环检测
tg30_2d_no_odom.lua(手持测试用,无 odom)
参数说明
tracking_framebase_link无 odom,直接跟踪 base_link
published_framebase_link发布到 base_link
provide_odom_frametrueCartographer 自行生成 odom
use_odometryfalse不使用里程计
optimize_every_n_nodes20更频繁优化,补偿漂移
min_score0.55放宽匹配阈值

2.6 创建 Launch 文件 【已完成】

创建了两个新 launch 文件:

文件用途启动命令
map_cartographer_test_launch.py无底盘手持测试ros2 launch yahboomcar_nav map_cartographer_test_launch.py
map_cartographer_tg30_launch.py正式建图(底盘到后用)ros2 launch yahboomcar_nav map_cartographer_tg30_launch.py
测试版 launch 启动的内容:
  1. 雷达驱动(4ros_ydlidar_launch.py
  2. 静态 TF:base_footprint → base_link(高度 0.0815m)
  3. 静态 TF:base_link → laser(位移 + yaw 旋转)
  4. Cartographer 节点(无 odom 模式)
  5. 栅格地图发布节点
正式版 launch 启动的内容:
  1. 底盘 + 雷达(laser_bringup_launch.py
  2. Cartographer 节点(有 odom 模式)
  3. 栅格地图发布节点

3. 当前工作空间文件结构

~/ydlidar_ws/src/ ├── ydlidar_ros2_driver-master/ # 雷达驱动(阶段一已编译) ├── yahboomcar_description/ # URDF 机器人模型 ← 新增 │ ├── urdf/yahboomcar_X3.urdf # X3 小车模型 │ └── meshes/ # 3D 模型文件 ├── yahboomcar_msgs/ # 自定义消息 ← 新增 ├── yahboomcar_nav/ # 导航建图包 ← 新增 │ ├── launch/ │ │ ├── map_cartographer_test_launch.py ← 新建(手持测试) │ │ ├── map_cartographer_tg30_launch.py ← 新建(正式建图) │ │ ├── map_cartographer_launch.py # 原始 launch │ │ ├── save_map_launch.py # 保存地图 │ │ └── ... │ └── params/ │ ├── tg30_2d.lua ← 新建(有 odom 配置) │ ├── tg30_2d_no_odom.lua ← 新建(无 odom 配置) │ ├── lds_2d.lua # 原始配置 │ └── dwb_nav_params.yaml # 导航参数 

4. TF 坐标链

手持测试模式(无底盘)

map → odom → base_link → laser ↑ ↑ ↑ Cartographer 静态TF 静态TF 自动生成 (0,0,0.0815) (0.0435,0,0.11,yaw=π) 
base_footprint 在手持模式下通过静态 TF 连接到 base_link

正式建图模式(有底盘)

map → odom → base_footprint → base_link → laser ↑ ↑ ↑ ↑ SLAM 底盘编码器 URDF固定关节 静态TF +EKF 

5. 底盘的操作流程

# 第一步:安装 apt 依赖(如果还没装)sudoaptinstall-y ros-humble-cartographer ros-humble-cartographer-ros sudoaptinstall-y ros-humble-nav2-map-server sudoaptinstall-y ros-humble-robot-state-publisher ros-humble-joint-state-publisher ros-humble-xacro # 第二步:安装底盘驱动(根据底盘型号)# 具体命令待底盘到了再确定# 第三步:启动建图 ros2 launch yahboomcar_nav map_cartographer_tg30_launch.py # 第四步:遥控小车在房间里慢速移动,RViz 中观察地图构建 rviz2 # 添加 Map + LaserScan 显示# 第五步:建图满意后保存 ros2 launch yahboomcar_nav save_map_launch.py # 地图保存到 ~/ydlidar_ws/src/yahboomcar_nav/maps/yahboomcar.pgm + .yaml

6. 手持测试建图流程(可选,底盘到之前)

# 前提:已安装 Cartographer(sudo apt install ...)# 第一步:启动 ros2 launch yahboomcar_nav map_cartographer_test_launch.py # 第二步:手持雷达在房间里慢慢走(要求平稳,不能快速移动)# 第三步:在另一个终端打开 RViz 观察 rviz2 # 添加 Map 显示(topic: /map)# 添加 LaserScan 显示(topic: /scan)# 第四步:保存地图 ros2 launch yahboomcar_nav save_map_launch.py 
注意:手持建图精度较低,仅作为验证 Cartographer 是否正常工作。正式地图需等底盘到了重建。

7. 阶段二完成状态

序号步骤状态
2.1安装 apt 依赖待用户手动执行
2.2设置 LIDAR_TYPE 环境变量已完成
2.3复制并编译建图相关包已完成
2.4TF Frame 分析已完成(无需修复)
2.5Cartographer 配置优化已完成
2.6创建 Launch 文件已完成

Read more

Whisper 模型本地化部署:全版本下载链接与离线环境搭建教程

Whisper 模型本地化部署指南 一、模型版本与下载 Whisper 提供多种规模版本,可通过以下官方渠道获取: 1. GitHub 仓库 https://github.com/openai/whisper 包含最新代码、预训练权重和文档 * tiny.en / tiny * base.en / base * small.en / small * medium.en / medium * large-v2 (最新大模型) Hugging Face 模型库 所有版本下载路径: https://huggingface.co/openai/whisper-{version}/tree/main 替换 {version} 为具体型号: 二、离线环境搭建教程 准备工作 1.

使用GpuGeek高效完成LLaMA大模型微调:实践与心得分享

使用GpuGeek高效完成LLaMA大模型微调:实践与心得分享

使用GpuGeek高效完成LLaMA大模型微调:实践与心得分享 🌟嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 随着大模型的发展,越来越多的AI开发者开始尝试对开源模型进行微调,以适配垂直场景需求。但由于训练资源昂贵、部署过程繁琐,很多人仍止步于“想做”阶段。 本文将结合我在 GpuGeek 平台 上对 LLaMA 模型的微调实践,分享完整流程、调优经验以及平台带来的优势,帮助更多开发者低门槛开启大模型实践之路。 注册链接:https://gpugeek.com/login?invitedUserId=753279959&source=invited 一、选型与准备 选择模型:LLaMA-7B Meta发布的LLaMA系列模型在性能与资源消耗之间取得了不错的平衡,适合作为个人或中小团队的定制基础模型。我选择了 LLaMA-7B,结合LoRA方法进行微调。 选择平台:GpuGeek 为什么选GpuGeek? ✅ 显卡资源充足、节点丰富:支持多种高性能GPU,

【AIGC】即梦omnihuaman-api调用实现

即梦数字人视频生成(Streamlit Demo) 基于 火山引擎即梦(Jimeng)CV API 的数字人视频生成示例项目。 支持 图片 + 音频驱动 的数字人视频生成流程,集成了主体检测、Mask 选择、Prompt 控制、视频生成与下载等完整功能,适合 内部测试 / 技术演示 / 二次开发。 一、功能概览 ✅ 核心功能 * 🔐 AK / SK 在线填写 * 支持火山引擎 Access Key / Secret Key 在页面中直接输入 * 无需写死在代码中,便于多账号切换 * api key申请地址:https://console.volcengine.com/iam/keymanage * 🖼 图片上传(人物图像) * 支持 JPG / PNG

OpenAI Codex vs GitHub Copilot:哪个更适合你的开发需求?2025年深度对比

OpenAI Codex 与 GitHub Copilot:2025年开发者如何做出关键选择? 在2025年的技术栈里,一个高效的AI编程伙伴不再是锦上添花,而是决定项目节奏与质量的核心生产力。面对市场上功能各异的选择,许多开发者,尤其是那些管理着复杂项目或带领团队的技术决策者,常常陷入一个两难的境地:是选择功能全面、能独立处理任务的“AI工程师”,还是选择无缝集成、提供实时灵感的“智能副驾驶”?这不仅仅是工具的选择,更是关于工作流重塑、团队协作模式乃至项目架构未来的战略决策。对于个人开发者、初创团队乃至大型企业的技术负责人而言,理解这两款主流工具——OpenAI Codex与GitHub Copilot——在本质定位、适用场景与成本效益上的深层差异,是避免资源错配、最大化技术投资回报的第一步。本文将深入它们的核心,帮助你根据真实的开发需求,找到那个最契合的“数字搭档”。 1. 核心理念与定位:从“辅助”到“执行”的范式差异 理解Codex和Copilot,首先要跳出“它们都是写代码的AI”这个笼统印象。它们的底层设计哲学决定了完全不同的应用边界。 OpenAI Codex