uBot
用 Unreal Engine 搭建具身智能仿真:高质量场景、多种传感器,可接入 ROS 2、MuJoCo、PhysX 等,以插件的方式按需组合。
连线:
- On 3DLidar Frame Ready (Lidar3D) 的 执行,连到 Branch 的 执行
- On 3DLidar Frame Ready (Lidar3D) 的 Frame,连到 Get Point by Index 的 Target
- Get Point by Index 的 Return Value,连到 Branch 的 Condition
- Get Point by Index 的 Point Meters,连到 Vector Length 的 A
- Vector Length 的 Return Value,连到 To String (Float) 的 In Double
- Branch 的 True,连到 Print String 的 执行
- To String (Float) 的 Return Value,连到 Print String 的 In String
- On Imu Data Updated (IMU) 的 Data,连到 Break UBot Imu Sensor Data 的 UBot Imu Sensor Data
- Break UBot Imu Sensor Data 的 Orientation Quaternion,连到 ToRotator (Quat) 的 Q
- ToRotator (Quat) 的 Return Value,连到 Break Rotator 的 Rotation
On 3DLidar Frame Ready (Lidar3D)
uBot 3D LiDAR Sensor · UBotSensor
每次产生有效帧后触发,Frame 是这一帧点云。
输出
- 执行
- Frame
UBot Point Cloud Frame对象引用
查看参考UUBot3DLidarSensorComponent.On3DLidarFrameReady
Branch
UE 引擎 · 中文界面:分支
Branch Statement If Condition is true, execution goes to True, otherwise it goes to False
输入
- 执行
- Condition
Boolean
输出
- True
- False
查看参考K2Node_IfThenElse
Print String
UE 引擎 · 中文界面:打印字符串
Prints a string to the log, and optionally, to the screen If Print To Log is true, it will be visible in the Output Log window. Otherwise it will be logged only as 'Verbose', so it generally won't show up.
输入
- 执行
- In String
String - Print to Screen
Boolean - Print to Log
Boolean - Text Color
Linear Color结构体 - Duration
Float - Key
Name
输出
- 执行
查看参考UKismetSystemLibrary.PrintString
Get Point by Index
Target is UBot Point Cloud Frame · UBotSensor
按索引读取一个点:传感器坐标系下的位置(单位 m)、环号、时间偏移(单位 s)和强度。索引越界时返回 false。
输入
- Target
UBot Point Cloud Frame对象引用 - Index
Integer
输出
- Point Meters
Vector - Ring Index
Integer - Time Offset Seconds
Float - Intensity
Float - Has Intensity
Boolean - Return Value
Boolean
查看参考UUBotPointCloudFrame.GetPointByIndex
Vector Length
UE 引擎 · 中文界面:向量长度
Returns the length of the vector
输入
- A
Vector
输出
- Return Value
Float (double)
查看参考UKismetMathLibrary.VSize
To String (Float)
UE 引擎 · 中文界面:转换为字符串(浮点)
Converts a double value to a string
输入
- In Double
Float (double)
输出
- Return Value
String
查看参考UKismetStringLibrary.Conv_DoubleToString
On Imu Data Updated (IMU)
uBot IMU Sensor · UBotSensor
每次 IMU 采样后触发,包括无效样本。Data 是本次的完整数据。
输出
- 执行
- Data
UBot Imu Sensor Data结构体
查看参考UUBotImuSensorComponent.OnImuDataUpdated
Break UBot Imu Sensor Data
UBotSensor
把 UBot Imu Sensor Data 拆成帧头、姿态、角速度、比力和三组方差。
输入
- UBot Imu Sensor Data
UBot Imu Sensor Data结构体
输出
- Header
UBot Frame Header结构体 - Orientation Quaternion
Quat结构体 - Angular Velocity Rad Per Second
Vector - Linear Acceleration Meters Per Second Squared
Vector - Orientation Variance
Vector - Angular Velocity Variance
Vector - Linear Acceleration Variance
Vector
查看参考Break:FUBotImuSensorData
ToRotator (Quat)
UE 引擎 · 中文界面:到旋转体(四元数)
Converts to Rotator representation of this Quaternion.
输入
- Q
Quat结构体
输出
- Return Value
Rotator
查看参考UKismetMathLibrary.Quat_Rotator
Break Rotator
UE 引擎 · 中文界面:拆分旋转体
Breaks apart a rotator into {Roll, Pitch, Yaw} angles in degrees
输入
- Rotation
Rotator
输出
- X (Roll)
Float - Y (Pitch)
Float - Z (Yaw)
Float
查看参考UKismetMathLibrary.BreakRotator
uBot 的特色
Section titled “uBot 的特色”高质量场景
结合 UE 的 Lumen 和 Nanite 渲染大规模场景,可使用 Fab 上的资产,相机画面接近真实。
原版 UE 即可使用
以插件形式安装在原版 UE 5.5 上,uBot Manager 提供预编译包,免去编译。
对新手友好
功能在蓝图中即可使用,无需编写 C++,文档提供对应的节点图。
统一的时间与数据
仿真时钟支持固定步长、暂停和单步;每帧数据携带序号、时间戳和状态码。
模拟多种复杂真实环境
例如烟雾会影响激光雷达和相机的感知。
可接入 ROS 2、MuJoCo 等
实机上使用的 ROS 2 算法可以连接到仿真;MuJoCo、PhysX 等物理引擎在规划中。
可按需选择插件,适配多种场景需求。各插件之间的依赖关系见简介。
- uBotCore帧头、仿真时钟、UE/ROS 坐标约定、通用接口与 Package 管理。0.1.2
- uBotSensor位姿、IMU、里程计、2D/3D 激光雷达、RGB 与深度相机。0.1.1
- uBotROS经 TCP 桥接 ROS 2:传感器、TF、/clock、cmd_vel。0.1.2
- uBotAerial多旋翼无人机:面向导航的简化飞控,带速度、姿态、角速度和电机控制的刚体动力学,风,以及示例无人机蓝图。0.1.0
- uBotVehicles差速与阿克曼地面车辆,基于 Chaos Vehicles。规划中
- uBotMuJoCo用 MuJoCo 计算关节型机器人的物理,结果映射回 UE。规划中
- uBotEnvironment烟雾、雾等影响感知的环境效果。规划中
- uBotMCP通过 MCP 向大模型开放传感器与执行器。规划中
- uBotLearning对接 UE Learning Agents。规划中
- uBotCombat炮塔、弹药、CIWS 等作战场景内容。规划中
uBot Manager 是安装 uBot 的入口:它在 UE 工程里选择、安装和更新插件,启动时检查新版本,并处理插件之间的依赖。目前提供 Windows 版本,到 Releases 页面下载安装包,安装步骤见安装 uBot。
每个类、节点和属性的完整说明在参考里,按名称找节点用节点索引。
GitHub 仓库
Section titled “GitHub 仓库”推荐用 uBot Manager 下载和管理 uBot:它为 UE 5.5 工程安装预编译的插件包,处理插件之间的依赖,并在有新版本时更新。GitHub 仓库用来查看源码、提交问题(Issues)和下载发布版本(Releases)。
Manager 的安装包在 uBotManager 的 Releases 页面,步骤见安装 uBot。
- uBotCore帧头、仿真时钟、UE/ROS 坐标约定、通用接口与 Package 管理。手册GitHub
- uBotSensor位姿、IMU、里程计、2D/3D 激光雷达、RGB 与深度相机。手册GitHub
- uBotROS经 TCP 桥接 ROS 2:传感器、TF、/clock、cmd_vel。手册GitHub
- uBotAerial多旋翼无人机:面向导航的简化飞控,带速度、姿态、角速度和电机控制的刚体动力学,风,以及示例无人机蓝图。手册GitHub
- uBotManager安装、更新和管理 uBot 插件的桌面程序。手册GitHub
- uBotDocs本站的源码:文档页面、API 数据和构建脚本。本站GitHub