96 學年度 電機工程學系 專題製作競賽

21

description

96 學年度 電機工程學系 專題製作競賽. 題目:以 MATLAB 為基礎之 GPS 定位系統製作. 參賽組別:控制組 指導老師:李贊鑫 教授 參賽學生:葉人慈、方泰翔 2008/6/4. PC or Notebook. 全球定位系統. GPS 衛星. MATLAB. 描繪路徑點 (waypoint). 天線. 擷取與分析資料. 串列埠介面. GPS Sensor. 即時顯示地圖. 傳送資料. 系統示意圖. 系統裝置. Sensor: GARMIN GPS 15H. antenna. notebook. serial port (RS232). - PowerPoint PPT Presentation

Transcript of 96 學年度 電機工程學系 專題製作競賽

Page 1: 96 學年度 電機工程學系 專題製作競賽
Page 2: 96 學年度 電機工程學系 專題製作競賽

GPS SensorGPS Sensor

GPS 衛星

天線

全球定位系統 PC or Notebook

MATLAB

描繪路徑點(waypoint)

即時顯示地圖傳送資料

擷取與分析資料串列埠

介面串列埠介面

Page 3: 96 學年度 電機工程學系 專題製作競賽

antennaSensor: GARMIN GPS 15H

serial port (RS232)

notebook

Page 4: 96 學年度 電機工程學系 專題製作競賽

GPS 接收器

串列埠

NMEA 0183文字檔

選擇模式

位元組可用觸發事件

計時器觸發事件

持續接收資訊狀態

取得字句

分析字句

儲存資料

顯示路徑圖

調整圖軸邊際

顯示地圖

衛星資料文字檔

定位資料文字檔

地圖影像檔

地圖產生器

地圖目錄檔

主程式

地圖程式

start

Page 5: 96 學年度 電機工程學系 專題製作競賽

模式選擇

組態GPS

Sensor

資料記錄

UTC↓臺灣時間

knot→km/hr

經緯度、高度

NMEA 字句

GPS 衛星狀態

GPS 衛星位置圖

Page 6: 96 學年度 電機工程學系 專題製作競賽

版本: NMEA 0183 由 GPS sensor接收: Received NMEA 0183 sentences 由 GPS sensor送出: Transmitted NMEA 0183 sentences Transmitted sentences 摘要:

字句種類 原文意義 說明$GPRMC Recommended Minimum Specific

GPS/TRANSIT Data (RMC)

經緯度、高度等定位基本資訊

$GPGGA Global Positioning System Fix Data (GGA)

GPS 定位資料,包含 GPS 及衛星相關資訊

$GPGSA GPS DOP and Active Satellites (GSA) 使用中衛星編號及位置、水平、垂直幾何精度$GPGSV GPS Satellites in View (GSV) 可視衛星的資訊$PGRME Estimated Error Information

(PGRME)估測誤差資訊

$PGRMB DGPS Deacon Information (PGRMB) 差分 GPS 資訊$PGRMM Map Datum (PGRMM) 地圖座標系統$PGRMT Sensor Status Information (PGRMT) GPS 感測器狀態資訊(型號、狀態、溫度等)

Page 7: 96 學年度 電機工程學系 專題製作競賽

NMEA 0183句型,以 RMC為例:

讀取原則:◦ 以 <CR><LF>為終止字元 (terminator) (carriage return, line feed)

◦ 確認起始記號 ($)與終止記號 (*)◦ 以句型種類決定讀取程序

偵錯法:◦ 判斷偵錯碼 (checksum)◦ 確認欄位數符合該句型的格式◦ $GPGSV,3,1,10,K,,N,N*31

$GPGSA,A,3,03,,11,13,16,W*61兩者的 checksum 都正確,所以偵錯碼偵錯結果沒有問題。但是其實這兩個句子是不合 NMEA 協定的,部分欄位(field) 出現該欄位不該出現的值,甚至欄位的個數跟標準協定不符,但 checksum 是對的。

$GPRMC,025219,A,2432.5300,N,12048.6776,E,031.5,160.9,211107,003.3,W*6A

句型

起始記號

GPS狀態

對地速度

對地航徑 終止記號

偵錯碼UTC時間

經度

<CR><LF>UTC日期

磁偏角

緯度

Page 8: 96 學年度 電機工程學系 專題製作競賽

回轉檔案定位器

取得一列字句

記錄字句 分析字句

顯示字句

記錄衛星資料

顯示衛星資料

顯示衛星位置示意圖

End_satellitesdata = 0

記錄定位資料

顯示定位資料

End_fixddata = 0

End_satellitesdata == 1

End_fixdata == 1

RMCGo_fixdata = 1(End_fixdata = 1)GGA

GSA

GSV第一 GSV 字句Go_satellitesdata = 1最後 GSV 字句End_satellitesdata = 1Go_satellitesdata = 0PGRMEGo_fixdata == 1End_fixdsdata = 1Go_fixdata = 0PGRMM顯示地圖座標系統資訊

PGRMB

PGRMT顯示 GPS 裝置資訊

NMEA 文字檔GPS 接收器

取得的字句的種類順序

Page 9: 96 學年度 電機工程學系 專題製作競賽

地圖 & 軌跡

定位顯示

地圖檔來源設定

軌跡點數設定

刻度尺大小設定

路徑點顯示範圍

2D2D

3D3D

高度高度

整批軌跡顯示

整批軌跡顯示

Page 10: 96 學年度 電機工程學系 專題製作競賽

控制 XY軸邊際,使路徑點及地圖保持在畫面顯示的範圍內 多重目的整合的設計:

