系统概览 ======== .. figure:: images/architecture.svg 晋级赛竞赛测试系统采用分布式计算架构,由多个Docker容器组成。 主服务运行于 :code:`tzdx2023/main` 容器实例中,是晋级赛竞赛测试系统的核心,协调其他模块工作,并提供用户界面监控系统健康状态、控制比赛过程。 一个或多个 :code:`tzdx2023/scene-sim` 场景仿真容器实例,提供竞赛测试环境,以及无人平台物理运动和传感器的虚拟仿真。 一个 :code:`tzdx2023/comm-sim` 通信仿真容器实例,用于多个无人平台之间的无线通信,模拟通信距离、通信障碍等对数据传输的影响。 主服务和各个仿真容器实例运行在同一局域网内。主服务模块需要对外公开IP地址和网络端口。 每一个无人平台对应一个 :code:`tzdx2023/bridge` 算法接口容器实例,内部提供竞赛系统接口,同时运行参赛队自主探测算法。各个算法接口容器运行于独立的局域网中,以保证参赛队自主探测算法只能通过竞赛系统提供的专用通信接口实现多无人平台间通信,不能绕过竞赛系统直接通信。 参赛队自主探测算法使用 `Robot Operating System(ROS) `_ 与晋级赛竞赛测试系统交互,接收无人平台传感器数据输入,控制无人平台执行器运动,实现无人平台间数据通信,同步时钟,控制比赛过程,提交算法数据等。 竞赛系统的工作方式为:主服务加载并解析仿真配置文件,分解具体仿真任务到各个场景仿真以及通讯仿真容器实例,并通过算法接口容器实例与无人平台自主探测算法进行交互。 竞赛测试系统和竞赛评价系统的具体使用方法,详见 :doc:`quick-start` 、 :doc:`docker-images` 、:doc:`configuration` 和 :doc:`components`。竞赛测试系统向参赛队自主探测算法公开的数据接口协议,比赛控制数据接口协议详见 :doc:`match-control` ,传感器和运动控制数据协议详见 :doc:`components` ,过程数据接口协议详见 :doc:`ros-messages` 。