快速使用
推荐运行环境
操作系统:Ubuntu 20.04及以上
容器引擎:Docker 23及以上
运行内存:不少于16GB
可用硬盘空间:不少于64GB
GPU硬件:建议使用NVIDIA RTX 4090
组建计算集群
根据选用的无人平台组件类型和用量,组建足够多节点的计算集群。计算集群至少包含1个计算节点。
在多节点集群中,计算节点之间使用nfs进行文件共享,默认共享的文件夹为 /nfsroot
。
下载竞赛系统文件
从“挑战地下2023”赛事官方网站 软件下载 页,下载晋级赛竞赛测试系统计算集群节点守护程序和Docker镜像文件,放置于 /nfsroot
文件夹中。
启动主服务
在集群任一节点上启动主服务
export SERVER_IP=<SERVER_IP>
export RENDER_SCENES=<CONTAINER_NAMES>
docker load < tzdx2023_main_1.0.tar.gz
docker run -it --rm -v /nfsroot:/nfsroot -p 2000:2000 -p 8000:80 -e SERVER_IP=$SERVER_IP tzdx2023/main:1.0
主服务启动后,即可在同一局域网内,使用网页浏览器打开 http://<SERVER_IP>:8000
地址,访问晋级赛竞赛测试系统用户界面。其中 SERVER_IP
是运行主服务的物理主机IP地址; CONTAINER_NAMES
为允许可视化渲染显示的仿真容器名称列表,逗号分隔,例如 scene-sim-0
。
启用集群节点
在每一个可用于仿真和算法测评的集群节点上运行如下命令,在主服务中注册可用的计算资源,并接收和执行主服务的资源调用。
pip3 install --upgrade psutil pynvml docker
python3 node.py --name <NODE_NAME> --main <SERVER_IP>
其中 NODE_NAME
为用户自定义的集群节点名称(可选,默认为 $HOSTNAME
), SERVER_IP
是运行主服务的物理主机IP地址。
通过晋级赛竞赛测试系统用户界面的资源监控页面,可以查看已启动的所有集群节点。
创建算法容器镜像
基于算法接口容器镜像,创建参赛队自主探测算法容器镜像。样例步骤如下:
加载Docker镜像文件,并启动容器实例,将主机中存放自主探测算法的 HOST_FOLDER
文件夹映射到容器内部 /tmp
文件夹(可以任意文件夹)
docker load < tzdx2023_bridge_humble_1.0.tar.gz
docker run -it --name example -v <HOST_FOLDER>:/tmp tzdx2023/bridge-humble:1.0
将算法程序复制进容器内部 /root/ros_ws
(可以任意文件夹)并编译
cp -r /tmp /root/ros_ws
cd /root/ros_ws
colcon build
编辑容器内部启动文件 /root/run.sh
,添加算法启动命令,例如:
ros2 run example_package example_node
打开新的终端,提交容器修改到镜像,
docker ps -a
docker commit <CONTAINER_ID>
其中 CONTAINER_ID
为完成自主探测算法集成的容器ID。提交后,可通过 docker images
查看生成的镜像ID。然后保存镜像到文件:
docker images
docker save <IMAGE_ID> -o example.tar.gz
其中 IMAGE_ID
为生成的镜像ID。将镜像文件 example.tar.gz 移动到 /nfsroot/match 文件夹中。
将容器镜像文件移动到 /nfsroot/match
文件夹中。
编辑无人平台配置文件
在无人平台配置文件中,设置 example.tar.gz
为虚拟无人平台所对应的自主探测算法
<model>
...
<docker_image>example.tar.gz</docker_image>
</model>
将无人平台配置文件复制到 /nfsroot/match
文件夹中,文件名为 config.sdf
。
无人平台配置文件样例可从 这里 下载。
加载无人平台配置文件
在运行主服务的物理主机的同一局域网内,使用网页浏览器打开 http://<SERVER_IP>:8000
晋级赛竞赛测试系统用户界面。
进入“测试配置”页面,点击“加载配置文件”按钮。主服务自动解析 /nfsroot/match/config.sdf
配置文件,页面上将显示无人平台组件结构树,以及场景中的ROS话题。
启动测试
晋级赛竞赛测试系统用户界面的“比赛控制”页面,点击“启动测试”按钮。竞赛系统将在计算集群中启动算法测试所需的Docker容器,包括每个参赛队无人平台对应的自主探测算法容器。
根据晋级赛比赛规则,所有算法容器正常启动1分钟后,竞赛系统将自动发出开始赛前准备信号,进入赛前准备。参赛队也可人工干预比赛过程,点击相应按钮手动控制比赛过程。
打包算法并上传
参赛队完成虚拟无人平台配置和相应自主探测算法研发后,将配置文件和算法容器镜像文件以如下文件结构打包,并上传至竞赛官方网站,进行算法测试和评估。
<PackageName>.tar.gz
. config.sdf
. <ImageName1>.tar.gz
. <ImageName2>.tar.gz
. ...
其中 PackageName
可以为任意有效的文件名。ImageName
可以为任意有效的文件名,并在 config.sdf
中通过 <docker_image>
标签正确引用。