即時顯示路徑點時:判斷單點 顯示歷史路徑點時:判斷多點 調整刻度尺大小時:針對中心點 ( 定點 )

路徑點追蹤範圍

圖軸中心點

waypoints

0 2 4 6 8 10‧ ‧ ‧ ‧ ‧ ‧

Page 11: 96 學年度 電機工程學系 專題製作競賽

0 xpixel

0

ypixel

x1 x2

y1

y2

long0

long

lat

long1 long2

lat1

lat2

lat0

][

pixely

pixelx

)(

)(

)(

)(

0022

11

22

11

latlonglatlong, latlong

, latlong

, yx

, yx

圖形寬、長

兩點座標

已知其中任意兩點的經緯度座標 南北為縱向、東西為橫向 經緯刻度間隔分別為定值 格式化結果:

• 取得圖檔的經緯度分佈範圍• 存成地圖目錄 ( 文字檔 )

Page 12: 96 學年度 電機工程學系 專題製作競賽

給定地圖間距的最小截距 (R),算出用來判斷地圖的位置點座標。 當 R=1時,則判斷點座標為畫面的四個角落。

YLim(1)

XLim(2)XLim(1)

YLim(2)

X = XLim(2) – XLim(1) = YLim(2) – YLim(2)N = ceil( X / R ); ceil: round toward +infinityn = 0 →NXp = XLim + X/N*n

RR

Xp(0) Xp(1)

R

Xp(2) Xp(3)

Page 13: 96 學年度 電機工程學系 專題製作競賽

對某位置點判斷包含該點之地圖圖檔,顯示之。

利用地圖結構 (cell array: Im)存放地圖資訊,減少開啟地圖目錄檔的頻率。

1 個路徑點座標

判斷該點是否在「地圖結構」的範圍內:

isinmapregion

該地圖是否「顯示中」

否該點位置已經有地圖顯示,此時不必做與地圖相關的動作

插入地圖*藉由「地圖結構陣

列」的識別碼插入

從「地圖目錄檔」中搜尋:開啟檔案→搜索地圖範圍

確認範圍:check region

否是

插入地圖*藉由「地圖結構陣

列」的識別碼插入

*將地圖資訊存入「地圖結構」中

該點位置沒有找到相對應的地圖可以顯示

Page 14: 96 學年度 電機工程學系 專題製作競賽

實測時間: 96 年 11 月 21 日 上午 10:00 至 12:00 實測路徑:聯合大學(尖豐公路)→後汶公路

→經國路→新東大橋→苗栗交流道→國道 1 號 →三義交流道→國道 1 號→後汶公路→聯合

大學

Page 15: 96 學年度 電機工程學系 專題製作競賽

速度顯示( km/hr)

新東大橋

新東大橋實景 實測路徑圖(新東大橋)

Page 16: 96 學年度 電機工程學系 專題製作競賽

高速公路上坡路段實景

實測高度圖(坡度顯示)

高度圖顯示(上坡中)

Page 17: 96 學年度 電機工程學系 專題製作競賽
Page 18: 96 學年度 電機工程學系 專題製作競賽

聯合大學

苗栗交流道( 132.8 km)

三義交流道( 150.2 km)

國道 1號中山高速公路

Page 19: 96 學年度 電機工程學系 專題製作競賽
Page 20: 96 學年度 電機工程學系 專題製作競賽

路徑點追蹤範圍欄位的值若大於 10 則重設為 10 ;

若小於 0 則重設為 0

取得路徑點追蹤範圍欄位的值

將路徑點追蹤範圍欄位的值( 0~10 )除以 10 ,成為精密度百分比: precise_focus%

取得刻度尺滑軸的值: scale

取得目前圖軸的邊際值: xlim, ylim

判斷 p2c 是否超出路徑點追蹤範圍的半徑

求出路徑點追蹤範圍的圓的邊界(點到圖軸中心的距離),即路徑點追蹤範圍的圓的半徑: bound_focus = (scale / 2) * precise_focus

求出圖軸中心的座標:xc, yc 分別為 xlim, ylim 的平均

求出某點或多點與圖軸中心的最大距離 p2c

若 p2c 大於 scale/2 ,則改變 scale(使 p2c = scale * pof )

重設圖軸中心點 xc, yc :在單點時以該點為圖軸中心;在多點時把所有點的幾何中心作為圖軸中心

完成圖軸邊際設定

Page 21: 96 學年度 電機工程學系 專題製作競賽

執行運算式 情況 1 (單點) 情況 2 ( n 點) 情況 3 (定點)px, py px, py px(1 : n), py(1 : n) xc, yc

dx = max(abs(xc – px));

dy = max(abs(yc – py));

dx = |xc – px|

dy = |yc – py|

dx = |xc – px| max

dy = |yc – py| max

dx = 0

dy = 0

p = sqrt(dx^2 + dy^2); p = p = p = 0

p bound_focus ? p bound_focus ? p bound_focus ? 0 bound_focus

max(px)-min(px) scale ?

max(py)-min(py) scale ?

max(px)-min(px) = 0 < scale

max(py)-min(py) = 0 < scale

max(px)-min(px) scale ?

max(py)-min(py) scale ?

max(px)-min(px) = 0 < scale

max(py)-min(py) = 0 < scale

scale = max((max(px)-min(px)),(max(py)-min(py))) /

precise_focus;

max(px)-min(px) scale ?

max(py)-min(py) scale ?

xc = mean(px); yc = mean(py); ( xc = px, yc = py ) xc = mean(px); yc = mean(py);

( xc = xc, yc = yc )

2dy

2dx 2

dy2

dx