第5周:传感器与感知基础

课时: 6小时(第一次课3小时 + 第二次课3小时)


📋 本周课程表

次序 时间 主题 内容
第1次 3小时 常用传感器介绍 激光雷达、相机、超声波等
第2次 3小时 RViz可视化实战 数据显示、可视化工具使用

第一次课:常用传感器介绍(3小时)

⏱️ 时间分配

环节 时间 内容
复习 20分钟 上周内容回顾
讲解 60分钟 传感器分类
讲解 60概述与分钟 激光雷达详解
茶歇 10分钟 休息
讲解 30分钟 相机与图像传感器

2.2.1 常用传感器介绍(60分钟)

传感器的分类

机器人传感器分类:

┌─────────────────────────────────────────────────────────────┐
│                     机器人传感器                              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌────────────────┐    ┌────────────────┐                │
│  │   外部传感器    │    │   内部传感器    │                │
│  │  (感知环境)    │    │  (感知自身)    │                │
│  └───────┬────────┘    └───────┬────────┘                │
│          │                      │                          │
│    ┌─────┴─────┐         ┌─────┴─────┐                   │
│    │           │         │           │                   │
│  激光雷达    相机         里程计      IMU                  │
│  超声波      触觉         编码器      陀螺仪               │
│  红外        深度相机     电流       磁力计               │
│                                                             │
└─────────────────────────────────────────────────────────────┘

常用传感器一览

传感器 类型 功能 典型应用
激光雷达 外部 测距、避障 扫地机器人、无人车
相机 外部 成像、识别 视觉导航、目标检测
深度相机 外部 3D成像 室内导航、抓取
超声波 外部 测距 避障、定高
里程计 内部 测位移 定位、导航
IMU 内部 测姿态 稳定控制、航向

2.2.2 激光雷达(LiDAR)(60分钟)

什么是激光雷达?

LiDAR = Light Detection and Ranging

通过发射激光并接收反射光来测量距离

激光雷达工作原理:

    发射器                          接收器
      │                               │
      │  发射激光脉冲                  │
      ├──────────────────────────────►│
      │              │                │
      │   障碍物    │                │
      │      □      │                │
      │◄─────────────┤ 反射光         │
      │              │                │
      │    计算距离:                   │
      │    距离 = 光速 × 时间 / 2     │
      │                               │

激光雷达类型

类型 特点 应用
2D激光雷达 水平扫描一圈 室内机器人
3D激光雷达 360°×垂直扫描 自动驾驶
固态激光雷达 无旋转部件,可靠性高 新一代机器人
三角测距 精度高,距离近 工业检测

激光雷达数据

# sensor_msgs/LaserScan 消息
std_msgs/Header header
    time stamp
    string frame_id  # "laser_frame"

float32 angle_min        # 扫描起始角度 (rad)
float32 angle_max        # 扫描结束角度 (rad)
float32 angle_increment  # 角度增量 (rad)
float32 time_increment   # 时间增量 (s)
float32 scan_time        # 扫描时间 (s)
float32 range_min        # 最小距离 (m)
float32 range_max        # 最大距离 (m)

float32[] ranges         # 距离数据 (m)
float32[] intensities    # 反射强度

查看激光雷达数据

# 查看激光雷达话题
ros2 topic list | grep scan

# 监听激光数据
ros2 topic echo /scan

# 输出示例:
# angle_min: 0.0
# angle_max: 6.283
# angle_increment: 0.0174
# ranges: [1.2, 1.3, 1.1, 0.9, ...]  # 360个点

2.2.3 相机与图像(30分钟)

相机类型

类型 输出 应用
单目相机 2D图像 识别、检测
双目相机 2D图像+深度 测距、导航
深度相机 3D点云 室内导航、抓取
事件相机 动态像素 高速追踪

图像消息

# sensor_msgs/Image 消息
std_msgs/Header header
    uint32 seq
    time stamp
    string frame_id

