VEX V5 GPS 感測器可以量測機器人在場地上的XY座標以及面朝的方向,使你可以隨時知道機器人的位置,並撰寫更精準的自動程式。
GPS 感測器介紹
提到 GPS,最先讓人想到的就是生活中需要定位時使用的全球定位系統 GPS (Global Positioning System),由美軍發射的24~27顆GPS衛星繞行地球,用戶裝置接收到若干衛星的訊號即可推算自己位於地球的哪個經緯度;但 VEX 機器人運行的場地通常位於室內,收不太到衛星訊號,而且 GPS 的精度大概只能到5~1公尺間,相比場地來說是很大的誤差,那是要如何使用 GPS 呢?

在此 VEX V5 GPS 是 Game Positioning System (比賽定位系統) 的縮寫,是完全不會使用到空中的 GPS 定位系統訊號,也沒有關聯;VEX V5 GPS 感測器實為一顆攝影鏡頭,需要搭配在場地四周貼上對應的帶狀 Field Code ,就像辨識 QR Code 一樣, VEX V5 GPS 感測器能藉由所見的 Field Code 反推自己位於場地的座標位置,比全球定位系統更厲害的是,就算固定不動也能算出目前機器人的面朝方向。



VEX V5 GPS 感測器的組成包含一個灰階鏡頭,在低光源環境下也能辨識 Field Code,內部還有 6 軸陀螺儀和加速度計,並自帶運算晶片,在感測器內就算好位置再由連接埠回傳給主機,運算速度高達每 5 毫秒更新一次座標,光學鏡頭搭配陀螺儀和加速度計,鏡頭只要看到總長約 40 公分 (17英吋) 的 Field Code 就能實現精準位置運算,就算鏡頭遭完全遮擋,短時間仍能繼續推斷位置。
此感測器在1年多前的 VEX AI 願景影片中就有出現,現在已經上市,也是影片中幾個計畫最早實現的,價格有點令人卻步,一組感測器和 Field Code 大約 $240 美金,不過庫樂思機器人團隊已經搶先取得 V5 GPS 感測器,並實測效果。
準備與安裝
- 安裝 VEX V5 GPS 感測器
- 推薦安裝於機器後方並朝後拍攝,比較不會被場地物件或機器人可動結構遮擋鏡頭,相機朝任何方向都能推算出正確位置的,安裝於與 Field Code 同高的位置,並保持水平,確保不論遠近都能正確讀取 Field Code。

- 安裝 Field Code
- 將 Field Code 切齊場地邊框上緣,並注意4個面向有對應的 Field Code,四條是有所區別的,在 AI Challenge 場地中,四周的透明板也都要貼成不透明的,避免場地外因素干擾機器人判讀。

- 讀取Device info
- 先確認 VEX V5 Brain 主機韌體已經更新到 v1.1版以後,才能讀取 VEX V5 GPS 資料,在 Device info 中選取你GPS sensor 連接的埠號,並將機器人置於場中,觀察有沒有算出目前 XY 座標與朝向,可以點選左下角的 Image 檢查鏡頭拍攝畫面是否正常,有抓到 Field Code 會用綠線與紅點標出。

在 VEXCode Pro V5 中配置 GPS sensor
選取「Add a device」,並選擇 GPS 感測器。

選擇 GPS 感測器所連結的埠號。

設定 GPS 感測器的位置修正值,填入的數值是 VEX V5 GPS 感測器相對於整台機器的旋轉中心點的 XY 差值,以及拍攝方向的角度。完成後即可於程式中使用 GPS 相關函數,詳細請見下個段落。


VEX V5 GPS API reference
GPS.calibrate();
//啟動 GPS 感測器的校準過程。
GPS.heading()
//回傳經校正後的機器人於場地中目前面對的方向角度。
GPS.xPosition(mm)
//回傳經校正後的機器人轉軸原點於場地中的絕對位置X座標。
GPS.yPosition(mm)
//回傳經校正後的機器人轉軸原點於場地中的絕對位置Y座標。
GPS.acceleration(xaxis)
//回傳 GPS 感測器上指定軸的加速度值
GPS.gyroRate(xaxis, dps)
//回傳 GPS 感測器上指定軸的旋轉速率。
GPS.orientation(roll, degrees)
//回傳 GPS 感測器上指定方向軸的角度。
GPS.quality()
//回傳 GPS 感測器的當前信號品質。