ROS机器人项目开发11例

ROS机器人项目开发11例

编辑推荐

本书的基本目标是通过项目实践讲解ROS,这里讨论的项目也可以在学术或工业项目中重复使用。

内容简介

本书的基本目标是通过项目实践讲解ROS,探讨具有ROS接口的各种新技术。例如,你将看到如何构建自动驾驶汽车的原型,如何使用ROS构建深度学习的应用程序,以及如何在ROS中构建虚拟现实(VR)应用程序。此外,还将介绍使用ROS及其库的大约多个项目和应用程序。

作者简介

作者朗坦·约瑟夫,一名来自印度的作家、企业家、电子工程师、机器人爱好者、机器视觉专家、嵌入式程序员以及QboticsLabs的创始人和首席执行官。

他在喀拉拉邦的联邦科学和技术研究所获得了电子和通信工程学士学位。在最后一年的工程项目中,制作了一个可以与人互动的聊天机器人。

章节目录

版权信息

译者序

推荐序一

推荐序二

作者简介

审校者简介

前言

致谢

第1章 入门ROS机器人应用程序开发

1.1 ROS入门

1.1.1 ROS发行版

1.1.2 支持ROS的操作系统

1.1.3 支持ROS的机器人和传感器

1.1.4 为什么选择ROS

1.2 ROS基础

1.2.1 文件系统级

1.2.2 计算图级

1.2.3 ROS社区级

1.2.4 ROS通信

1.3 ROS客户端库

1.4 ROS工具

1.4.1 Rviz(ROS可视化)

1.4.2 rqt_plot

1.4.3 rqt_graph

1.5 ROS仿真器

1.6 在Ubuntu 16.04 LTS上安装ROS Kinetic

1.7 在VirtualBox上设置ROS

1.8 设置ROS工作区

1.9 ROS在工业和研究中的机遇

1.10 问题

1.11 本章总结

第2章 使用ROS、OpenCV和Dynamixel伺服舵机进行人脸检测与跟踪

2.1 项目概述

2.2 硬件和软件需求

2.3 ROS与Dynamixel伺服舵机的接口

2.4 创建人脸跟踪ROS包

2.5 人脸跟踪功能包的工作原理

2.5.1 理解人脸跟踪代码

2.5.2 理解CMakeLists.txt

2.5.3 track.yaml文件

2.5.4 启动文件

2.5.5 运行人脸跟踪器节点

2.5.6 face_tracker_control功能包

2.5.7 云台控制器配置文件

2.5.8 舵机参数配置文件

2.5.9 人脸跟踪控制器节点

2.5.10 创建CMakeLists.txt

2.5.11 测试人脸跟踪控制功能包

2.5.12 集成所有节点

2.5.13 固定支架并安装电路

2.5.14 最终测试

2.6 问题

2.7 本章总结

第3章 在ROS中构建一个像Siri的聊天机器人

3.1 人机交互机器人

3.2 构建人机交互机器人

3.3 预备条件

3.4 AIML入门

3.4.1 AIML标签

3.4.2 PyAIML解释器

3.4.3 在Ubuntu 16.04 LTS上安装PyAIML

3.4.4 使用PyAIML

3.4.5 加载多个AIML文件

3.4.6 在ROS中创建AIML机器人

3.4.7 AIML ROS功能包

3.5 问题

3.6 本章总结

第4章 使用ROS控制嵌入式电路板

4.1 主流嵌入式电路板入门

4.1.1 如何选择Arduino开发板

4.1.2 Raspberry Pi(树莓派)介绍

4.1.3 Odroid开发板

4.2 Arduino与ROS的接口

4.2.1 使用Arduino和ROS监控光线亮度

4.2.2 在PC上运行ROS串行服务器

4.2.3 通过mbed连接STM32开发板和ROS

4.2.4 使用Energia连接ROS与Tiva C Launchpad板

4.3 在Raspberry Pi和Odroid上运行ROS

