本文給出了在智能視覺組和平衡信標(biāo)組允許使用WiFi通訊模塊輔助車模運行的比賽規(guī)則補(bǔ)充說明,目的是在車路協(xié)同、“邊云計算”等方面讓參賽隊伍有更廣闊的的探索空間,引導(dǎo)同學(xué)們對于國產(chǎn)嵌入式操作系統(tǒng) RT-Thread 的熟悉并建立起應(yīng)用經(jīng)驗,為構(gòu)建復(fù)雜無人系統(tǒng)打下基礎(chǔ)。本文內(nèi)容屬于建議稿件,正式文檔將會在競賽網(wǎng)站進(jìn)行公布。
01 新規(guī)則簡述
1.1 新增規(guī)則目的
本文主要闡述在第十七屆全國大學(xué)生智能汽車競賽中,針對智能視覺與平衡信標(biāo)組中加入一些基于RT-Thread RTOS
操作系統(tǒng)的組件應(yīng)用與與WiFi通訊模塊,一方面以增加允許同學(xué)們探索更多的手段、便捷的完成既定任務(wù);另外一方面也將車路協(xié)同、“邊云協(xié)作”等理念融入到智能車競賽中;鼓勵參賽同學(xué)對于國產(chǎn)嵌入式操作系統(tǒng) RT-Thread RTOS 技術(shù)原理與應(yīng)用實踐做進(jìn)一步的探究。
本著“不影響原有規(guī)則細(xì)節(jié)、不影響原本競賽形式、允許探索新的方案”的原則,在原有規(guī)則基礎(chǔ)上進(jìn)行補(bǔ)充。其中主要包含兩方面:
- 針對智能視覺組,允許增加聯(lián)網(wǎng)手段;方便獲取賽場目標(biāo)信息和上傳關(guān)鍵信息。
- 針對平衡信標(biāo)組,允許增加全局攝像頭與聯(lián)網(wǎng)手段,參賽隊伍可以借助于場外計算機(jī)視覺輔助完成車模與信號燈定位,協(xié)助車模優(yōu)化行進(jìn)路線。
- 參賽隊伍可以繼續(xù)使用原有方案完成比賽任務(wù),也可以使用全局?jǐn)z像頭聯(lián)網(wǎng)完成找燈,以便更高效精準(zhǔn)的完成既定任務(wù)。
1.2 防止通訊作弊
由于增加了無線通訊,為了防止比賽過程中:
- 參賽隊伍受到別人惡意干擾作弊,將會在比賽現(xiàn)場設(shè)置比賽專用WiFi熱點,僅供比賽車模通訊模塊使用;
- 對于車模接收無線模塊,規(guī)定必須使用競賽組委會提供的基于ESP8266通訊模塊,用于對發(fā)送信息進(jìn)行過濾,僅允許傳送規(guī)定格式的信息內(nèi)容。
在后面規(guī)則中,現(xiàn)場的WiFi熱點和ESP8266模組將由競賽組辦方提供,ESP8266模塊接口以及通訊協(xié)議將會統(tǒng)一進(jìn)行公布。
1.3 網(wǎng)絡(luò)服務(wù)IP和端口
在比賽中,比賽現(xiàn)場WiFi局域網(wǎng)內(nèi)會包含有:
- 智能視覺組中的比賽系統(tǒng)網(wǎng)絡(luò)服務(wù)器,一方面為車模提供場內(nèi)目標(biāo)所在位置坐標(biāo),另一方面接收車模發(fā)送的目標(biāo)識別和位置信息;
- 平衡信標(biāo)組全局?jǐn)z像頭服務(wù)器,為運行車模提供車模與信標(biāo)的位置信息。這個服務(wù)器是由參賽隊伍自行搭建,完成對全局?jǐn)z像頭圖片處理和發(fā)送相應(yīng)位置數(shù)據(jù)。
1.3.1 WiFi局域網(wǎng)
比賽車模通過專用ESP8266通訊模塊接入現(xiàn)場WiFi局域網(wǎng),局域網(wǎng)絡(luò)的識別名稱與密碼會在比賽現(xiàn)場提供給參賽隊伍;
1.3.2 服務(wù)器IP地址和端口
智能視覺組服務(wù)器是由組委會提供,它對應(yīng)的IP地址和端口號為:
● 智能視覺組服務(wù)器:
IP地址
:192.168.0.222
端口號
:2022
平衡信標(biāo)組的服務(wù)器是由參賽隊伍自行在筆記本上編寫,原則上可以自行設(shè)置服務(wù)器對應(yīng)的IP地址和端口號,建議使用以下統(tǒng)一的IP地址和端口號:
● 平衡信標(biāo)組服務(wù)器:
IP地址
:192.168.0.111
端口號
:1011
02 智能視覺組
下面給出了針對智能視覺組的實施方案與規(guī)則補(bǔ)充。
2.1 賽場布局與比賽流程
2.1.1 智能視覺組賽場
新增加WiFi局域網(wǎng)聯(lián)網(wǎng)通信數(shù)據(jù),基于RT-Thread的聯(lián)網(wǎng)組件框架下,賽場結(jié)構(gòu)如下圖所示:
▲ 圖2.1.1 比賽現(xiàn)場組成部分示意圖
在上圖中,車模是由參賽隊伍自行制作,其它部分都是由競賽組委會現(xiàn)場提供。
根據(jù) 第十七屆智能車競賽智能視覺組比賽細(xì)則[1] ,參賽車模作品需要留有無線模塊接口。根據(jù)現(xiàn)在擴(kuò)充的方案,在原有的單向發(fā)送接口(接口具有VCC,GND, TX三個端口)的基礎(chǔ)上,另外增加一個數(shù)據(jù)接收(RX)端口,形成全雙工無線通信端口。車??梢酝ㄟ^該端口進(jìn)行發(fā)送和接收信息。
通訊模塊是基于ESP8266制作,在比賽時由競賽組委會統(tǒng)一進(jìn)行現(xiàn)場提供。
2.1.2 比賽與通訊流程
根據(jù)已公布的智能視覺組規(guī)則,參賽車模可以在比賽前通過機(jī)器視覺的方式獲得場地內(nèi)目標(biāo)物位置信息。也可以借助于通訊模塊直接接收到場內(nèi)目標(biāo)物位置信息。
按照新的基于局域網(wǎng)的通信方式,
如果按照新的基于局域網(wǎng)的通信方式,按下開始按鍵后,車模軟件借助于RT-Thread RTOS提供聯(lián)網(wǎng)功能,利用通訊硬件模塊與裁判上位機(jī)建立起TCP連接,然后上位機(jī)將會從局域網(wǎng)將數(shù)據(jù)下發(fā)至車模,車模通過解析裁判系統(tǒng)下發(fā)的目標(biāo)坐標(biāo)信息,即可直接獲取到賽場上所有目標(biāo)的準(zhǔn)確坐標(biāo)。具體數(shù)據(jù)標(biāo)準(zhǔn)參見下面“通訊數(shù)據(jù)格式”。
在車模運行過程中,車??梢酝ㄟ^局域網(wǎng)直接上傳自身的坐標(biāo)與識別信息,就不需要再使用原規(guī)則指定的發(fā)送接口,按照指定的數(shù)據(jù)格式上傳自身坐標(biāo)以及識別的目標(biāo)信息即可。
▲ 圖2.1.2 比賽流程示意圖
比賽時提供組委會提供專用的ESP8266模塊用作局域網(wǎng)接入。
▲ 圖2.1.4 參賽車模接收與發(fā)送信息示意圖
2.2 通訊數(shù)據(jù)格式
2.2.1 數(shù)據(jù)格式
如果參賽車模仍然采用已經(jīng)公布的視覺組比賽標(biāo)準(zhǔn),可以只利用通訊模塊按照之前公布數(shù)據(jù)標(biāo)準(zhǔn)發(fā)送車模識別目標(biāo)信息和運行為止信息。如果計劃通過模塊直接接受場地信息以及發(fā)送位置信息,可以
關(guān)于通信的數(shù)據(jù)格式使用IOT常用標(biāo)準(zhǔn)數(shù)據(jù)格式(JSON格式)進(jìn)行上傳與下發(fā)。
(1)車模接收目標(biāo)位置信息
裁判系統(tǒng)發(fā)送給車模的目標(biāo)信息如下面代碼所示。
目標(biāo)坐標(biāo)信息一幀數(shù)據(jù)包含兩個部分:
- 第一個部分包含標(biāo)“Origin”,跟隨的數(shù)據(jù)為“Server”代表數(shù)據(jù)來源于裁判系統(tǒng);
- 第二個部分為一個數(shù)據(jù)組,包含標(biāo)簽“Coordinate”代表目標(biāo)坐標(biāo)信息,坐標(biāo)信息的數(shù)據(jù)取決于場地的目標(biāo)數(shù)量。
{
"Origin": "Server",
"Coordinate": [{
"x": 1,
"y": 3
}, {
"x": 2,
"y": 5
}, {
"x": 6,
"y": 7
}]
}
(2)車模發(fā)送位置與目標(biāo)識別信息
Ⅰ.車模位置信息
車模發(fā)送給裁判系統(tǒng)的識別信息,自身坐標(biāo)信息一幀數(shù)據(jù)包含兩個部分:
- 第一個部分包含標(biāo)“Origin”,跟隨的數(shù)據(jù)為“Car”代表數(shù)據(jù)來源于車模;
- 第二個部分為一個數(shù)據(jù)組,包含標(biāo)簽“Coordinate”代表自身坐標(biāo)信息。
{
"Origin": "Car",
"Coordinate": [{
"x": 0,
"y": 0
}]
}
為了避免參賽車模利用通訊模塊下行數(shù)據(jù)(從服務(wù)器發(fā)送到車模數(shù)據(jù))發(fā)送額外控制命令和其它產(chǎn)掃信息,組委會提供的通訊模塊會對通訊數(shù)據(jù)進(jìn)行分析。如果出現(xiàn)異常則會進(jìn)行攔截。
坐標(biāo)數(shù)據(jù)內(nèi)容包括“x”標(biāo)識二維橫軸坐標(biāo)對應(yīng)賽場7米邊,“y”標(biāo)識二維縱軸坐標(biāo)對應(yīng)賽場5米邊,橫軸坐標(biāo)值范圍為[0-35],縱軸坐標(biāo)值范圍為[0-25]。如果數(shù)據(jù)超過限定值范圍,數(shù)據(jù)視為異常數(shù)據(jù),會被賽場發(fā)放的ESP8266模塊截斷。
Ⅱ.目標(biāo)識別信息
目標(biāo)識別信息一幀數(shù)據(jù)包含三個部分:
- 第一個部分包含標(biāo)“Origin”,跟隨的數(shù)據(jù)為“Car”代表數(shù)據(jù)來源于車模;
- 第二個部分包含標(biāo)“Class”,跟隨的數(shù)據(jù)為“Animal”代表大類別;
- 第三個部分包含標(biāo)“Subclass”,跟隨的數(shù)據(jù)為“Cat”代表小類別。
{
"Origin": "Car",
"Class": "Animal",
"Subclass": "Cat"
}
目標(biāo)大類別數(shù)據(jù)范圍為:[Animal、Fruits、Vehicle],對應(yīng)[動物、水果、交通工具];
目標(biāo)小類別數(shù)據(jù)范圍為:
-
- [Dog、Horse、Cat、Cattle、Pig] ,對應(yīng)[狗、馬、貓、牛、豬][Orange、 Apple, 、Durian、 Grape、 Banana] ,對應(yīng)[橙子、蘋果、榴蓮、葡萄、香蕉][Train、 Steamship、 Plane、Car、Coach] ,對應(yīng)[火車、輪船、飛機(jī)、小轎車、大客車]
2.3 通訊模塊接口
兼容已有的規(guī)則,可以通過已經(jīng)規(guī)定的接口連接官方發(fā)放的無線模塊,按照已有的數(shù)據(jù)格式上傳數(shù)據(jù)。詳細(xì)參見:智能視覺組-識別結(jié)果發(fā)送[2] 。
2.3.1 通訊接口定義
為了與原有規(guī)則接口兼容,新擴(kuò)充的競賽通訊模塊增加了一個下行數(shù)據(jù)線。準(zhǔn)備使用RT-Thread參賽隊伍,可以利用該接口與競賽官方提供的ESP8266模塊進(jìn)行通訊,并對JSON格式的數(shù)據(jù)進(jìn)行收發(fā)。
▲ 圖2.3.1 新改動的數(shù)據(jù)接口
通訊接口的物理定義由原來的3芯接頭改為4芯。
2.3.2 通訊信息
如果使用RT-Thread局域網(wǎng)接入方式獲取目標(biāo)坐標(biāo)信息,那么在完成與裁判系統(tǒng)上位機(jī)的TCP連接后,上位機(jī)會通過局域網(wǎng)下發(fā)指定格式的準(zhǔn)確的目標(biāo)坐標(biāo)信息。
如果不使用局域網(wǎng)獲取目標(biāo)坐標(biāo)信息,依舊可以使用原有規(guī)則下使用攝像頭識別A4紙上的圖像來獲取目標(biāo)坐標(biāo)信息。
03 平衡信標(biāo)組
下面給出針對平衡信標(biāo)組的實施方案與規(guī)則補(bǔ)充
3.1 賽場布局與比賽流程
比賽場地布局不影響采用傳統(tǒng)信標(biāo)比賽技術(shù)方案的車模完成比賽。新規(guī)則只是增加了賽場專用WiFi熱點,并允許參賽隊伍自行在場地外假設(shè)全局?jǐn)z像頭用于檢測場內(nèi)車模與信標(biāo)的位置。
3.1.1 信標(biāo)組賽場組成
參賽隊伍可以在場地邊緣增加一個攝像頭,識別車模與信標(biāo)燈的方位,通過賽場旁邊的WiFi無線局域網(wǎng)發(fā)送給運行的車模,幫助車模完成信標(biāo)滅燈過程。
▲ 圖3.1 信標(biāo)燈比賽現(xiàn)場組成部分示意圖
賽場外的全局?jǐn)z像頭、安裝支架以及處理攝像頭圖片的筆記本電腦由參賽隊伍自行準(zhǔn)備,并在比賽過程中進(jìn)行搭建、調(diào)試和連通。
比賽所使用的ESP8266模塊將由競賽組委會統(tǒng)一提供,該模塊對于傳輸數(shù)據(jù)(JSON格式)進(jìn)行過濾,只允許傳送符合要求的位置信息。
3.1.2 比賽與通訊流程
(1)建立視覺服務(wù)器
比賽中,參賽隊伍自己的筆記本連入賽場專用熱點,并提供TCP通訊服務(wù)。具體通訊協(xié)議見下面給出的“數(shù)據(jù)通訊協(xié)議”。
全局相機(jī)服務(wù)器可以由參賽隊伍通過編程自行實現(xiàn),也可以通過規(guī)定的接口連接賽場發(fā)放的ESP8266模塊,按照正常使用即可。數(shù)據(jù)格式按照指定的JSON格式發(fā)送。需要將模塊設(shè)置為TCP Server,可以使用RT-Thread的ESP8266驅(qū)動組件搭配SAL套接字抽象層比較方便的實現(xiàn)。
(2)車模連通服務(wù)器
比賽現(xiàn)場提供專用ESP8266模塊,用于車模接入現(xiàn)場WiFi并進(jìn)行數(shù)據(jù)接收。
車模部分使用賽場發(fā)放的ESP8266模塊,按照正常使用即可。使用ESP8266與全局?jǐn)z像頭的TCP Server建立TCP連接,這樣就可以與全局?jǐn)z像頭部分進(jìn)行數(shù)據(jù)通信,全局?jǐn)z像頭部分下發(fā)數(shù)據(jù),車模獲取并解析數(shù)據(jù)即可
▲ 圖3.1.2 比賽流程示意圖
3.2 數(shù)據(jù)格式
關(guān)于通信的數(shù)據(jù)格式使用IOT常用標(biāo)準(zhǔn)數(shù)據(jù)格式(JSON格式)進(jìn)行下發(fā):
{
"Origin": "Camera",
"Light": [{
"x": 31,
"y": 47
}],
"Car": [{
"x": 23,
"y": 29
}]
}
如上面代碼所示,下發(fā)一幀數(shù)據(jù)包含三個部分:
- 第一個部分包含標(biāo)“Origin”,跟隨的數(shù)據(jù)為“Camera”代表數(shù)據(jù)來源于全局?jǐn)z像頭;
- 第二個部分為一個數(shù)據(jù)組,包含標(biāo)簽“Light”代表信標(biāo)燈坐標(biāo)信息;
- 第三個部分為一個數(shù)據(jù)組,包含標(biāo)簽“Car”代表車模坐標(biāo)信息。
坐標(biāo)數(shù)據(jù)內(nèi)容包括“x”標(biāo)識二維橫軸坐標(biāo)對應(yīng)賽場7米邊,“y”標(biāo)識二維縱軸坐標(biāo)對應(yīng)賽場5米邊,橫軸坐標(biāo)值范圍為[0-140],縱軸坐標(biāo)值范圍為[0-100],對應(yīng)最高坐標(biāo)精度為5cm。如果數(shù)據(jù)超過限定值范圍,數(shù)據(jù)視為異常數(shù)據(jù),會被賽場發(fā)放的ESP8266模塊截斷。
※ 總 結(jié) ※
本文給出了在智能視覺組和平衡信標(biāo)組允許使用WiFi通訊模塊輔助車模運行的比賽規(guī)則補(bǔ)充說明,目的是在車路協(xié)同、“邊云計算”等方面讓參賽隊伍有更廣闊的的探索空間,引導(dǎo)同學(xué)們對于國產(chǎn)嵌入式操作系統(tǒng) RT-Thread 的熟悉并建立起應(yīng)用經(jīng)驗,為構(gòu)建復(fù)雜無人系統(tǒng)打下基礎(chǔ)。
本文內(nèi)容屬于建議稿件,正式文檔將會在競賽網(wǎng)站進(jìn)行公布。
- 全國大學(xué)生智能車競賽網(wǎng)站:<smartcar.cdstm.cn>
參考資料
[1]第十七屆智能車競賽智能視覺組比賽細(xì)則: https://blog.csdn.net/zhuoqingjoking97298/article/details/121438560
[2]智能視覺組-識別結(jié)果發(fā)送: https://blog.csdn.net/zhuoqingjoking97298/article/details/121438560#t15