本書包含了大量示例,幫助你開發(fā)機(jī)器人程序,并為你提供使用開源ROS庫和工具的完整解決方案。本書主要內(nèi)容包括:ROS的概念、命令行工具、可視化GUI以及如何調(diào)試ROS,如何將機(jī)器人傳感器和執(zhí)行器連接到ROS,如何從攝像頭和3D傳感器獲取數(shù)據(jù)并分析數(shù)據(jù),如何在機(jī)器人/傳感器和環(huán)境仿真中使用Gazebo,如何設(shè)計機(jī)器人,如何使用OpenCV3.0為機(jī)器人添加視覺功能,如何使用新版本的PCL向機(jī)器人添加3D感知功能。本書適合各個階層的機(jī)器人開發(fā)人員和機(jī)器人愛好者閱讀。
目 錄 Contents
推薦序一
推薦序二
譯者序
前言
作者簡介
審校者簡介
第1章 ROS入門 1
1.1PC安裝教程 3
1.2使用軟件庫安裝ROS Kinetic 3
1.2.1 配置Ubuntu軟件庫 4
1.2.2 添加軟件庫到sources.list文件中 4
1.2.3 設(shè)置密鑰 5
1.2.4 安裝ROS 5
1.2.5 初始化rosdep 6
1.2.6 配置環(huán)境 6
1.2.7 安裝rosinstall 7
1.3如何安裝VirtualBox和Ubuntu 8
1.3.1 下載VirtualBox 8
1.3.2 創(chuàng)建虛擬機(jī) 9
1.4通過Docker鏡像使用ROS 11
1.4.1 安裝Docker 11
1.4.2 獲取和使用ROS Docker鏡像和容器 11
1.5在BeagleBone Black上安裝ROS Kinetic 12
1.5.1 準(zhǔn)備工作 13
1.5.2 配置主機(jī)和source.list文件 16
1.5.3 設(shè)置密鑰 16
1.5.4 安裝ROS功能包 17
1.5.5 為ROS初始化rosdep 17
1.5.6 在BeagleBone Black中配置環(huán)境 18
1.5.7 在BeagleBone Black中安裝rosinstall 18
1.5.8 BeagleBone Black基本ROS示例 18
1.6本章小結(jié) 19
第2章 ROS架構(gòu)及概念 20
2.1理解ROS文件系統(tǒng)級 20
2.1.1 工作空間 21
2.1.2 功能包 22
2.1.3 元功能包 23
2.1.4 消息 24
2.1.5 服務(wù) 25
2.2理解ROS計算圖級 25
2.2.1 節(jié)點與nodelet 27
2.2.2 主題 28
2.2.3 服務(wù) 29
2.2.4 消息 29
2.2.5 消息記錄包 30
2.2.6 節(jié)點管理器 30
2.2.7 參數(shù)服務(wù)器 30
2.3理解ROS開源社區(qū)級 31
2.4ROS試用練習(xí) 32
2.4.1 ROS文件系統(tǒng)導(dǎo)覽 32
2.4.2 創(chuàng)建工作空間 32
2.4.3 創(chuàng)建ROS功能包和元功能包 33
2.4.4 編譯ROS功能包 34
2.4.5 使用ROS節(jié)點 35
2.4.6 如何使用主題與節(jié)點交互 37
2.4.7 如何使用服務(wù) 39
2.4.8 使用參數(shù)服務(wù)器 41
2.4.9 創(chuàng)建節(jié)點 42
2.4.10 編譯節(jié)點 44
2.4.11 創(chuàng)建msg和srv文件 45
2.4.12 使用新建的srv和msg文件 48
2.4.13 launch文件 51
2.4.14 動態(tài)參數(shù) 53
2.5本章小結(jié) 57
第3章 可視化和調(diào)試工具 58
3.1調(diào)試ROS節(jié)點 60
3.1.1 使用gdb調(diào)試器調(diào)試ROS節(jié)點 60
3.1.2 在ROS節(jié)點啟動時調(diào)用gdb調(diào)試器 61
3.1.3 在ROS節(jié)點啟動時調(diào)用valgrind分析節(jié)點 62
3.1.4 設(shè)置ROS節(jié)點core文件轉(zhuǎn)儲 62
3.2日志消息 62
3.2.1 輸出日志消息 62
3.2.2 設(shè)置調(diào)試消息級別 63
3.2.3 為特定節(jié)點配置調(diào)試消息級別 64
3.2.4 消息命名 65
3.2.5 按條件顯示消息與過濾消息 65
3.2.6 顯示消息的方式——單次、可調(diào)以及其他組合 66
3.2.7 使用rqt_console和rqt_logger_level在運(yùn)行時修改調(diào)試級別 66
3.3檢測系統(tǒng)狀態(tài) 69
3.4設(shè)置動態(tài)參數(shù) 73
3.5當(dāng)出現(xiàn)異常狀況時使用roswtf 75
3.6可視化節(jié)點診斷 77
3.7繪制標(biāo)量數(shù)據(jù)圖 78
3.8圖像可視化 81
3.93D可視化 83
3.9.1 使用rqt_rviz在3D世界中實現(xiàn)數(shù)據(jù)可視化 83
3.9.2 主題與坐標(biāo)系的關(guān)系 86
3.9.3 可視化坐標(biāo)變換 87
3.10保存與回放數(shù)據(jù) 88
3.10.1 什么是消息記錄包文件 89
3.10.2 使用rosbag在消息記錄包文件中記錄數(shù)據(jù) 89
3.10.3 回放消息記錄包文件 90
3.10.4 查看消息記錄包文件的主題和消息 91
3.11應(yīng)用rqt與rqt_gui插件 93
3.12本章小結(jié) 93
第4章 3D建模與仿真 95
4.1在ROS中自定義機(jī)器人的3D模型 95
4.2創(chuàng)建及時個URDF文件 95
4.2.1 解釋文件格式 97
4.2.2 在rviz里查看3D模型 98
4.2.3 加載網(wǎng)格到機(jī)器人模型中 100
4.2.4 使機(jī)器人模型運(yùn)動 100
4.2.5 物理和碰撞屬性 101
4.3xacro——一種更好的機(jī)器人建模方法 102
4.3.1 使用常量 102
4.3.2 使用數(shù)學(xué)方法 103
4.3.3 使用宏 103
4.3.4 使用代碼移動機(jī)器人 103
4.3.5 使用SketchUp進(jìn)行3D建模 107
4.4在ROS中仿真 109
4.4.1 在Gazebo中使用URDF 3D模型 109
4.4.2 在Gazebo中添加傳感器 112
4.4.3 在Gazebo中加載和使用地圖 115
4.4.4 在Gazebo中移動機(jī)器人 116
4.5本章小結(jié) 118
第5章 導(dǎo)航功能包集入門 119
5.1ROS導(dǎo)航功能包集 119
5.2創(chuàng)建變換 120
5.2.1 創(chuàng)建廣播器 121
5.2.2 創(chuàng)建偵聽器 121
5.2.3 查看坐標(biāo)變換樹 124
5.3傳感器信息 124
5.4里程數(shù)據(jù)信息 127
5.4.1 Gazebo如何獲取里程數(shù)據(jù) 128
5.4.2 使用Gazebo創(chuàng)建里程數(shù)據(jù) 131
5.4.3 創(chuàng)建自定義里程數(shù)據(jù) 132
5.5創(chuàng)建基礎(chǔ)控制器 135
5.6使用ROS創(chuàng)建地圖 139
5.6.1 使用map_server保存地圖 141
5.6.2 使用map_server加載地圖 141
5.7本章小結(jié) 142
第6章 導(dǎo)航功能包集進(jìn)階 144
6.1創(chuàng)建功能包 144
6.2創(chuàng)建機(jī)器人配置 144
6.3配置全局和局部代價地圖 147
6.3.1 基本參數(shù)的配置 147
6.3.2 全局代價地圖的配置 148
6.3.3 局部代價地圖的配置 149
6.3.4 底盤局部規(guī)劃器配置 149
6.4為導(dǎo)航功能包集創(chuàng)建啟動文件 150
6.5為導(dǎo)航功能包集設(shè)置rviz 151
6.5.1 2D位姿估計 152
6.5.2 2D導(dǎo)航目標(biāo) 152
6.5.3 靜態(tài)地圖 154
6.5.4 粒子云 154
6.5.5 機(jī)器人占地空間 155
6.5.6 局部代價地圖 156
6.5.7 全局代價地圖 156