第1章 绪论 1
1.1 选择ROS的理由 1
1.2 内容概述 4
1.3 行文约定 6
1.4 更多信息 6
1.5 下一章 简介 8
第2章 入门概述 9
2.1 安装ROS 9
2.2 配置账户 12
2.3 使用turtlesim的小例子 13
2.4 功能包/软件包(Packages) 14
2.5 节点管理器(The Master) 18
2.6 节点(Nodes) 19
2.7 话题和消息 22
2.7.1 查看节点构成的计算图 22
2.7.2 消息和消息类型 25
2.8 一个更复杂的例子 32
2.8.1 话题通信的多对多机制 34
2.8.2 节点之间的松耦合关系 34
2.9 问题检查 35
2.10 展望 36
第3章 编写ROS程序 37
3.1 创建工作区和功能包 37
3.2 你好,ROS! 39
3.2.1 一个简单的程序 39
3.2.2 编译Hello程序 42
3.2.3 执行hello程序 46
3.3 发布者程序 46
3.3.1 发布消息 48
3.3.2 消息发布循环 51
3.3.3 编译pubvel 53
3.3.4 执行pubvel 54
3.4 订阅者程序 55
3.4.1 编译并运行subpose 60
3.5 展望 60
第4章 日志消息 61
4.1 严重级别 61
4.2 示例程序 62
4.3 生成日志消息 64
4.4 查看日志消息 69
4.4.1 控制台 69
4.4.2 rosout上的消息 70
4.4.3 日志文件 73
4.5 启用和禁用日志消息 74
4.6 展望 78
第5章 计算图源命名 79
5.1 全局名称 79
5.2 相对名称 81
5.3 私有名称 83
5.4 匿名名称(Anonymous names) 84
5.5 展望 85
第6章 启动文件 86
6.1 使用启动文件 86
6.2 创建启动文件 89
6.2.1 启动文件的存储位置 89
6.2.2 启动文件的基本元素 90
6.3 在命名空间内启动节点 94
6.4 名称重映射(Remapping names) 97
6.4.1 创建重映射 98
6.4.2 反向海龟(Reversing a turtle) 99
6.5 启动文件的其他元素 103
6.5.1 包含其他文件 103
6.5.2 启动参数(Launch arguments) 105
6.5.3 创建组(Creating groups) 107
6.6 展望 109
第7章 参数 110
7.1 通过命令行获取参数 110
7.2 例:turtlesim中的参数 113
7.3 使用C++获取参数 115
7.4 在启动文件中设置参数 119
7.5 展望 122
第8章 服务 123
8.1 服务的专用术语 124
8.2 从命令行查看和调用服务 124
8.3 客户端程序 129
8.4 服务器程序 135
8.4.1 运行和改进服务器程序 138
8.5 展望 140
第9章 消息录制与回放 141
9.1 录制与回放包文件 141
9.2 示例:正方形运动轨迹的包文件 143
9.3 启动文件里面的包文件 147
9.4 展望 148
第10章 总结 149
10.1 下一步 149
10.2 展望 152