RCSSServerMJ 入门指南

面向零基础读者。读完这篇文档,你将理解仿真服务器的核心概念,并能开始阅读 RCSSServerMJ 的源码。 源代码地址:robocup-sim/rcssservermj 后续阅读:理解服务器之后,可以继续读 Janus 客户端入门指南,看客户端如何接收感知、做决策并发送动作。 快速阅读路线 10 分钟速读:先看“第一章:什么是物理仿真”“第二章:Client-Server 架构”和“第八章:完整数据流”,建立服务器整体图景。 30 分钟入门:按网络通信、消息协议、仿真主循环、感知与动作这条线读,理解服务器和客户端每 20ms 如何交换信息。 深入阅读:再看 PlayMode、Beam、场地规格和“服务端 ↔ 客户端代码对应关系”,适合准备对照源码调试比赛逻辑。 第一章:什么是物理仿真 物理引擎 (Physics Engine) 是什么 想象一个虚拟世界——里面有地面、一个足球、一个机器人。你把球推一下,它会滚动、减速、停下;机器人抬脚,重心会偏移、可能摔倒。 物理引擎就是负责计算这些的程序。它模拟真实世界的: 重力:物体会往下掉 碰撞:球碰到脚会弹开 摩擦:球在草地上会慢慢停下 关节约束:机器人的膝盖只能在一定范围内弯曲 你可能在游戏中见过物理引擎(比如 Unity 的 PhysX)。RoboCup 用的 MuJoCo(Multi-Joint dynamics with Contact)是一个专门用于机器人和控制研究的高精度物理引擎,由 DeepMind 维护。 仿真步进 (Simulation Step) 物理引擎不是连续运算的,而是离散地推进时间: 1 时刻 0.000s → 计算 → 时刻 0.020s → 计算 → 时刻 0.040s → ... 每一"步"(step),引擎会: 读取所有物体当前的位置、速度 读取施加在物体上的力(比如电机的扭矩) 根据牛顿力学算出 0.020 秒后所有物体的新位置、新速度 这个时间间隔越小,仿真越精确,但计算量越大。RCSSServerMJ 默认每步 20ms,内部还会细分为多个 substep 来提高精度。 ...

April 15, 2026 · 9 min