4.3.1 将Raspberry Pi和Odroid连接到PC

4.3.2 ROS控制GPIO引脚

4.4 问题

4.5 本章总结

第5章 使用手势远程操作机器人

5.1 使用键盘遥控ROS龟

5.2 使用手势进行遥控

5.3 项目配置

5.4 MPU-9250、Arduino和ROS连接

5.5 在Rviz中可视化IMU TF

5.6 将IMU数据转换为twist消息

5.7 集成和最终运行

5.8 使用Android手机进行遥控

5.9 问题

5.10 本章总结

第6章 物体检测和识别

6.1 物体检测和识别的快速入门

6.2 ROS中的find_object_2d包

6.2.1 安装find_object_2d包

6.2.2 运行find_object_2d节点检测网络摄像头图像中的物体

6.2.3 使用深度传感器运行find_object_2d节点

6.3 3D物体识别快速入门

6.4 ROS中3D物体识别包的介绍

6.5 从3D网格中检测和识别物体

6.5.1 使用物体的3D模型进行训练

6.5.2 使用捕获的3D模型进行训练

6.6 识别物体

6.7 问题

6.8 本章总结

第7章 使用ROS和TensorFlow进行深度学习

7.1 深度学习及其应用简介

7.2 深度学习机器人

7.3 深度学习库

7.4 TensorFlow入门

7.4.1 在Ubuntu 16.04 LTS上安装TensorFlow

7.4.2 TensorFlow的概念

7.4.3 在TensorFlow中编写我们的第一个程序

7.5 使用ROS和TensorFlow进行图像识别

7.5.1 前提条件

7.5.2 ROS图像识别节点

7.6 scikit-learn介绍

7.7 SVM及其在机器人中的应用

7.8 问题

7.9 本章总结

第8章 在MATLAB和Android上运行ROS

8.1 ROS-MATLAB接口入门

8.2 在MATLAB中设置机器人工具箱

8.2.1 MATLAB中的基本ROS功能

8.2.2 列出ROS节点、主题和消息

8.3 MATLAB与ROS网络通信

8.4 利用MATLAB控制ROS机器人

8.4.1 设计MATLAB GUI应用程序

8.4.2 解释回调

8.4.3 运行应用程序

8.5 Android及其ROS接口入门

8.5.1 安装rosjava

8.5.2 通过Ubuntu软件包管理器安装android-sdk

8.6 安装ROS-Android接口

8.7 使用ROS-Android应用程序

8.8 代码演练

8.9 使用ROS-Android接口创建基本应用程序

8.10 问题

8.11 本章总结

第9章 构建自主移动机器人

9.1 机器人规格和设计概述

9.2 设计和选择机器人的电动机和轮子

9.2.1 计算电动机扭矩

9.2.2 电动机转速的计算

9.2.3 设计总结

9.3 构建机器人本体的2D和3D模型

9.3.1 底盘

9.3.2 连接杆和空心管设计

9.3.3 电动机、轮子和电动机夹具设计

9.3.4 脚轮设计

9.3.5 中层板和顶层板设计

9.3.6 顶层板

9.3.7 机器人的3D建模

9.4 在Gazebo中进行机器人模型仿真

9.5 差速驱动机器人的数学模型

9.6 设计和建造实际的机器人

9.6.1 电动机和电动机驱动

9.6.2 电动机编码器

9.6.3 Tiva C Launchpad

9.6.4 超声波传感器

9.6.5 OpenNI深度传感器

9.6.6 英特尔NUC

9.6.7 使用Launchpad将传感器和电动机连接起来

9.6.8 Tiva C Launchpad编程

9.7 连接机器人硬件与ROS

9.8 在Chefbot中进行地图构建和定位

9.9 问题

9.10 本章总结

第10章 使用ROS创建自动驾驶汽车

10.1 自动驾驶汽车入门

10.2 典型自动驾驶汽车的功能框图

10.2.1 自动驾驶汽车的软件框图

