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