虚拟赛车联赛

我们迈出了DIY Robocars竞赛的下一个步骤。我们现在在线上举办特别活动!我们欢迎来自世界各地的竞争者参加。活动将由Chris Anderson和Donkeycar维护人员安排。但这并不仅限于Donkeycar框架。请继续阅读,我们将提供两条路径,取决于您是否决定使用Donkeycar框架进行比赛。

race_previe

我们将通过Twitch直播比赛。请查看活动公告获取URL。比赛参与者将加入一个Zoom聊天活动群。Tawn将主持比赛服务器,并通过Zoom/Twitch分享比赛直播。让我们看看情况如何发展。

关于模拟服务器

我们使用开源项目SDSandbox作为赛车模拟器。它使用Unity游戏开发工具创建了一个3D环境。它使用NVidia PhysX开源物理引擎来模拟四轮车辆的动力学。该模拟器还充当服务器,监听TCP端口9091。它发送和接收JSON数据包。稍后会详细介绍API。

我们使用了一个类似OpenAI GYM的封装来与服务器进行交互。该封装的项目是gym-donkeycar

您可以从上述源代码构建服务器,也可以使用预编译的二进制文件(适用于Ubuntu、Mac和Windows)。该软件已在Ubuntu 18.04、Mac 10.13和Windows 10上进行了测试。

Donkeycar用户设置

如果您使用donkeycar框架进行比赛,您可以按照设置模拟器的指南进行操作。如果需要可视化指导,请查看Youtube上的Windows模拟器设置屏幕录像。在比赛之前可以使用它进行练习。当比赛开始时,修改您的myconfig.py文件,做出以下两个更改:

DONKEY_SIM_PATH = "remote"
SIM_HOST = "trainmydonkey.com"

这个赛车服务器不会一直运行。我们将在测试活动和比赛日启动它。我们计划在比赛日前一周的每个晚上太平洋时间7点到9点之间启动它。如果没有启动,请在Discord上提问,我们会尽力让一切正常运行。

注意:如果您训练了一个donkey模型,但希望在Jetson Nano或其他安装所有依赖项困难的平台上运行它,这里有一个单独的脚本,您可以使用它来运行,而无需任何donkeycar或gym-donkeycar的依赖项。只需传递模型文件名、主机名和车辆名称即可。它将作为赛车模拟器的客户端运行。

非Donkeycar用户设置

如果您想自己创建客户端,我们有一些Python代码可以帮助您入门。

  • 首先,您需要下载适用于您平台的模拟器预编译二进制文件。将其解压到您喜欢的位置。

  • 然后克隆gym-donkeycar Python项目并进行安装。如果您使用的是虚拟环境,请不要忘记先激活它。

git clone https://github.com/tawnkramer/gym-donkeycar
pip install -e gym-donkeycar
  • 获取测试客户端。在Mac或Linux上使用wget下载,例如:
wget https://raw.githubusercontent.com/tawnkramer/sdsandbox/master/src/test_client.py
  • 或者在Windows上,打开浏览器访问 https://github.com/tawnkramer/sdsandbox/tree/master/src
  • 然后右键点击test_client.py,选择“Save link as...”并选择PC上的位置。

  • 启动模拟器并让其进入菜单界面。

  • 运行测试客户端,如下所示: python3 test_client.py

查看test_client.py以了解其中的内容。SimpleClient类连接到您选择的主机。然后,根据您想尝试的课程发送一个加载场景命令。然后发送一些车辆视觉配置和相机配置信息。然后进入一个更新循环。

您可以尝试将num_clients变量更改为2或更多个客户端,看看模拟器如何处理它们。

测试客户端将发送持续时间为1.0秒的随机转向命令,然后退出。

在此期间,遥测消息将进入SimpleClient::on_msg_recv。请查看打印出的消息。还可以查看它写入的'test.png',以了解相机的外观。

其中有一些注释详细解释了相机配置。如果您有自定义相机设置,希望我们可以通过这些控件来接近它。

比赛开始时,更改变量:

host = "trainmydonkey.com"

确保启用控制以在您的命令下启动车辆。我们可能会通过视频聊天传统方式进行3、2、1、GO!的倒计时。

获取帮助

有很多东西需要学习。请加入Discord获取帮助。在那里请查看 #virtual-racing-league 频道。