uint32 height        # 图像高度 (像素)
uint32 width         # 图像宽度 (像素)
string encoding      # 编码格式: "rgb8", "mono8", "bgr8"...
uint8 is_bigendian  # 字节序
uint32 step         # 一行像素的字节数
uint8[] data        # 图像数据

第二次课:RViz可视化实战(3小时)

⏱️ 时间分配

环节 时间 内容
复习 20分钟 传感器知识回顾
讲解 40分钟 RViz介绍与安装
演示 30分钟 RViz基本操作
实践 80分钟 可视化实验
茶歇 10分钟 休息
实践 60分钟 综合练习

2.2.4 RViz可视化工具(40分钟)

什么是RViz?

RViz = ROS Visualization

ROS的三维可视化工具,可以显示机器人模型、传感器数据、地图等

RViz界面:

┌─────────────────────────────────────────────────────────────┐
│  ┌──────────┐  ┌─────────────────────────────────────────┐  │
│  │ Displays │  │                                         │  │
│  │          │  │                                         │  │
│  │ [+] RobotModel   3D视图区域                      │  │
│  │ [+] LaserScan    显示激光雷达数据              │  │
│  │ [+] Image        显示相机图像                  │  │
│  │ [+] PointCloud   显示点云                       │  │
│  │ [+] Odometry     显示里程计                     │  │
│  │ [+] Map          显示地图                        │  │
│  │          │  │                                         │  │
│  └──────────┘  └─────────────────────────────────────────┘  │
│  ┌──────────────────────────────────────────────────────┐   │
│  │ Toolbar │ Time │ Statusbar                          │   │
│  └──────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

启动RViz

# 启动RViz
rviz2

# 或者指定配置文件
rviz2 -d my_config.rviz

常用显示项

显示项 话题 说明
RobotModel - 显示机器人3D模型
LaserScan /scan 显示激光雷达数据
Image /camera/image_raw 显示相机图像
PointCloud2 /points 显示3D点云
Odometry /odom 显示里程计轨迹
Map /map 显示栅格地图

2.2.5 可视化实验(80分钟)

实验1:显示Turtlesim

# 启动Turtlesim
ros2 run turtlesim turtlesim_node

# 启动RViz
rviz2

# 在RViz中:
# 1. 添加显示项 → RobotModel
# 2. 添加显示项 → Pose
# 3. 设置Fixed Frame为 "world"

实验2:显示激光雷达数据

# 启动Gazebo仿真(带激光雷达)
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

# 在RViz中添加LaserScan显示项

实验3:显示相机图像

# 启动相机
ros2 run image_transport republish raw

# 在RViz中添加Image显示项

本周实验报告

✅ 验收清单

序号 实验 要求 完成
1 了解传感器分类 能说出5种以上传感器
2 理解激光雷达原理 能解释测距原理
3 启动RViz 能正常运行
4 显示Turtlesim 能看到机器人模型
5 添加显示项 能显示激光/图像/点云

本周作业

📝 理论题

  1. 列举3种外部传感器和3种内部传感器
  2. 激光雷达和超声波传感器的区别是什么?

💻 实践题

  1. 用RViz显示一个话题的数据
  2. 尝试保存RViz配置

知识点速查表

┌─────────────────────────────────────────────────────────────┐
│                    第5周知识点速查                           │
├─────────────────────────────────────────────────────────────┤
│  传感器                                                          │
│  ├── 外部传感器 = 感知环境                                   │
│  ├── 内部传感器 = 感知自身                                   │
│  ├── 激光雷达 = 发射激光测距                                 │
│  └── 相机 = 获取图像                                         │
├─────────────────────────────────────────────────────────────┤
│  RViz                                                           │
│  ├── RobotModel = 显示机器人模型                             │
│  ├── LaserScan = 显示雷达数据                                │
│  ├── Image = 显示相机图像                                    │
│  └── PointCloud2 = 显示3D点云                               │
└─────────────────────────────────────────────────────────────┘

📚 课后阅读


下周预告

第6周:闭环控制初探

  • 什么是闭环控制
  • 传感器与控制结合
  • 简单避障逻辑

第5周结束!

results matching ""

    No results matching ""