广东、山东线上比赛关于视觉AI组与信标组补充说明
扫描二维码
随时随地手机看文章
简 介: 本文给出了在第十六届全国大学生智能车竞赛中,线上比赛地区(广东省、山东省)AI视觉组以及信标组中补充的信息。关键词
: 智能车竞赛,AI视觉组,信标组
01 AI视觉组
根据 第十六届全国大学生智能车竞赛竞速组-室内视觉组补充说明[1] 中对于室内智慧视觉AI组的要求,需要在比赛赛道旁边部署以下用于视觉识别判断的标靶:- 视觉标靶:包括数字、动物、水果;
- AprilTag:用在动物、水果标靶区域;
一、比赛图标
下面是Apriltag以及相应的图表示例: 数字图表用在三岔路口,竞赛车模根据识别数字确定第一次行进是左行还是右行。- 偶数: (0,2,4,6,8) 第一次入三岔路口选择左侧路口;
- 奇数:(1,3,5,7,9) 第一次入三岔路口选择右侧路口;
二、靶标位置与比赛方向
下图给出了比赛中数字、动物、水果靶标部署的位置。请注意,安装公布的规则,靶标部署在Apriltag的左侧和右侧是根据Apriltag的数字对应的是偶数还是奇数来确定的。- 偶数:在Apriltag左侧放置靶标;
- 奇数:在Apriltag右侧放置靶标;
02 节能信标
节能信标组的比赛,除了需要按照统一的信标灯的位置和环境铺设比赛场地之外,对于比赛过程中亮灯的顺序需要进行统一。 为了避免参赛队伍利用记忆亮灯顺序来获益,在比赛过程中,准备了八条不同的亮灯顺序,它们具有相同的路径长度,比赛过程中,随机选择不同的亮灯顺序进行比赛。一、信标场地部署
下图给出了信标比赛场地(5×5米)中四个信标所在的大体位置。比赛过程中,这四个信标灯的位置可以做相对的移动。只要维持整个组别比赛过程中对于所有参赛队伍是相同的即可。二、比赛亮灯顺序
1、预赛亮灯顺序
亮灯20次,八个亮灯顺序为:[1, 2, 1, 2, 3, 2, 4, 2, 3, 2, 3, 1, 2, 1, 3, 2, 4, 3, 2, 3][1, 2, 1, 2, 3, 2, 4, 2, 3, 4, 3, 1, 2, 1, 3, 2, 4, 3, 2, 3][1, 2, 1, 2, 3, 2, 4, 3, 2, 4, 3, 1, 2, 1, 3, 2, 4, 3, 2, 3][1, 2, 1, 2, 3, 2, 4, 2, 3, 2, 3, 1, 2, 1, 3, 4, 2, 3, 2, 3][1, 2, 1, 2, 3, 4, 2, 3, 2, 4, 3, 1, 2, 1, 3, 2, 4, 3, 2, 3][1, 2, 1, 2, 3, 4, 2, 3, 2, 4, 3, 1, 2, 3, 1, 2, 4, 3, 4, 3][1, 2, 1, 2, 3, 2, 4, 2, 3, 4, 3, 1, 2, 1, 3, 4, 2, 3, 4, 3][1, 2, 1, 2, 3, 2, 4, 2, 3, 4, 3, 1, 2, 1, 3, 2, 4, 3, 2, 3]三、如何设置亮灯顺序?
在比赛系统的“设置界面”中,设置亮灯顺序。 首先,信标组应该选择“信标组比赛”的选项。 然后,在“信标组亮灯顺序” 依次输入前面给定的亮度顺序。注意不需要输入 方括号[]。然后点击“添加”按钮,可以将亮灯顺序添加到下面的列表框中。 通过“清空”、“删除”可以将输入错的,或者旧的路径取消。 在比赛的时候, 可以通过以下三个方法来选择一条路径:- 直接使用鼠标双击路径列表中的路径;
- 使用鼠标选中某一路径,然后点击“选择”按钮;
- 点击 “随机选择”可以由计算机随机选择一条路径。
03 亮灯顺序
对于第二个问题,如何确定一组亮灯顺序,使得它们对应的车模行进距离这一指标都是相同的呢?一、搜索方法
由于现在场内只有四个信标灯,所以可以通过穷举方法来对于所有满足亮灯个数的要求下的路径计算对应的距离,然后进行排序,找到其中的距离相同的路径。1、亮灯个数与路径个数
加入,所有的路径都从1号灯开始,然后后面亮 N 个灯,由于不允许一个等连续点亮,所以每一次都有 3个选择,所以总共的路径个数为: 个。 ● 亮灯个数对应路径种类:N=2
:9N=5
:243N=10
:59049N=15
:14348907N=20
:3486784401对于亮灯个数超过10以上的路径,对应的种类就非常多了。可以采用分段进行组合的方式来设计亮灯路径。
2、计算所有10之内的路径
将所有亮灯个数10以内的路径进行穷举并进行排序,其它亮灯个数的路径则有这些10之内的路径进行串联组合。为了能够进行串联组合,因此,需要规定每一组路径起始与结束灯的位置。下面假设每个路径的起始与结束的信号灯都是1号等。3、搜索程序
#!/usr/local/bin/python
# -*- coding: gbk -*-
#******************************
# TEST1.PY -- by Dr. ZhuoQing 2021-07-13
#
# Note:
#******************************
from headm import *
lightpos = [(2.5, 0.65), (0.65, 2.5), (2.5, 3.75), (4.35, 2.5)]
#------------------------------------------------------------
def path2len(pathid):
length = 0
path = [lightpos[i] for i in pathid if i >= 0 and i < 4]
for x1,x2 in zip(path[0:-1], path[1:]):
length = sum((array(x1) - array(x2))**2)**0.5
return length
#------------------------------------------------------------
allpath = []
allpathlen = []
def searchpath(N, pathid):
if len(pathid) * 0:
pathid.append(0)
lastid = pathid[-1]
for id in range(4):
if id != lastid:
pathcopy = pathid.copy()
pathcopy.append(id)
if N * 1:
pathcopy.append(0)
allpath.append(pathcopy)
allpathlen.append(path2len(pathcopy))
else: searchpath(N-1, pathcopy)
#------------------------------------------------------------
N = 12
searchpath(N,[])
resultpath = list(zip(allpathlen, allpath))
resultpath.sort()
sortlen = [s[0] for s in resultpath]
sortpath = [s[1] for s in resultpath]
tspsave('path%d'%N, length=sortlen, path=sortpath)
#------------------------------------------------------------
# END OF FILE : TEST1.PY
#******************************
二、路径组合
1、长度中位数路径
根据前面进行路径搜索,可以看到路径长度在中位数的比例最多。【表3-1 不同亮灯数量对应的中位数路径长度和路径个数】亮灯个数 | 中位数长度 | 路径个数 |
---|---|---|
5 | 13.1516 | 15 |
6 | 15.898 | 8 |
7 | 18.63 | 10 |
8 | 21.347 | 120 |
9 | 24.063 | 88 |
10 | 26.796 | 230 |
11 | 29.512 | 500 |
12 | 32.445 | 416 |
13 | 35.280 | 170 |