TOP
0
0
即日起~6/30,暑期閱讀書展,好書7折起
ROS機器人編程零基礎入門與實踐(簡體書)
滿額折

ROS機器人編程零基礎入門與實踐(簡體書)

商品資訊

人民幣定價:99 元
定價
:NT$ 594 元
優惠價
87517
領券後再享88折起
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:15 點
相關商品
商品簡介
名人/編輯推薦
目次

商品簡介

本書是針對ROS(機器人操作系統)初學者的入門教程,內容聚焦於ROS的使用和開發。以Ubuntu操作系統安裝和使用為起點,依次介紹了ROS安裝、實體/仿真機器人搭建、機器視覺、SLAM建圖、導航、多機器人系統等知識,最終引導讀者獨立完成機器人應用開發的任務。本書中的實驗環境和代碼基於ROS的Noetic版本。
本書為讀者提供了全部案例源代碼和學習資料,讀者可以直接掃描二維碼下載。
本書適合ROS用戶及其編程開發人員使用,也可以作為高等學校或培訓學校相關專業的參考教材。

名人/編輯推薦

實操性高,以案例形式深入淺出地介紹了ROS開發相關知識和具體流程。
配套資源豐富,提供了全部案例源代碼和學習資料,讀者可以直接掃描二維碼下載。

隨著科技的發展,機器人已經從科幻小說走進了人們的日常生活中,如房間裡用來清潔地板的掃地機器人,餐廳中穿梭往來送餐的服務機器人,商場中引導顧客的引導機器人,園區中配送快遞的無人快遞配送車,道路上的自動駕駛汽車等。伴隨而來的是行業對於機器人相關技術人才的需求愈加旺盛。而面對著功能各異、形態千差萬別的機器人,它們之間有著什麼差異?有著什麼共性?應該從哪裡開始了解它們?怎樣才能掌握機器人開發相關的技術?
機器人操作系統(Robot Operating System,ROS)就是一個很好的入手方向,ROS是一套應用於機器人開發的軟件框架,開始應用於科學研究領域,由於其強大的功能、開源的特性和良好的社區環境,逐漸被越來越多的商業公司應用到產品開發中。ROS經過了多年的發展,已經成為機器人行業的事實標準。
提到ROS的學習,人們常聽到的一個說法是“學習曲線很陡峭”,這是指ROS在入門學習階段比較艱難。而結合相關的學習經驗和眾多學生的反饋,可以發現導致 ROS 學習入門難的幾個原因如下:
1)ROS目前主流使用的操作系統平臺為Linux操作系統的發行版,例如 Ubuntu,而多數非計算機專業的學生在此前並沒有了解過Linux操作系統,加上Linux中的主要操作都是通過終端命令行輸入指令完成的,和日常廣泛使用的Windows操作系統依賴圖形化界面的操作方式有很大的區別,這就導致了很多用戶沒法熟練地使用,而Linux操作系統是ROS運行的基礎環境,不能熟練使用必然會給ROS的學習帶來很大的阻礙。
2)對於ROS中常用的工具掌握不熟練,甚至不知道有這些工具的存在,正所謂“工欲善其事必先利其器”,而“利其器”的前提則是“知有器”,ROS 為開發者提供了很多用於調試和診斷問題的工具,每種工具有各自擅長分析和解決的問題,不會靈活地使用各類工具來輔助機器人的開發和調試,必然會極大地影響開發和學習的效率。
3)目前很多 ROS 相關的教程是基於仿真軟件或者一款特定的機器人硬件而展開的,對於仿真軟件中的機器人與實體機器人之間的區別和聯繫,以及怎樣去移植和適配,並沒有做出很好的闡述,這就使用戶在學習完成後想要搭建自己的機器人平臺或者將教程中的軟件移植到其他機器人平臺上時存在一定的難度。
第四,現在已經有很多個人或組織開源了自己所開發的ROS功能包軟件並配套了詳細的使用教程,初學者可以根據文檔或視頻教程去運行這些軟件實現相應的功能,或者基於開源的軟件做一些修改來快速實現自己的功能,但是當初學者想要實現一些新的功能,並且沒有現成的開源軟件可以參考時就會無從下手。究其原因是對 ROS 的編程思想缺乏了解,開源的軟件通常只是給出了一套實現功能的代碼和使用教程,但是對於功能實現的分析過程和思路卻鮮有提及,即告訴了“怎麼做”但沒有告訴“為什麼這樣做”。
針對以上幾個問題,本書在內容選取和結構編排上做了一些針對性的設計。
第 1 章為學習ROS必備的Linux知識,介紹Linux操作系統的安裝、使用,為後面在Linux中使用ROS打下基礎。
第 2 章為認識ROS,介紹ROS的安裝,梳理ROS中眾多概念的聯繫,通過官方提供的例程來熟悉各種工具的使用。
第 3 章為ROS編程基礎,介紹ROS開發環境的搭建和編程的基本方式,鞏固第2章中的ROS概念和工具知識點。
第 4 章為ROS機器人平臺搭建,介紹ROS機器人的主要構成部件和選型參考,以及組建一套可以用於開發學習的機器人。
第 5 章為機器人仿真環境搭建,介紹在機器人仿真軟件中搭建機器人仿真平臺以及與實體機器人和仿真環境中機器人的區別與聯繫,為第6、7、8三個章節中的機器人例程運行做準備。
第 6 章為ROS中的OpenCV和機器視覺,介紹機器人中的機器視覺,機器視覺是目前機器人研究中一個重要的組成部分,本章介紹ROS和OpenCV結合方法以及經典的機器視覺實驗。
第 7 章為激光雷達SLAM建圖和自主導航,介紹機器人使用激光雷達完成SLAM構建地圖和在地圖中導航的實驗。
第8章為ROS多機器人系統,介紹該系統的搭建和控制。
第 9 章為自己編寫程序控制機器人,結合實例分析ROS機器人應用開發的思路,以及相關API接口的查找、使用方法,並編寫代碼來實現相應功能。
由於作者水平有限,書中難免有疏漏之處,敬請讀者批評指正。

