本書以項目開發(fā)為中心,以嵌入式系統(tǒng)設(shè)計為主線組織內(nèi)容。本書首先描述簡單嵌入式裸機系統(tǒng)、輪詢系統(tǒng)、前后臺系統(tǒng)、多任務(wù)實時操作系統(tǒng)的設(shè)計過程;然后介紹具備基本飛行功能的四軸飛行器的設(shè)計過程;最后基于大疆的四軸飛行器和異構(gòu)高性能嵌入式多核開發(fā)平臺,講解復雜嵌入式系統(tǒng)的設(shè)計方法與設(shè)計過程。本書各學科知識交叉融合,內(nèi)容講解由易到難,旨在培養(yǎng)學生解決復雜工程問題的能力,為學生逐步成長為高層次系統(tǒng)工程人才打下堅實基礎(chǔ)。
本書可作為高等院校軟件工程、計算機科學與技術(shù)、自動化、電子工程等專業(yè)的教材,也可作為項目類課程、挑戰(zhàn)性課程、綜合設(shè)計類課程的指導用書,還可供嵌入式系統(tǒng)設(shè)計或四軸飛行器愛好者學習參考。
1.以項目為中心,開展多維教學
本書打破課程界限,突破原有專業(yè)課程之間的先后關(guān)系,以項目為中心進行布局。所編內(nèi)容與新工科教學理念相匹配,倡導在課程教學活動中采取學生自主學習、數(shù)字化學習、小組學習等學習方法;同時,本書還體現(xiàn)了“四性”,即挑戰(zhàn)性、進階性、系統(tǒng)性以及完整性。本書以培養(yǎng)學生的系統(tǒng)思維能力和“元認知”思維能力為目標,將“興趣牽引、項目驅(qū)動、立足系統(tǒng)、理論與實踐有機融合”這一思想貫穿項目實現(xiàn)的全過程。
2.以系統(tǒng)設(shè)計為主線,助力培養(yǎng)工程型人才
本書以系統(tǒng)設(shè)計為主線,逐步介紹多種嵌入式系統(tǒng)的設(shè)計過程,內(nèi)容由淺入深,可幫助學生逐步建立復雜工程問題解決能力,為其逐步成長為高層次系統(tǒng)工程型人才打下堅實基礎(chǔ)。
3.理論與實踐融為一體,注重培養(yǎng)實戰(zhàn)能力
本書將高校理論優(yōu)勢與行業(yè)優(yōu)秀技術(shù)相結(jié)合,促進了理論與實踐的有機融合,并基于Arm中國、中國大疆、意法半導體(STMicroelectronics,ST)等公司的大力支持,優(yōu)化項目設(shè)計,構(gòu)建了相關(guān)實踐、實訓環(huán)境,可系統(tǒng)培養(yǎng)學生的嵌入式系統(tǒng)設(shè)計實戰(zhàn)能力。
廖勇:博士,電子科技大學信息與軟件工程學院教授,學院教學指導委員會主任;長期從事“嵌入式操作系統(tǒng)”“實時計算”等課程的教學工作,并受邀(每年)為法國魯昂高等工程師學院講授“Embedded Real-Time Operating System”課程;獲首屆全國高校教師教學創(chuàng)新大賽全國決賽二等獎,教學案例“多旋翼飛行器設(shè)計”獲首屆全國軟件工程教學案例競賽一等獎。
【章名目錄】
第 1章 概論 1
第 一部分 設(shè)計一個輪詢系統(tǒng)
第 2章 輪詢系統(tǒng) 17
第二部分 設(shè)計一個前后臺系統(tǒng)
第3章 前后臺系統(tǒng) 41
第三部分 設(shè)計一個實時操作系統(tǒng)內(nèi)核
第4章 多任務(wù)實時操作系統(tǒng) 57
第四部分 設(shè)計一個具備基本飛行功能的四軸飛行器
第5章 四軸飛行器飛行基本原理 131
第6章 基于aCoral的四軸飛行器總體設(shè)計 154
第7章 硬件系統(tǒng)設(shè)計 161
第8章 軟件系統(tǒng)設(shè)計 170
第五部分 設(shè)計一個避障尋徑四軸飛行器
第9章 避障尋徑四軸飛行器軟件
第 10章 雙目立體視覺 258
第 11章 雙目立體視覺子系統(tǒng)移植與優(yōu)化 282
第 12章 避障與路徑規(guī)劃 301
第 13章 三維地圖重建 316
參考文獻 324
【詳細目錄】
第 1章 概論 1
1.0 綜述 2
1.1 嵌入式系統(tǒng)開發(fā)模式 3
1.1.1 產(chǎn)品定義與需求分析 5
1.1.2 系統(tǒng)總體設(shè)計 5
1.1.3 軟硬件設(shè)計 5
1.1.4 軟硬件集成 5
1.1.5 系統(tǒng)測試 5
1.2 嵌入式系統(tǒng)軟件結(jié)構(gòu) 5
1.2.1 輪詢系統(tǒng) 6
1.2.2 前后臺系統(tǒng) 6
1.2.3 多任務(wù)系統(tǒng) 6
1.3 多任務(wù)實時操作系統(tǒng)aCoral 8
1.4 四軸飛行器簡介 9
1.4.1 無人機 10
1.4.2 四軸飛行器 10
1.4.3 立體視覺 11
1.4.4 同步定位與地圖構(gòu)建 12
1.4.5 路徑規(guī)劃 13
1.5 從多任務(wù)實時操作系統(tǒng)到四軸飛行器設(shè)計 13
1.6 本書結(jié)構(gòu) 14
1.7 本章小結(jié) 15
習題1 15
第 一部分 設(shè)計一個輪詢系統(tǒng)
第 2章 輪詢系統(tǒng) 17
2.0 綜述 18
2.1 輪詢系統(tǒng)設(shè)計 18
2.1.1 程序框架 18
2.1.2 調(diào)度 18
2.1.3 典型系統(tǒng) 20
2.2 搭建開發(fā)環(huán)境 20
2.3 啟動Mini2440 23
2.3.1 為什么需要啟動 23
2.3.2 啟動流程 24
2.4 輪詢的實現(xiàn) 38
2.5 本章小結(jié) 39
習題2 39
第二部分 設(shè)計一個前后臺系統(tǒng)
第3章 前后臺系統(tǒng) 41
3.0 綜述 42
3.1 前后臺系統(tǒng)簡介 42
3.1.1 應(yīng)用場景 42
3.1.2 運行方式 43
3.1.3 性能評估指標 43
3.1.4 前后臺交互 44
3.1.5 典型系統(tǒng) 44
3.2 中斷和中斷服務(wù) 45
3.2.1 中斷 45
3.2.2 中斷服務(wù) 46
3.3 Arm的中斷機制 46
3.4 一個簡單的S3C2440A中斷服務(wù) 46
3.4.1 中斷返回 47
3.4.2 中斷注冊 48
3.4.3 狀態(tài)保存和現(xiàn)場恢復 50
3.5 前后臺系統(tǒng)的實現(xiàn) 51
3.5.1 啟動Mini2440 51
3.5.2 后臺主循環(huán) 51
3.5.3 前臺中斷處理 53
3.6 本章小結(jié) 55
習題3 55
第三部分 設(shè)計一個實時操作系統(tǒng)內(nèi)核
第4章 多任務(wù)實時操作系統(tǒng) 57
4.0 綜述 58
4.1 aCoral線程 59
4.1.1 描述線程 60
4.1.2 線程優(yōu)先級 67
4.2 調(diào)度策略 70
4.2.1 線程調(diào)度分層結(jié)構(gòu) 70
4.2.2 調(diào)度策略分類 71
4.2.3 描述調(diào)度策略 71
4.2.4 查找調(diào)度策略 73
4.2.5 注冊調(diào)度策略 73
4.3 基本調(diào)度機制 76
4.3.1 創(chuàng)建線程 76
4.3.2 調(diào)度線程 89
4.3.3 線程退出 100
4.3.4 其他基本機制 103
4.4 事件處理機制 110
4.4.1 中斷 110
4.4.2 時鐘管理 125
4.5 本章小結(jié) 128
習題4 128
第四部分 設(shè)計一個具備基本飛行功能的四軸飛行器
第5章 四軸飛行器飛行基本原理 131
5.0 綜述 132
5.1 四軸飛行器機體結(jié)構(gòu) 132
5.2 四軸飛行器飛行模式 132
5.2.1 懸停、上升、下降 133
5.2.2 俯仰 133
5.2.3 滾轉(zhuǎn) 134
5.2.4 偏航 134
5.2.5 四軸飛行器設(shè)計的關(guān)鍵點 135
5.3 飛行控制 136
5.3.1 遙控器發(fā)送控制命令 137
5.3.2 姿態(tài)傳感器確定位姿 137
5.3.3 飛行的反饋控制 138
5.4 用數(shù)學描述飛行器位姿與運動 139
5.4.1 剛體在三維空間中的運動 139
5.4.2 向量的旋轉(zhuǎn) 139
5.4.3 用變換矩陣描述三維剛體旋轉(zhuǎn)與位移 140
5.4.4 用旋轉(zhuǎn)向量描述旋轉(zhuǎn)與平移 142
5.4.5 用歐拉角描述旋轉(zhuǎn) 143
5.4.6 用四元數(shù)描述旋轉(zhuǎn) 144
5.4.7 四元數(shù)與歐拉角的相互轉(zhuǎn)換 146
5.5 姿態(tài)解算 148
5.6 穩(wěn)定性控制 150
5.7 本章小結(jié) 153
習題5 153
第6章 基于aCoral的四軸飛行器總體設(shè)計 154
6.0 綜述 155
6.1 選定四軸飛行器機體 155
6.1.1 核心板 155
6.1.2 支臂 156
6.2 選定嵌入式硬件方案 156
6.3 選定嵌入式操作系統(tǒng) 157
6.4 確定軟件總體結(jié)構(gòu) 158
6.5 本章小結(jié) 159
習題6 160
第7章 硬件系統(tǒng)設(shè)計 161
7.0 綜述 162
7.1 理解STM32 Nucleo嵌入式評估板 162
7.2 擴展評估板 164
7.3 設(shè)計轉(zhuǎn)接板 165
7.3.1 確定輸入輸出設(shè)備數(shù)據(jù) 165
7.3.2 確定評估板與擴展板連接方案 165
7.3.3 生成元件庫 166
7.3.4 繪制轉(zhuǎn)接板原理圖 166
7.3.5 設(shè)計與制作轉(zhuǎn)接板PCB圖 166
7.3.6 測試轉(zhuǎn)接板 168
7.4 設(shè)計一體化控制主板 169
7.5 本章小結(jié) 169
習題7 169
第8章 軟件系統(tǒng)設(shè)計 170
8.0 綜述 171
8.1 移植aCoral 171
8.1.1 硬件抽象層移植 172
8.1.2 項目移植 187
8.2 用DARTS設(shè)計應(yīng)用系統(tǒng) 191
8.2.1 DARTS 192
8.2.2 系統(tǒng)數(shù)據(jù)流圖 195
8.2.3 任務(wù)劃分 197
8.2.4 定義任務(wù)間接口 201
8.2.5 任務(wù)設(shè)計與實現(xiàn) 202
8.2.6 驅(qū)動程序?qū)崿F(xiàn) 224
8.2.7 優(yōu)化系統(tǒng)設(shè)計 231
8.3 本章小結(jié) 246
習題8 246
第五部分 設(shè)計一個避障尋徑四軸飛行器
第9章 避障尋徑四軸飛行器軟件
總體設(shè)計 248
9.0 綜述 249
9.1 選定開發(fā)平臺 249
9.1.1 經(jīng)緯M100 250
9.1.2 異構(gòu)多核嵌入式平臺 250
9.1.3 雙目視覺傳感器 252
9.1.4 平臺物理結(jié)構(gòu) 252
9.2 軟件總體設(shè)計 253
9.3 本章小結(jié) 257
習題9 257
第 10章 雙目立體視覺 258
10.0 綜述 259
10.1 雙目立體視覺基本原理 259
10.2 標定雙目立體相機 262
10.2.1 內(nèi)參 262
10.2.2 外參 263
10.2.3 參數(shù)標定 264
10.3 評估雙目立體視覺算法 268
10.4 實現(xiàn)基于ELAS的雙目立體視覺算法 271
10.4.1 立體匹配模型 271
10.4.2 ELAS立體匹配模型的總體流程 273
10.4.3 使用描述符 274
10.4.4 提取支撐點 276
10.4.5 計算像素點視差 277
10.5 通過視差圖生成點云圖 279
10.6 本章小結(jié) 280
習題10 280
第 11章 雙目立體視覺子系統(tǒng)移植與優(yōu)化 282
11.0 綜述 283
11.1 ELAS算法性能評估 283
11.2 在TK1嵌入式平臺上移植與優(yōu)化ELAS算法 283
11.2.1 描述符的移植與優(yōu)化 284
11.2.2 支撐點及視差計算的移植與優(yōu)化 287
11.2.3 像素點視差計算的移植與優(yōu)化 289
11.2.4 零復制與GPU共享內(nèi)存 293
11.2.5 視差到點云圖轉(zhuǎn)換的優(yōu)化 296
11.3 雙目立體視覺子系統(tǒng)功能與性能測試 296
11.4 本章小結(jié) 300
習題11 300
第 12章 避障與路徑規(guī)劃 301
12.0 綜述 302
12.1 從點云圖中提取障礙物 302
12.2 動態(tài)窗口法 304
12.2.1 基本原理 304
12.2.2 飛行器運動模型 305
12.2.3 生成候選軌跡 306
12.2.4 評價候選軌跡 308
12.3 超聲波測距避障 310
12.4 功能與性能測試 310
12.4.1 障礙物提取測試 310
12.4.2 路徑規(guī)劃測試 311
12.4.3 整體避障與路徑規(guī)劃測試 313
12.5 本章小結(jié) 314
習題12 315
第 13章 三維地圖重建 316
13.0 綜述 317
13.1 SLAM在本系統(tǒng)的應(yīng)用 317
13.2 LIBVISO框架 319
13.3 特征匹配與運動估計 320
13.4 立體匹配與三維重建 321
13.5 SLAM系統(tǒng)功能測試 322
13.6 本章小結(jié) 323
習題13 323
參考文獻 324