| 作者 |
| (印)朗坦·约瑟夫(Lentin Joseph) |
| 丛书名 |
| 机器人设计与制作系列 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9787111598176 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 本书11个ROS机器人项目,在无须大量硬件的情况下可直接实现原型设计。本书首先介绍ROS及其安装过程。在完成基础知识学习之后,将会学习一些非常棒的项目,如构建自动驾驶汽车、自主移动机器人以及使用深度学习和ROS进行图像识别等。这里可以找到适用于初级、中级甚至专家级的各类ROS机器人应用程序! |
| 目录 |
| 译者序 推荐序一 推荐序二 作者简介 审校者简介 前言 致谢 第1章 入门ROS机器人应用程序开发 1 1.1 ROS入门 2 1.1.1 ROS发行版 2 1.1.2 支持ROS的操作系统 3 1.1.3支持ROS的机器人和传感器 4 1.1.4为什么选择ROS 5 1.2 ROS基础 6 1.2.1文件系统级 7 1.2.2计算图级 8 1.2.3ROS社区级 9 1.2.4ROS通信 9 1.3ROS客户端库 10 1.4ROS工具 11 1.4.1Rviz(ROS可视化) 11 1.4.2rqt_plot 11 1.4.3rqt_graph 12 1.5ROS仿真器 13 1.6在Ubuntu 16.04 LTS上安装ROS Kinetic 13 1.7在VirtualBox上设置ROS 17 1.8设置ROS工作区 19 1.9ROS在工业和研究中的机遇 20 1.10 问题 22 1.11 本章总结 22 第2章 使用ROS、OpenCV和Dynamixel伺服舵机进行人脸检测与跟踪 23 2.1项目概述 23 2.2硬件和软件需求 24 2.3ROS与Dynamixel伺服舵机的接口 33 2.4创建人脸跟踪ROS包 34 2.5人脸跟踪功能包的工作原理 36 2.5.1理解人脸跟踪代码 38 2.5.2理解CMakeLists.txt 41 2.5.3track.yaml文件 43 2.5.4启动文件 43 2.5.5运行人脸跟踪器节点 44 2.5.6face_tracker_control功能包 45 2.5.7 云台控制器配置文件 46 2.5.8舵机参数配置文件 47 2.5.9人脸跟踪控制器节点 47 2.5.10 创建CMakeLists.txt 49 2.5.11 测试人脸跟踪控制功能包 49 2.5.12 集成所有节点 51 2.5.13 固定支架并安装电路 51 2.5.14 最终测试 52 2.6 问题 52 2.7 本章总结 53 第3章 在ROS中构建一个像Siri的聊天机器人 54 3.1人机交互机器人 54 3.2构建人机交互机器人 55 3.3预备条件 56 3.4AIML入门 57 3.4.1AIML标签 57 3.4.2PyAIML解释器 58 3.4.3在Ubuntu 16.04 LTS上安装PyAIML 59 3.4.4使用PyAIML 59 3.4.5加载多个AIML文件 60 3.4.6在ROS中创建AIML机器人 62 3.4.7AIML ROS功能包 62 3.5 问题 70 3.6 本章总结 70 第4章 使用ROS控制嵌入式电路板 71 4.1主流嵌入式电路板入门 71 4.1.1如何选择Arduino开发板 71 4.1.2Raspberry Pi(树莓派)介绍 74 4.1.3Odroid开发板 76 4.2Arduino与ROS的接口 76 4.2.1使用Arduino和ROS监控光线亮度 79 4.2.2在PC上运行ROS串行服务器 81 4.2.3通过mbed连接STM32开发板和ROS 82 4.2.4使用Energia连接ROS与Tiva C Launchpad板 85 4.3在Raspberry Pi和Odroid上运行ROS 87 4.3.1将Raspberry Pi和Odroid连接到PC 88 4.3.2ROS控制GPIO引脚 90 4.4 问题 94 4.5 本章总结 95 第5章 使用手势远程操作机器人 96 5.1使用键盘遥控ROS龟 97 5.2使用手势进行遥控 98 5.3项目配置 100 5.4MPU-9250、Arduino和ROS连接 101 5.5在Rviz中可视化IMU TF 106 5.6将IMU数据转换为twist消息 107 5.7集成和最终运行 109 5.8使用Android手机进行遥控 111 5.9 问题 113 5.10 本章总结 113 第6章 物体检测和识别 114 6.1物体检测和识别的快速入门 114 6.2ROS中的find_object_2d包 116 6.2.1安装find_object_2d包 116 6.2.2运行find_object_2d节点检测网络摄像头图像中的物体 117 6.2.3使用深度传感器运行find_object_2d节点 121 6.33D物体识别快速入门 124 6.4ROS中3D物体识别包的介绍 125 6.5从3D网格中检测和识别物体 127 6.5.1使用物体的3D模型进行训练 127 6.5.2使用捕获的3D模型进行训练 129 6.6识别物体 132 6.7 问题 135 6.8 本章总结 135 第7章 使用ROS和TensorFlow进行深度学习 136 7.1深度学习及其应用简介 136 7.2深度学习机器人 137 7.3深度学习库 138 7.4TensorFlow入门 139 7.4.1在Ubuntu 16.04 LTS上安装TensorFlow 139 7.4.2TensorFlow的概念 141 7.4.3在TensorFlow中编写我们的第一个程序 143 7.5使用ROS和TensorFlow进行图像识别 146 7.5.1前提条件 147 7.5.2ROS图像识别节点 147 7.6scikit-learn介绍 150 7.7SVM及其在机器人中的应用 151 7.8 问题 154 7.9 本章总结 154 第8章 在MATLAB和Android上运行ROS 156 8.1ROS-MATLAB接口入门 156 8.2在MATLAB中设置机器人工具箱 157 8.2.1MATLAB中的基本ROS功能 157 8.2.2列出ROS节点、主题和消息 158 8.3MATLAB与ROS网络通信 160 8.4利用MATLAB控制ROS机器人 163 8.4.1设计MATLAB GUI应用程序 164 8.4.2解释回调 166 8.4.3运行应用程序 168 8.5Android及其ROS接口入门 169 8.5.1安装rosjava 170 8.5.2通过Ubuntu软件包管理器安装android-sdk 172 8.6安装ROS-Android接口 174 8.7使用ROS-Android应用程序 175 8.8代码演练 180 8.9使用ROS-Android接口创建基本应用程序 182 8.10 问题 183 8.11 本章总结 184 第9章 构建自主移动机器人 185 9.1机器人规格和设计概述 185 9.2设计和选择机器人的电动机和轮子 186 9.2.1计算电动机扭矩 186 9.2.2电动机转速的计算 186 9.2.3设计总结 187 9.3构建机器人本体的2D和3D模型 187 9.3.1底盘 187 9.3.2连接杆和空心管设计 188 9.3.3电动机、轮子和电动机夹具设计 189 9.3.4脚轮设计 189 9.3.5中层板和顶层板设计 189 9.3.6顶层板 190 9.3.7机器人的3D建模 191 9.4在Gazebo中进行机器人模型仿真 192 9.5差速驱动机器人的数学模型 192 9.6设计和建造实际的机器人 200 9.6.1电动机和电动机驱动 201 9.6.2电动机编码器 201 9.6.3Tiva C Launchpad 201 9.6.4超声波传感器 201 9.6.5OpenNI深度传感器 201 9.6.6英特尔NUC 201 9.6.7使用Launchpad将传感器 和电动机连接起来 201 9.6.8Tiva C Launchpad编程 202 9.7连接机器人硬件与ROS 205 9.8在Chefbot中进行地图构建和定位 208 9.9 问题 210 9.10 本章总结 210 第10章 使用ROS创建自动驾驶汽车 211 10.1 自动驾驶汽车入门 211 10.2 典型自动驾驶汽车的功能框图 214 10.2.1 自动驾驶汽车的软件框图 218 10.2.2 在ROS中仿真和连接自动驾驶汽车传感器 219 10.3 在Gazebo中仿真一辆带有传感器的自动驾驶汽车 235 10.3.1 安装预备条件 235 10.3.2 可视化机器人车传感器数据 237 10.3.3 在Gazebo里移动一辆自动驾驶汽车 238 10.3.4 使用机器人车运行hector SLAM 238 10.4 将DBW车与ROS连接 239 10.4.1 安装包 240 10.4.2 可视化自动驾驶汽车和传感器数据 240 10.4.3 DBW与ROS通信 242 10.5 Udacity开源自动驾驶汽车项目介绍 242 10.6 问题 245 10.7 本章总结 246 第11章 使用VR头戴设备和Leap Motion遥控机器人 247 11.1 VR头戴设备和Leap Motion入门 248 11.2 项目预备条件 249 11.3 项目的设计和工作原理 250 11.4 在Ubuntu 14.04.5上安装Leap Motion SDK 251 11.4.1 可视化Leap Motion控制器数据 252 11.4.2 使用Leap Motion可视化工具 252 11.4.3 安装Leap Motion控制器的ROS驱动程序 253 11.5 在Rviz中可视化Leap Motion数据 255 11.6 使用Leap Motion控制器创建遥控节点 256 11.7 构建ROS-VR Android应用程序 258 11.8 使用ROS-VR应用程序并与Gazebo进行连接 259 11.9 在VR中使用TurtleBot仿真 262 11.10 ROS-VR应用程序的故障排除 263 11.11 ROS-VR和Leap Motion遥控的集成应用 264 11.12 问题 264 11.13 本章总结 264 第12章 通过网络控制机器人 265 12.1 ROS Web入门 265 12.1.1 rosbridge_suite 265 12.1.2 roslibjs、ros2djs和ros3djs 266 12.1.3 tf2_web_republisher 267 12.2 在ROS Kinetic上设置ROS Web 267 12.2.1 安装rosbridge_suite 267 12.2.2 设置rosbridge客户端库 268 12.3 在ROS Kinetic上安装tf2_web_republisher 269 12.4 在Web浏览器上实现机器人遥控和可视化 269 12.4.1 项目开发 269 12.4.2 连接到rosbridge_server 271 12.4.3 初始化teleop 271 12.4.4 在Web浏览器中创建3D查看器 272 12.4.5 创建TF客户端 272 12.4.6 创建URDF客户端 272 12.4.7 创建文本输入 273 12.4.8 运行Web teleop应用程序 273 12.5 利用网络浏览器控制机器人关节 275 12.5.1 安装joint_state_publisher_js 275 12.5.2 运行网络关节状态发布器 276 12.5.3 解释代码 278 12.5.4 运行机器人监控应用程序 278 12.6 基于Web的语音控制机器人 279 12.6.1 前提条件 280 12.6.2 在Web应用程序中启用语音识别 280 12.7 运行语音控制机器人应用程序 282 12.8 问题 283 12.9 本章总结 284 |