10.2.2 在ROS中仿真和连接自动驾驶汽车传感器

10.3 在Gazebo中仿真一辆带有传感器的自动驾驶汽车

10.3.1 安装预备条件

10.3.2 可视化机器人车传感器数据

10.3.3 在Gazebo里移动一辆自动驾驶汽车

10.3.4 使用机器人车运行hector SLAM

10.4 将DBW车与ROS连接

10.4.1 安装包

10.4.2 可视化自动驾驶汽车和传感器数据

10.4.3 DBW与ROS通信

10.5 Udacity开源自动驾驶汽车项目介绍

10.6 问题

10.7 本章总结

第11章 使用VR头戴设备和Leap Motion遥控机器人

11.1 VR头戴设备和Leap Motion入门

11.2 项目预备条件

11.3 项目的设计和工作原理

11.4 在Ubuntu 14.04.5上安装Leap Motion SDK

11.4.1 可视化Leap Motion控制器数据

11.4.2 使用Leap Motion可视化工具

11.4.3 安装Leap Motion控制器的ROS驱动程序

11.5 在Rviz中可视化Leap Motion数据

11.6 使用Leap Motion控制器创建遥控节点

11.7 构建ROS-VR Android应用程序

11.8 使用ROS-VR应用程序并与Gazebo进行连接

11.9 在VR中使用TurtleBot仿真

11.10 ROS-VR应用程序的故障排除

11.11 ROS-VR和Leap Motion遥控的集成应用

11.12 问题

11.13 本章总结

第12章 通过网络控制机器人

12.1 ROS Web入门

12.1.1 rosbridge_suite

12.1.2 roslibjs、ros2djs和ros3djs

12.1.3 tf2_web_republisher

12.2 在ROS Kinetic上设置ROS Web

12.2.1 安装rosbridge_suite

12.2.2 设置rosbridge客户端库

12.3 在ROS Kinetic上安装tf2_web_republisher

12.4 在Web浏览器上实现机器人遥控和可视化

12.4.1 项目开发

12.4.2 连接到rosbridge_schmerver

12.4.3 初始化teleop

12.4.4 在Web浏览器中创建3D查看器

12.4.5 创建TF客户端

12.4.6 创建URDF客户端

12.4.7 创建文本输入

12.4.8 运行Web teleop应用程序

12.5 利用网络浏览器控制机器人关节

12.5.1 安装joint_state_publisher_js

12.5.2 运行网络关节状态发布器

12.5.3 解释代码

12.5.4 运行机器人监控应用程序

12.6 基于Web的语音控制机器人

12.6.1 前提条件

12.6.2 在Web应用程序中启用语音识别

12.7 运行语音控制机器人应用程序

12.8 问题

12.9 本章总结

ROS机器人项目开发11例是2018年由机械工业出版社华章分社出版,作者[印度]朗坦·约瑟夫。

得书感谢您对《ROS机器人项目开发11例》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
Web前端开发技术(jQuery+Ajax)(慕课版) 电子书

真实项目案例,穿插到每个知识点,对jQuery和Ajax的基础知识和应用进行介绍。
Unity5.X3D游戏开发技术详解与典型案例 电子书

本书对Unity3D集成开发环境界面、脚本的编写和众多高级特效的实现进行了详细介绍,内容深入浅出,是一本适合不同需求、不同开发水平读者的技术宝典。
写给大家看的安卓应用开发书:App Inventor 2快速入门与实战 电子书

由浅入深地介绍可视化编程工具AppInventor的基本内容。
微信公众平台与小程序开发:从零搭建整套系统(第2版) 电子书

微信小程序开发教程书籍,微信公众平台开发入门图书。
1小时看懂相对论(漫画版) 电子书

科学固然深入,表达亦可浅出!
王朝 动物家族的兴衰 电子书

BBC自然历史纪录片,200多张照片和独特的视角,揭示了地球上最迷人的动物的复杂社会生活。