Skip to the content.

第5周实验报告 —— 传感器与感知基础

一、实验信息


二、实验目的

通过本周学习,了解机器人常用传感器的基本原理和应用场景,掌握激光雷达与视觉传感器的数据特点,并能够利用RViz完成机器人传感器数据的可视化显示,为后续机器人定位、导航与控制学习打下基础。

具体目标如下:

  1. 掌握机器人传感器的分类方法;
  2. 理解激光雷达(LiDAR)的工作原理;
  3. 了解相机与图像传感器的基本知识;
  4. 学会使用ROS2命令查看传感器话题;
  5. 掌握RViz的基本使用方法;
  6. 完成激光雷达、图像和机器人模型的可视化显示。

三、实验内容

3.1 常用传感器介绍

机器人为了感知周围环境以及自身状态,需要使用各种类型的传感器。

(1)外部传感器

用于感知外界环境信息:

(2)内部传感器

用于感知机器人自身状态:

传感器应用场景

传感器 功能 应用
激光雷达 测距与建图 导航、避障
相机 图像采集 视觉识别
深度相机 获取深度信息 三维建图
超声波 距离检测 近距离避障
IMU 姿态测量 平衡控制
里程计 位置估计 定位导航

3.2 激光雷达(LiDAR)

工作原理

LiDAR(Light Detection and Ranging)即激光探测与测距。

其工作过程如下:

  1. 发射激光脉冲;
  2. 激光照射到障碍物表面;
  3. 激光反射返回接收器;
  4. 根据往返时间计算距离。

计算公式:

距离 = 光速 × 时间 ÷ 2

激光雷达类型

类型 特点
2D激光雷达 水平扫描
3D激光雷达 三维空间扫描
固态激光雷达 可靠性高
三角测距雷达 近距离高精度

查看激光雷达数据

查看系统中的扫描话题:

ros2 topic list | grep scan

监听激光雷达数据:

ros2 topic echo /scan

获取到的数据主要包含:

其中 ranges 数组保存每个方向对应的距离信息。


3.3 相机与图像传感器

相机是机器人视觉系统的重要组成部分。

常见相机类型

类型 输出
单目相机 RGB图像
双目相机 图像+深度
深度相机 点云数据
事件相机 动态像素事件

图像消息格式

ROS2中图像数据通常通过:

sensor_msgs/Image

进行传输。

主要字段包括:

height
width
encoding
data

图像编码常见格式:

rgb8
bgr8
mono8

四、RViz可视化实验

4.1 RViz简介

RViz是ROS生态系统中最常用的三维可视化工具。

主要功能:

启动命令:

rviz2

加载配置文件:

rviz2 -d my_config.rviz

4.2 实验一:显示Turtlesim

启动Turtlesim:

ros2 run turtlesim turtlesim_node

启动RViz:

rviz2

完成以下配置:

实验结果

成功启动Turtlesim并完成RViz连接,能够实时显示海龟位置变化。


4.3 实验二:显示激光雷达数据

启动仿真环境:

ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py

在RViz中:

实验结果

成功显示激光雷达扫描数据,能够观察周围障碍物轮廓。


4.4 实验三:显示相机图像

启动图像节点:

ros2 run image_transport republish raw

在RViz中:

实验结果

成功接收并显示实时图像数据。


五、实验成果展示

成果1:RViz启动成功

成果2:激光雷达数据显示

成果3:图像数据显示


六、实验总结

通过本周课程学习,我系统了解了机器人感知系统中常见传感器的工作原理及应用场景,重点掌握了激光雷达和视觉传感器的基本知识。

在实践过程中,我学会了利用ROS2命令查看传感器话题信息,并成功使用RViz完成机器人模型、激光雷达以及相机图像的可视化显示。通过观察实时传感器数据,我更加直观地理解了机器人如何感知环境并获取外界信息。

此外,本次实验还让我熟悉了RViz的基本操作流程,为后续学习SLAM、路径规划、导航控制等内容奠定了良好的基础。


七、作业答案

理论题

1. 列举3种外部传感器和3种内部传感器

外部传感器:

内部传感器:

2. 激光雷达和超声波的区别

项目 激光雷达 超声波
原理 激光反射 声波反射
精度 一般
距离 较远 较近
成本
应用 导航建图 简单避障

八、心得体会

本周课程让我第一次系统接触机器人感知系统。通过学习激光雷达和视觉传感器,我认识到传感器是机器人获取环境信息的重要来源,而RViz则帮助我们直观地观察这些数据。未来在学习导航与控制时,我将进一步理解传感器数据如何参与机器人的决策过程。