目次

前言
二維碼清單
第1章 學習ROS必備的Linux知識1
1.1 Linux操作系統介紹1
1.1.1 Linux的誕生1
1.1.2 Linux、UNIX、系統、內核和發行版2
1.2 Ubuntu環境搭建3
1.2.1 VMWare的安裝使用3
1.2.2 安裝Ubuntu系統5
1.3 Ubuntu桌面使用10
1.3.1 Ubuntu的桌面布局10
1.3.2 安裝VMware Tools工具11
1.4 shell和常用命令12
1.4.1 shell、終端和命令12
1.4.2 常用shell命令14
1.5 Ubuntu安裝和卸載軟件17
1.5.1 使用國內軟件源提升下載速度17
1.5.2 通過apt管理軟件19
1.5.3 通過應用商店安裝卸載軟件19
1.6 vim編輯器使用21
1.7 Linux文件系統22
1.7.1 Linux文件系統結構22
1.7.2 目錄內容存放規則24
1.8 root用戶和權限管理24
1.8.1 Linux中的權限概念25
1.8.2 文件/目錄權限查看和修改25
1.8.3 啟用root用戶26
1.9 嵌入式單板計算機和Linux27
第2章 認識ROS30
2.1 ROS是什麼30
2.1.1 ROS從何而來30
2.1.2 為什麼要使用ROS31
2.2 如何安裝ROS32
2.3 ROS通信結構37
2.3.1 節點和主節點38
2.3.2 話題(Topic)39
2.3.3 服務(Service)40
2.3.4 動作(Action)41
2.3.5 參數服務器42
2.4 ROS常用shell命令43
2.5 ROS常用圖形工具50
2.5.1 rqt工具箱51
2.5.2 rviz52
2.6 ROS坐標系和tf變換53
2.6.1 ROS中的坐標定義53
2.6.2 ROS中的tf變換54
2.7 ROS工作空間56
2.7.1 ROS工作空間是什麼57
2.7.2 創建並使用一個工作空間58
第3章 ROS編程基礎60
3.1 ROS開發環境搭建60
3.1.1 Ubuntu下安裝VSCode60
3.1.2 VSCode常用插件安裝61
3.2 新建一個ROS功能包62
3.3 編寫一對發布訂閱節點(C++)64
3.3.1 編寫發布節點(C++)64
3.3.2 編寫訂閱節點(C++)66
3.4 編寫一對發布訂閱節點(Python)67
3.4.1 編寫發布節點(Python)67
3.4.2 編寫訂閱節點(Python)68
3.5 編寫launch文件用於啟動節點70
3.5.1 通過launch文件啟動C++編譯的節點70
3.5.2 通過launch文件啟動Python節點71
3.5.3 在launch文件中調用launch文件72
3.6 創建新消息類型並編寫節點發布消息73
3.6.1 編寫自定義消息74
3.6.2 驗證消息正常產生75
3.6.3 編寫節點發布自定義消息類型(C++)76
3.6.4 編寫節點訂閱自定義消息類型(Python)76
3.7 創建一個服務類型並編寫服務端/客戶端節點77
3.7.1 定義並編寫一個自定義服務77
3.7.2 通過rossrv驗證服務產生78
3.7.3 編寫自定義服務的服務端(C++)79
3.7.4 編寫自定義服務的服務端(Python)80
3.7.5 編寫自定義服務的客戶端(C++)80
3.7.6 編寫自定義服務的客戶端(Python)81
3.8 tf變換編程入門82
3.8.1 通過static_transform_publisher發布靜態坐標變換82
3.8.2 編寫節點實現動態tf變換(Python)84
3.8.3 編寫節點實現動態tf變換(C++)85
第4章 ROS機器人平臺搭建87
4.1 機器人系統的典型構成87
4.2 幾種常見的機器人底盤運動學模型88
4.2.1 差速轉向結構89
4.2.2 阿克曼轉向結構90
4.2.3 全向運動結構92
4.3 驅動和電池系統95
4.3.1 驅動系統—電動機95
4.3.2 電池系統97
4.4 控制系統—底盤控制器98
4.5 控制系統—車載計算機100
4.5.1 車載計算機需要實現的功能100
4.5.2 車載計算機的選擇100
4.5.3 將車載計算機和底盤控制器連接起來102
4.6 機器人上常用的傳感器105
4.6.1 獲取機器人運動狀態—編碼器和IMU105
4.6.2 讓機器人看見世界—攝像頭107
4.6.3 讓機器人感知世界的“深淺”—立體相機108
4.6.4 讓機器人具備全向感知能力—激光雷達109
4.7 遠程連接車載計算機111
4.7.1 路由模式和WiFi模式111
4.7.2 SSH遠程登錄112
4.7.3 使用遠程桌面連接機器人113
4.8 底盤啟動和控制115
4.8.1 啟動底盤驅動節點115
4.8.2 控制機器人運動116
4.8.3 向launch文件中傳入變量118
4.9 機器人底盤ROS節點源碼解析119
4.9.1 base_control功能包文件結構120
4.9.2 base_control.launch文件解讀120
4.9.3 base_control.py源碼解讀122
4.9.4 bash腳本與udev規則131
4.10 ROS分布式通信配置132
4.10.1 分布式通信配置條件檢查133
4.10.2 分布式通信配置和測試驗證135
第5章 機器人仿真環境搭建137
5.1 為什麼要有機器人仿真環境137
5.1.1 機器人仿真主要解決的問題137
5.1.2 仿真環境中的機器人和真實機器人的聯繫138
5.2 在Stage仿真器中創建機器人139
5.2.1 Stage仿真器簡介139
5.2.2 創建Stage仿真器地圖和機器人模型140
5.2.3 控制Stage仿真器中的機器人143
5.3 在Gazebo仿真器中創建機器人144
5.3.1 Gazebo仿真器簡介144
5.3.2 Gazebo仿真器中的環境模型147
5.4 機器人模型和URDF文件150
5.4.1 URDF文件150
5.4.2 xacro文件和Gazebo插件155
5.4.3 通過Solidworks 創建機器人模型157
第6章 ROS中的OpenCV和機器視覺159
6.1 攝像頭的驅動和圖像話題訂閱159
6.1.1 啟動攝像頭159
6.1.2 訂閱攝像頭圖像並顯示161
6.1.3 攝像

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 517
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區