96 學年度 電機工程學系 專題製作競賽
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 PresentationTRANSCRIPT
![Page 1: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/1.jpg)
![Page 2: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/2.jpg)
GPS SensorGPS Sensor
GPS 衛星
天線
全球定位系統 PC or Notebook
MATLAB
描繪路徑點(waypoint)
即時顯示地圖傳送資料
擷取與分析資料串列埠
介面串列埠介面
![Page 3: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/3.jpg)
antennaSensor: GARMIN GPS 15H
serial port (RS232)
notebook
![Page 4: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/4.jpg)
GPS 接收器
串列埠
NMEA 0183文字檔
選擇模式
位元組可用觸發事件
計時器觸發事件
持續接收資訊狀態
取得字句
分析字句
儲存資料
顯示路徑圖
調整圖軸邊際
顯示地圖
衛星資料文字檔
定位資料文字檔
地圖影像檔
地圖產生器
地圖目錄檔
主程式
地圖程式
start
![Page 5: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/5.jpg)
模式選擇
組態GPS
Sensor
資料記錄
UTC↓臺灣時間
knot→km/hr
經緯度、高度
NMEA 字句
GPS 衛星狀態
GPS 衛星位置圖
![Page 6: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/6.jpg)
版本: 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 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/7.jpg)
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 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/8.jpg)
回轉檔案定位器
取得一列字句
記錄字句 分析字句
顯示字句
記錄衛星資料
顯示衛星資料
顯示衛星位置示意圖
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 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/9.jpg)
地圖 & 軌跡
定位顯示
地圖檔來源設定
軌跡點數設定
刻度尺大小設定
路徑點顯示範圍
2D2D
3D3D
高度高度
整批軌跡顯示
整批軌跡顯示
![Page 10: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/10.jpg)
控制 XY軸邊際,使路徑點及地圖保持在畫面顯示的範圍內 多重目的整合的設計:
即時顯示路徑點時:判斷單點 顯示歷史路徑點時:判斷多點 調整刻度尺大小時:針對中心點 ( 定點 )
路徑點追蹤範圍
圖軸中心點
waypoints
0 2 4 6 8 10‧ ‧ ‧ ‧ ‧ ‧
![Page 11: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/11.jpg)
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 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/12.jpg)
給定地圖間距的最小截距 (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 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/13.jpg)
對某位置點判斷包含該點之地圖圖檔,顯示之。
利用地圖結構 (cell array: Im)存放地圖資訊,減少開啟地圖目錄檔的頻率。
1 個路徑點座標
判斷該點是否在「地圖結構」的範圍內:
isinmapregion
該地圖是否「顯示中」
是
是
否該點位置已經有地圖顯示,此時不必做與地圖相關的動作
插入地圖*藉由「地圖結構陣
列」的識別碼插入
*
否
從「地圖目錄檔」中搜尋:開啟檔案→搜索地圖範圍
確認範圍:check region
否是
插入地圖*藉由「地圖結構陣
列」的識別碼插入
*將地圖資訊存入「地圖結構」中
該點位置沒有找到相對應的地圖可以顯示
![Page 14: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/14.jpg)
實測時間: 96 年 11 月 21 日 上午 10:00 至 12:00 實測路徑:聯合大學(尖豐公路)→後汶公路
→經國路→新東大橋→苗栗交流道→國道 1 號 →三義交流道→國道 1 號→後汶公路→聯合
大學
![Page 15: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/15.jpg)
速度顯示( km/hr)
新東大橋
新東大橋實景 實測路徑圖(新東大橋)
![Page 16: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/16.jpg)
高速公路上坡路段實景
實測高度圖(坡度顯示)
高度圖顯示(上坡中)
![Page 17: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/17.jpg)
![Page 18: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/18.jpg)
聯合大學
苗栗交流道( 132.8 km)
三義交流道( 150.2 km)
國道 1號中山高速公路
![Page 19: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/19.jpg)
![Page 20: 96 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/20.jpg)
路徑點追蹤範圍欄位的值若大於 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 學年度 電機工程學系 專題製作競賽](https://reader033.vdocuments.net/reader033/viewer/2022061608/56814871550346895db57b3c/html5/thumbnails/21.jpg)
執行運算式 情況 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