本書主要介紹樹莓派及其配置、基本操作,以及智能終端應(yīng)用開發(fā)的環(huán)境搭建和開發(fā)過程。不僅涵蓋了智能終端的基礎(chǔ)技術(shù),還詳細(xì)介紹了智能終端應(yīng)用開發(fā)過程。主要是結(jié)合樹莓派做智能終端應(yīng)用開發(fā),而且加入了ROS機(jī)器人開發(fā)。本書適用于高等職業(yè)院校人工智能技術(shù)應(yīng)用專業(yè)、物聯(lián)網(wǎng)專業(yè)及其他相關(guān)專業(yè)的學(xué)生,也可作為智能終端應(yīng)用開發(fā)愛好者的參考書。讀者參考本書,可以在樹莓派上外接傳感器做智能終端應(yīng)用開發(fā),也可以部署ROS做智能機(jī)器人應(yīng)用開發(fā),從而自己制作智能終端產(chǎn)品。
在當(dāng)今數(shù)字化時(shí)代,智能終端技術(shù)正以前所未有的速度發(fā)展,深刻地影響和改變著我們的生活和工作方式。從智能家居到工業(yè)自動化,從智慧城市到無人駕駛,智能終端技術(shù)的應(yīng)用前景無限廣闊。為了滿足這一領(lǐng)域日益增長的人才需求,培養(yǎng)具有創(chuàng)新精神和實(shí)踐能力的智能終端應(yīng)用開發(fā)者,編寫了這本教材。
本書旨在為讀者提供一個(gè)全面、系統(tǒng)的智能終端應(yīng)用開發(fā)學(xué)習(xí)路徑。無論是初學(xué)者還是有一定基礎(chǔ)的專業(yè)人士,都能通過本書的學(xué)習(xí),掌握智能終端開發(fā)的核心知識與技能。本書特別注重理論與實(shí)踐相結(jié)合,強(qiáng)調(diào)動手操作能力的培養(yǎng),以期讀者能夠?qū)W以致用,解決實(shí)際問題。
本書共分為14章,內(nèi)容涵蓋樹莓派的簡介與操作、編程環(huán)境搭建、文件傳輸與串口通信以及K210和YOLO v3等先進(jìn)技術(shù)。書中還深入講解了ROS的基礎(chǔ)知識、常用組件、機(jī)器人平臺、SLAM建圖與自主導(dǎo)航、機(jī)器人視覺、MoveIt!與機(jī)械臂控制以及語音功能和多機(jī)器人系統(tǒng)的綜合應(yīng)用。本書具有以下特色。
(1) 系統(tǒng)性: 從智能終端的基本概念到復(fù)雜系統(tǒng)的應(yīng)用開發(fā),本書提供了一個(gè)連貫的學(xué)習(xí)路徑,幫助讀者逐步建立起完整的知識體系。
(2) 實(shí)用性: 每章都配有實(shí)踐指導(dǎo)和案例分析,使讀者能夠通過動手實(shí)踐鞏固理論知識。
(3) 前沿性: 涵蓋了當(dāng)前智能終端領(lǐng)域的最新技術(shù),如ROS(機(jī)器人操作系統(tǒng))、機(jī)器人視覺、語音識別等,確保讀者能夠掌握行業(yè)最新動態(tài)。
(4) 擴(kuò)展性: 本書不僅介紹了基礎(chǔ)開發(fā)技能,還探討了多機(jī)器人系統(tǒng)的綜合應(yīng)用,為讀者提供了廣闊的技術(shù)視野和發(fā)展空間。
在本書編寫過程中,得到了許多同行和專家的寶貴意見與支持,在此向所有提供幫助和支持的個(gè)人和機(jī)構(gòu)表示衷心的感謝。
最后,希望本書能夠成為讀者在智能終端應(yīng)用開發(fā)領(lǐng)域的良師益友,激發(fā)創(chuàng)新思維,培養(yǎng)實(shí)踐技能,共同推動智能科技的發(fā)展。
編者
2025年5月
杜鵑 河南省骨干教師,主要從事物聯(lián)網(wǎng)、人工智能方向的教學(xué)工作。曾獲全國職業(yè)院校教師教學(xué)能力大賽國家二等獎,河南省一等獎。指導(dǎo)學(xué)生參加全國職業(yè)院校技能大賽物聯(lián)網(wǎng)技術(shù)應(yīng)用賽項(xiàng),多次獲得國家二等獎、河南省一等獎;指導(dǎo)學(xué)生參加一帶一路金磚國家技能大賽物聯(lián)網(wǎng)賽項(xiàng),曾獲國家特等獎、一等獎、國際二等獎、三等獎。發(fā)表論文近20篇,其中EI 6篇、核心7篇,發(fā)明專利2項(xiàng),實(shí)用新型專利2項(xiàng)。主持河南省科研項(xiàng)目2項(xiàng)、教研項(xiàng)目2項(xiàng)。
第1章樹莓派概述
1.1樹莓派
1.1.1樹莓派發(fā)展歷史
1.1.2樹莓派家族
1.2樹莓派擴(kuò)展板
1.2.1HiFi DAC擴(kuò)展板
1.2.2樹莓派瑞士軍刀擴(kuò)展板
1.2.3其他擴(kuò)展板
1.3操作系統(tǒng)的選擇與安裝
1.3.1Raspberry Pi OS
1.3.2NOOBS
1.3.3Ubuntu MATE
1.3.4Snappy Ubuntu Core
1.3.5DietPi
1.3.6RISC OS
1.3.7Windows 10 IoT
1.3.8系統(tǒng)的安裝
1.4操作系統(tǒng)初始化
1.4.1顯示設(shè)置
1.4.2更改區(qū)域
1.4.3修改密碼
1.4.4其他工作
1.4.5關(guān)閉樹莓派
第2章樹莓派的網(wǎng)絡(luò)連接
2.1有線網(wǎng)絡(luò)配置
2.1.1有線連接路由器
2.1.2直連計(jì)算機(jī)
2.2無線網(wǎng)絡(luò)配置
2.2.1通過圖形化用戶界面配置
2.2.2通過修改配置文件連接WiFi
2.3樹莓派靜態(tài)IP地址配置
2.3.1通過圖形化界面設(shè)置靜態(tài)IP地址
2.3.2通過修改網(wǎng)絡(luò)接口文件設(shè)置靜態(tài)IP地址
2.4利用SSH遠(yuǎn)程控制樹莓派
2.4.1SSH簡介
2.4.2SSH認(rèn)證
2.4.3無顯示屏啟用SSH
2.4.4使用圖形化用戶界面啟用SSH
2.4.5使用終端啟用SSH
2.4.6PuTTY通過密碼建立SSH連接
2.4.7PuTTY通過SSH key建立SSH連接
2.5利用VNC遠(yuǎn)程控制樹莓派
2.5.1VNC簡介
2.5.2安裝VNC
2.5.3開啟VNC
2.5.4使用VNC遠(yuǎn)程登錄樹莓派
2.5.5無法顯示桌面的問題
第3章樹莓派的基本操作
3.1系統(tǒng)目錄
3.2常用的Linux終端快捷鍵
3.3磁盤管理
3.3.1df命令
3.3.2fdisk命令
3.3.3du命令
3.4文件管理
3.4.1SSH遠(yuǎn)程連接下的文件管理
3.4.2VNC遠(yuǎn)程連接下的文件管理
3.5配置NFS服務(wù)端
3.5.1NFS簡介
3.5.2NFS的工作原理
3.5.3安裝NFS服務(wù)器組件
3.5.4啟動NFS服務(wù)
3.6配置NFS客戶端
3.6.1安裝NFS客戶端組件
3.6.2從服務(wù)端掛載共享文件
3.6.3卸載文件
第4章樹莓派編程環(huán)境
4.1Python概述
4.1.1什么是Python
4.1.2Python的特點(diǎn)
4.2Python程序開發(fā)
4.2.1部分控制語句
4.2.2迭代器和生成器
4.2.3表達(dá)式
4.2.4對象的方法
4.3運(yùn)行Python程序
4.3.1Thonny Python的界面
4.3.2Thonny的View選項(xiàng)
4.3.3Thonny的Options選項(xiàng)
4.3.4編寫Python程序
第5章WinSCP
5.1WinSCP的安裝
5.2導(dǎo)入文件至樹莓派
5.3從樹莓派中導(dǎo)出文件
第6章樹莓派的串口通信
6.1什么是串口通信
6.1.1串口通信的原理
6.1.2串口通信的方式
6.1.3串口通信接口標(biāo)準(zhǔn)
6.2樹莓派串口
6.3利用串口與計(jì)算機(jī)通信
第7章K210芯片和YOLO v3簡介
7.1K210
7.1.1K210簡介
7.1.2基于K210芯片的開發(fā)環(huán)境搭建
7.1.3K210芯片的基礎(chǔ)功能
7.1.4K210芯片的高級功能
7.2YOLO v3
7.2.1YOLO v3簡介
7.2.2訓(xùn)練YOLO v3模型
第8章ROS簡介與基礎(chǔ)
8.1初識ROS
8.1.1ROS簡介
8.1.2ROS的歷史
8.1.3ROS的特點(diǎn)
8.2ROS的安裝與配置
8.3ROS架構(gòu)
8.3.1ROS架構(gòu)簡介
8.3.2文件系統(tǒng)
8.3.3計(jì)算圖
8.3.4開源社區(qū)
8.4通信機(jī)制
8.4.1話題通信機(jī)制
8.4.2服務(wù)通信機(jī)制
8.4.3參數(shù)管理機(jī)制
8.4.4話題和服務(wù)的區(qū)別
8.5ROS開發(fā)基礎(chǔ)
8.5.1小烏龜例程
8.5.2創(chuàng)建工作空間和功能包
8.5.3自定義軟件包
8.5.4深入工作空間
8.5.5創(chuàng)建自定義的ROS消息和服務(wù)
8.5.6話題通信的開發(fā)
8.5.7服務(wù)通信的開發(fā)
第9章ROS常用組件
9.1rosbag數(shù)據(jù)記錄與回放
9.1.1錄制數(shù)據(jù)(創(chuàng)建.bag文件)
9.1.2錄制所有發(fā)布的話題
9.1.3檢查并回放.bag文件
9.1.4錄制數(shù)據(jù)子集
9.1.5rosbag錄制和回放的局限性
9.2launch文件
9.2.1介紹
9.2.2命令用法
9.2.3傳遞參數(shù)
9.2.4解析 launch 文件
9.3TF
9.3.1TF的作用
9.3.2TF示例
9.3.3TF的使用方法
9.4rqt工具箱
9.4.1日志輸出工具(rqt_console)
9.4.2計(jì)算圖可視化工具(rqt_graph)
9.4.3數(shù)據(jù)繪圖工具(rqt_plot)
9.4.4參數(shù)動態(tài)配置工具
9.5RViz三維可視化工具
9.5.1安裝并運(yùn)行RViz
9.5.2數(shù)據(jù)可視化
9.5.3插件擴(kuò)展機(jī)制
第10章機(jī)器人平臺
10.1機(jī)器人的定義與組成
10.1.1機(jī)器人的定義
10.1.2機(jī)器人的組成
10.2激光雷達(dá)
10.2.1激光雷達(dá)簡介
10.2.2激光雷達(dá)的參數(shù)
10.3深度相機(jī)
10.3.1深度相機(jī)簡介
10.3.2深度相機(jī)分類
10.4機(jī)器人教學(xué)平臺介紹
10.5運(yùn)行機(jī)器人
10.5.1配置環(huán)境變量
10.5.2遠(yuǎn)程連接機(jī)器人
10.5.3驗(yàn)證配置
10.5.4鍵盤控制機(jī)器人移動
第11章SLAM建圖與自主導(dǎo)航
11.1基礎(chǔ)理論
11.1.1SLAM簡介
11.1.2傳感器簡介
11.2準(zhǔn)備工作
11.3傳感器信息
11.3.1環(huán)境深度信息
11.3.2里程計(jì)信息
11.4SLAM建圖算法
11.4.1GMapping算法
11.4.2Hector算法
11.4.3cartographer
11.5機(jī)器人導(dǎo)航
11.5.1導(dǎo)航功能包
11.5.2機(jī)器人的導(dǎo)航配置
11.5.3機(jī)器人導(dǎo)航實(shí)踐
11.5.4多點(diǎn)連續(xù)導(dǎo)航
第12章機(jī)器人視覺
12.1攝像頭標(biāo)定
12.2ROS圖像數(shù)據(jù)
12.2.1機(jī)器人的二維圖像數(shù)據(jù)
12.2.2三維點(diǎn)云數(shù)據(jù)
12.3OpenCV庫
12.3.1OpenCV安裝
12.3.2機(jī)器人中的文件結(jié)構(gòu)
12.3.3OpenCV 圖像處理示例
12.4二維碼識別
12.4.1識別功能包
12.4.2生成二維碼標(biāo)簽
12.4.3攝像頭識別二維碼
12.5視覺目標(biāo)追蹤
12.5.1KCF算法簡介
12.5.2KCF物體跟蹤算法使用
12.6深度相機(jī)與VSLAM
12.6.1深度相機(jī)模擬激光雷達(dá)
12.6.2ORBSLAM
12.6.3ORBSLAM 2
12.7RTABSLAM三維建圖
12.7.1RTABSLAM介紹
12.7.2機(jī)器人RTAB建圖
12.7.3機(jī)器人RTAB導(dǎo)航
第13章語音功能
13.1語音識別框架
13.2TTS文字轉(zhuǎn)語音
13.2.1獲取科大訊飛公司授權(quán)ID
13.2.2配置xtark_audio功能包
13.2.3運(yùn)行xtark_audio功能包
13.3配置語音識別功能包
13.3.1下載SDK
13.3.2替換資源
13.3.3配置語音參數(shù)
13.4語音識別功能包
13.4.1功能介紹
13.4.2使用語音識別功能包
13.4.3語音識別功能包使用技巧
第14章綜合應(yīng)用多機(jī)器人系統(tǒng)
14.1網(wǎng)絡(luò)配置
14.2軟件包部署
14.3文件說明
14.4軟件包應(yīng)用
14.4.1多機(jī)器人驅(qū)動
14.4.2多機(jī)器人通信示例
14.4.3多機(jī)器人獨(dú)立控制/同時(shí)控制
14.4.4多機(jī)器人導(dǎo)航框架
參考文獻(xiàn)