[光学原理与应用-505]:RViz2 激光雷达 TF 坐标轴解析(T‑MINI‑PLUS)

[光学原理与应用-505]:RViz2 激光雷达 TF 坐标轴解析(T‑MINI‑PLUS)

RViz2 激光雷达 TF 坐标轴解析(T‑MINI‑PLUS)

从截图:Fixed Frame = laser,右侧红色就是 LaserScan 激光点云;

中间彩色坐标轴就是laser坐标系 TF 坐标轴

1、ROS 标准激光雷达坐标系规范(sensor_msgs/LaserScan)

二维激光雷达通用右手坐标系:

  • X 轴(红色):雷达正前方,激光 0° 角度方向(开孔的方向)
  • Y 轴(绿色):雷达左侧
  • Z 轴(蓝色):垂直向上(垂直雷达扫描平面朝上)

角度定义:

  • 0° → +X(正前方)
  • 逆时针旋转角度增大:90° → +Y(左侧);180° → -X(后方);270° → -Y(右侧)

看截图:中间 TF 坐标轴:红 = X,绿 = Y,蓝 = Z。

2、结合 T‑MINI‑PLUS 实物对应关系

  1. 雷达顶部旋转顶盖:0°(X 正方向) 是雷达硬件定义的角度零点

⚠️重要坑点:T‑MINI PLUS 出厂硬件零点,不一定对齐外壳物理缺口 / 标记RViz 看到的 X 正方向,是雷达内部霍尔传感器的角度零点,不是外壳某个缺口。可以在 yaml 配置文件设置angle_offset角度偏移,用来旋转点云,把 X 轴对齐外壳物理前方。

yaml 参数(ydlidar_ros2_driver_params.yaml)

yaml

angle_offset: 0.0 # 角度偏移,单位弧度;用来旋转整个点云,修正零点

例如:点云 0° 指向雷达右侧,你希望 X 轴指向外壳正前方,填入对应偏移弧度。

3、截图现象解读

  1. Fixed Frame 设置为laser,RViz 直接以雷达自身坐标系作为参考,没有绑定base_link小车本体坐标系。
  2. 方框红色点云:四周墙壁,形成闭环方框;中间彩色短轴就是laser坐标系原点(雷达物理中心位置)。
  3. TF 组件勾选,所以能看到 RGB 坐标轴箭头。

4、机器人小车工程标准配置

实际小车项目,不能一直用laser作为 fixed_frame,需要做 TF 树:

plaintext

base_link(小车本体中心) → laser(雷达)

通过robot_state_publisher/static_transform_publisher 发布静态 TF,描述雷达安装在车体什么位置(x,y,z,roll,pitch,yaw)。

  • RViz Fixed Frame 改为base_link
  • LaserScan 消息会依靠 TF 变换投影到车体坐标系。

常见故障

  1. 点云旋转 90 度:雷达安装旋转,没有设置angle_offset或者静态 TF 的 yaw 角度。
  2. 点云和 TF 坐标轴错位:angle_offset参数配置错误。
  3. 点云看起来是镜像:雷达安装上下颠倒,pitch=3.14。

5、快速调试零点的操作

  1. RViz 固定 Frame=laser;
  2. 拿一个障碍物放在你希望作为雷达正前方的外壳方向;
  3. 观察 RViz 中点云障碍物出现在哪个角度;
  4. 修改angle_offset,重新 launch 驱动,直到障碍物出现在 X 轴(红色箭头)正方向。

补充:T‑MINI‑PLUS 硬件零点是转子霍尔上电复位位置,每次上电,硬件零点会有微小随机偏差(机械霍尔复位),工业雷达有编码器,没有这个问题;科研低成本 TOF 雷达会有这个特性。