Week 6:传感器介绍与 ROS2 KITTI 实验
本周复习命令行、VS Code、Git,并进入机器人传感器主题。实验部分使用 ROS2 发布 KITTI 数据,并通过 RViz / rqt 可视化。
课堂内容
- 复习终端、VS Code、Git。
- 介绍典型机器人传感器。
- 使用 ROS2 做传感器数据实验。
- 布置作业。
终端操作复习
cd 目标目录
pwd
ls
ls -a
ls -l
权限与文件操作:
sudo apt install 软件名
sudo reboot
su 用户名
sudo bash
mv 原地址 新地址
rm 文件
rm -r 文件夹
提醒:rm -rf 风险很高,使用前一定确认路径。
VS Code 的意义
VS Code 可以跨越虚拟机 / 服务器与物理机 / 操作机的界限,直接编辑 WSL 或远程服务器中的文件。
常见用途:
- 编辑 Python、Markdown、ROS2 工作区文件。
- 预览 Markdown。
- 查看隐藏文件,例如
.gitignore。
.gitignore 可以放在仓库根目录,用来告诉 Git 哪些文件或目录不要提交。

Git 三板斧
cd 程序文件夹
git add .
git commit -m "描述提交代码的目的"
git push
版本管理的本质:程序文件夹根目录下的 .git 隐藏目录记录了分支和版本信息。

典型机器人传感器
定位与导航中常见传感器:
- 激光雷达:2D LiDAR / 3D LiDAR。
- 声纳:常用于水中机器人。
- 相机:单目、双目、深度相机、RGB-D 相机。
- 触觉传感器。
- IMU:惯性测量单元。
- GPS / GNSS。
常见融合数据:
- 点云 / 激光点云。
- IMU + GPS + LiDAR,例如 LIO / LVI-SAM。
LiDAR
LiDAR 通过发射激光束并测量反射时间来计算距离。
2D LiDAR:
- 只在单一平面扫描。
- 常用于扫地机器人、室内 AGV、SLAM。
3D LiDAR:
- 多线束扫描,例如 16 / 32 / 64 / 128 线。
- 产生三维点云。
- 是无人驾驶感知障碍物、形状和距离的重要传感器。

相机
单目相机:
- 成本低。
- 无法直接获得深度信息,需要算法或深度学习估算。
双目相机:
- 模拟人眼。
- 通过左右相机视差计算深度。
RGB-D / 深度相机:
- 结构光:例如 Kinect V1。
- ToF:例如 Kinect V2。
- 能直接输出 RGB 和 Depth 信息,但有效距离通常较短。
课堂例子:乐视体感相机。

IMU、GPS 与触觉传感器
IMU 通常包含三轴加速度计和三轴陀螺仪。
作用:
- 提供高频角速度和加速度。
- 通过积分推算位姿。
痛点:
- 存在累计误差,长时间运行会漂移。
GPS / GNSS:
- 提供全球绝对坐标。
- RTK 可以将定位精度从米级提升到厘米级。
- 在隧道、城市森林中容易丢失信号。
触觉 / 力传感器:
- 常用于机器人灵巧手抓取。
- 感知接触力、摩擦力和表面纹理。


点云与数据融合
点云是空间中大量点的集合,每个点至少包含:
x, y, z
也可能包含强度或颜色。
激光点云:
- 距离远。
- 受光照影响小。
- 几何精度高。
- 但稀疏,语义信息弱。
视觉点云:
- 通过双目或 RGB-D 恢复。
- 更稠密,带纹理。
- 受光照影响较大,计算量较大。
典型融合方案:
IMU + GPS + LiDAR
IMU 提供高频补偿,LiDAR 用于特征匹配定位,GPS 用于全局纠偏。


KITTI 数据集
数据集地址:
https://www.cvlibs.net/datasets/kitti/
KITTI 是自动驾驶领域常用数据集,由德国卡尔斯鲁厄理工学院和丰田工业大学芝加哥分校联合赞助,包含图像、雷达扫描、高精度 GPS 和 IMU 等多模态数据。
传感器配置包括:
- 2 个灰度相机。
- 2 个彩色相机。
- 64 线 Velodyne 旋转激光雷达。
- OXTS RT3003 组合导航系统。


ROS 可视化工具:RViz
RViz 是 ROS 标准 3D 可视化工具,可以显示:
- 激光雷达点云。
- 相机图像。
- 地图。
- 机器人模型。
- 机器人状态、轨迹规划和环境模型。
打开配置文件示例:
/home/robot/ros2_ws/src/ros2_kitti_publishers/rviz/default.rviz

ROS 可视化工具:rqt
rqt 是基于 Qt 的 GUI 工具框架,提供多种插件:
- 话题数据可视化。
- 参数查看和调节。
- 图像视图。
- 系统监控。
课堂中使用:
Plugins -> Visualization -> Image View

ROS2 KITTI 实验
代码仓库:
https://github.com/ai-robot-class/ros2_kitti_publishers.git
步骤:
- 下载代码。
- 选择分支:
main对应 Ubuntu 22,ubuntu24对应 Ubuntu 24。 - 编译。
- 初始化环境。
- 运行发布节点。
- 用 RViz / rqt 读取和可视化数据。
数据路径
数据保存路径:
~/ros2_ws/data
注意:由于 Windows 11 WSL2 文件复制可能存在问题,建议先解压压缩文件,再复制 2011_09_26 文件夹到 VS Code 中打开的 data 目录下,注意目录层级。

编译、初始化与运行
cd ~/ros2_ws
colcon build --cmake-clean-cache
source ./install/setup.bash
ros2 run ros2_kitti_publishers kitti_publishers

作业
- 完成 GitHub push。
- 在
https://cyber.shinhan.ac.kr/提交本次课不理解的问题。 - 如果 WSL2 Ubuntu 仍然无法使用,请及时反馈。