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 实物对应关系
- 雷达顶部旋转顶盖: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、截图现象解读
- Fixed Frame 设置为
laser,RViz 直接以雷达自身坐标系作为参考,没有绑定base_link小车本体坐标系。 - 方框红色点云:四周墙壁,形成闭环方框;中间彩色短轴就是
laser坐标系原点(雷达物理中心位置)。 - 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 变换投影到车体坐标系。
常见故障
- 点云旋转 90 度:雷达安装旋转,没有设置
angle_offset或者静态 TF 的 yaw 角度。 - 点云和 TF 坐标轴错位:
angle_offset参数配置错误。 - 点云看起来是镜像:雷达安装上下颠倒,pitch=3.14。
5、快速调试零点的操作
- RViz 固定 Frame=laser;
- 拿一个障碍物放在你希望作为雷达正前方的外壳方向;
- 观察 RViz 中点云障碍物出现在哪个角度;
- 修改
angle_offset,重新 launch 驱动,直到障碍物出现在 X 轴(红色箭头)正方向。
补充:T‑MINI‑PLUS 硬件零点是转子霍尔上电复位位置,每次上电,硬件零点会有微小随机偏差(机械霍尔复位),工业雷达有编码器,没有这个问题;科研低成本 TOF 雷达会有这个特性。