在 RViz 中可视化 LaserScan(通常来自 sensor_msgs/LaserScan)消息时,左侧属性面板中会列出许多参数,这些属性控制激光雷达点云的显示方式和外观。下面是各个属性的详细解释:

🧩 一、基础属性(Common)
| 属性 | 说明 |
|---|---|
| Topic | 要订阅的 ROS 话题名,例如 /scan。必须与发布 sensor_msgs/LaserScan 的话题一致。 |
| Unreliable | 是否允许使用不可靠的(UDP)连接(即 ros::TransportHints().unreliable())。一般保持关闭即可。 |
| Queue Size | 订阅消息的队列长度,控制缓冲消息数量。数值越大,占用内存越多,但丢包几率越低。 |
🌈 二、Style(显示风格)
这是最重要的一组设置,决定雷达数据在 RViz 中如何显示。
| 属性 | 说明 |
|---|---|
| Style | 点的显示模式,常见选项如下: • Points (点)--- 显示每个激光点为小圆点。 • Squares (方块)--- 每个激光点是方形。 • Flat Squares (平面方块)--- 类似方块,但在平面上显示(贴地)。 • Spheres (球形)--- 每个点用球体显示,三维感更强。 • Arrows --- 每个点显示一个箭头(表示方向)。 |
| Size (m) | 每个点或方块的尺寸(单位:米)。数值太大可能导致点重叠。 |
| Alpha | 透明度(0.0--1.0)。1.0 表示完全不透明。 |
| Decay Time | 数据的"衰减时间"(秒)。如果设置为 > 0,旧数据会在此时间后逐渐消失,形成"动态"效果。设置为 0 表示始终显示最近一次扫描。 |
🎨 三、Color(颜色控制)
| 属性 | 说明 |
|---|---|
| Color Transformer | 控制如何为激光点上色。常见选项如下: • FlatColor :所有点使用相同颜色。 • Intensity :根据激光反射强度上色(需要消息中有 intensities 字段)。 • AxisColor :根据点在 X/Y/Z 方向上的位置上色(例如根据高度或角度)。 • Range:根据距离上色(近距离为一种颜色,远距离为另一种)。 |
| Color | 当 Color Transformer = FlatColor 时使用的固定颜色。 |
| Min Intensity / Max Intensity | 当 Color Transformer = Intensity 时的强度范围映射,用于控制颜色梯度。 |
| Use Rainbow | 若启用,则颜色从红到紫呈彩虹渐变,否则使用灰度。 |
🧭 四、位置与方向
| 属性 | 说明 |
|---|---|
| Position Transform | 通常显示为 "XYZ" 或 "Fixed Frame";用于确定点云在 RViz 世界坐标中的位置。 |
| Frame | 消息的参考坐标系(通常为 base_laser 或 base_link)。必须与 RViz 的 "Fixed Frame" 保持 TF 可变换。 |
🧰 五、辅助属性
| 属性 | 说明 |
|---|---|
| Selectable | 是否允许单击选择单个激光点。 |
| Autocompute Intensity Bounds | 当启用时,自动根据当前扫描数据计算最小/最大强度范围(用于颜色映射)。 |
| Use rainbow | 控制是否使用彩虹色带(Intensity 模式下常用)。 |
| Invert Rainbow | 反转彩虹色顺序。 |
| Axis Color | 当使用 AxisColor 模式时选择哪个轴决定颜色变化(X/Y/Z)。 |
🧠 补充说明:LaserScan → PointCloud2 转换
RViz 实际上内部会把 LaserScan 数据转换为点云来显示。
每个激光点的 3D 坐标通过以下公式计算:
x=rangei⋅cos(anglei) x = range_i \cdot \cos(angle_i) x=rangei⋅cos(anglei)
y=rangei⋅sin(anglei) y = range_i \cdot \sin(angle_i) y=rangei⋅sin(anglei)
z=0 z = 0 z=0
range_i 和 angle_i 分别来自 ranges 和 angle_min + i * angle_increment。
因此在 RViz 中看到的其实是一个平面点云。
✅ 常用设置推荐
| 场景 | 推荐设置 |
|---|---|
| 调试激光数据分布 | Style=Points,Color Transformer=Range |
| 查看障碍物反射强度 | Style=Squares,Color Transformer=Intensity |
| 模拟真实雷达效果 | Style=Flat Squares,Decay Time=0.5 |
| 固定色展示 | Style=Spheres,Color Transformer=FlatColor,Color=Green |