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