跳转至

TongSIM 工作原理概览

TongSIM Lite 采用典型的 Client–Server(客户端-服务端) 架构:

  • 服务端(Unreal Engine) 负责运行仿真世界,并通过 gRPC 对外提供能力接口
  • 客户端(Python SDK) 连接服务端并发起 RPC 调用(生成/移动/查询/体素等)
Unreal Engine(TongSIM Lite)                Python(tongsim)
┌──────────────────────────┐                ┌──────────────────────┐
│ TongSimCore + TongSimGrpc│  gRPC/protobuf  │ TongSim / UnaryAPI    │
│ 世界状态 & 物理           │ <-------------> │ examples/*.py         │
└──────────────────────────┘                └──────────────────────┘

连接地址

  • 客户端默认:127.0.0.1:5726
  • 服务端监听:0.0.0.0:5726(监听所有网卡)

Unreal 侧(服务端)

服务端主要负责:

  • 管理世界状态(关卡、Actor、物理、导航、感知等)
  • 执行动作与任务(移动/导航/拾取/射线检测/体素查询等)
  • 通过 gRPC 将结果返回给客户端

运行方式:

  • 打开 unreal/TongSim_Lite.uproject
  • 在 Editor 中点击 Play(PIE),此时 gRPC 服务通常可用

Python 侧(客户端)

客户端主要负责:

  • 连接 UE 端 endpoint
  • 调用高层 RPC 封装(例如 UnaryAPI.reset_levelUnaryAPI.spawn_actorUnaryAPI.query_voxel
  • 编写实验/训练循环(见 examples/

控制台命令

SDK 提供 UnaryAPI.exec_console_command(...),可执行 UE 控制台命令(如 stat fpsopen <level>)。 快速开始脚本 examples/quickstart_demo.py 会使用该能力自动切换到示例关卡。


推荐工作流

  1. 在 Unreal Editor 中点击 Play
  2. 运行 examples/ 下的 Python 脚本
  3. 迭代优化:
    • UE 侧:地图/蓝图/资产/交互逻辑
    • Python 侧:策略/算法/数据采集/评测脚本

Tutorials

当你已经能成功运行 examples/quickstart_demo.py,建议继续阅读 Tutorials:

  • 单智能体 RL 导航 — 面向室内多房间场景的探索与导航任务,提供 Gymnasium 风格环境封装与 Stable-Baselines3 baseline。 从这里开始:任务概览
  • 多智能体 RL 导航 — 基于轻量化 XuanCe 适配的 MACS 协作任务,强调部分可观测条件下的协同与决策。 从这里开始:任务概览

下一步: 单智能体 RL 导航 · 多智能体 RL 导航