uBotSensor 概述
需要:uBotSensor 0.1.x(含依赖 uBotCore)
uBotSensor 给 Actor 装上仿真传感器,在蓝图里读取位姿、里程计、IMU、激光雷达和相机的数据,不需要写代码。
每种传感器都是一个组件,在「Components」面板里添加即可。点传感器名进入它的页面:
| 传感器 | 主要输出 | 事件 | 默认频率 |
|---|---|---|---|
| 位姿传感器 | 位置(m)、姿态四元数、可选线速度和角速度 | On Pose Data Updated |
30 Hz |
| 里程计 | 相对起点的位姿(m)、本地坐标系下的速度、协方差 | On Odometry Data Updated |
30 Hz |
| IMU 传感器 | 姿态四元数、角速度(rad/s)、比力(m/s²)、方差 | On Imu Data Updated |
100 Hz |
| 2D 激光雷达 | 每个角度的距离(m)、命中标志、强度 | On 2DLidar Frame Ready |
10 Hz |
| 3D 激光雷达 | 命中点(m)、环号、强度 | On 3DLidar Frame Ready |
10 Hz |
| RGB 相机 | BGRA8 图像,像素按需读回 CPU |
On Image Frame Ready |
30 Hz |
| 深度相机 | Depth32FC1 深度图(m),0 表示无效 |
On Image Frame Ready |
30 Hz |
所有传感器共用同一套启动、停止、通用事件和帧头,见传感器通用用法。另有两项功能:相机采集协调器让多个相机在同一时刻采集,感知介质让烟雾干扰激光雷达和相机。
已发布 最新版本 0.1.1
用 uBot Manager 安装,依赖会一并装好。安装后传感器组件在「Add」菜单的「uBot」分类下,显示名形如 uBot IMU Sensor。
插件本身不含 ROS 代码,输出是 UE 原生的结构体和对象,单位是米、秒、弧度。把数据发布到 ROS 用 uBotROS。
Get Sensor Type 返回的类型键用来在 C++ 或蓝图里区分传感器:
| 组件 | 类型键 | 作用 |
|---|---|---|
uBot Pose Sensor |
Pose |
输出组件自身的位姿 |
uBot Odometry Sensor |
Odometry |
输出被跟踪组件相对起点的位姿和速度 |
uBot IMU Sensor |
IMU |
输出姿态、角速度和比力 |
uBot 2D LiDAR Sensor |
Lidar2D |
在本地 XY 平面上扫描 |
uBot 3D LiDAR Sensor |
Lidar3D |
按视场和线数扫描,输出点云 |
uBot RGB Camera Sensor |
RGBCamera |
渲染彩色图像 |
uBot Depth Camera Sensor |
DepthCamera |
渲染深度图像 |
uBot Camera Capture Coordinator |
让同组相机统一触发,共用序号和时间戳 | |
UBot Sensor Component |
所有传感器的基类,共有的节点和属性 | |
UBot 2DLidar Frame |
一次 2D 扫描的数据 | |
UBot Point Cloud Frame |
一次 3D 扫描的点云 | |
UBot Image Frame |
一次相机采集的图像 |
- 五分钟上手:给 Actor 加一个 IMU,在屏幕上看到采样序号。
- 传感器通用用法:所有传感器共有的属性和事件。
- 性能与采样频率:激光雷达和相机的开销,采样频率怎么选。
- 发布传感器数据:把传感器数据发布到 ROS 2。
- uBotSensor 常见问题:采样、蓝图和数据方面的常见问题。