定 价:¥59.80
作 者: | 李德 著 |
出版社: | 清华大学出版社 |
丛编项: | |
标 签: | 暂缺 |
ISBN: | 9787302613220 | 出版时间: | 2022-09-01 | 包装: | 平装 |
开本: | 16开 | 页数: | 244 | 字数: |
第1部分 基础知识
第1章 轮式机器人的基础知识 2
1.1 轮式机器人的定义与应用 2
1.2 轮式机器人的结构3
1.3 机器人的驱动方式4
1.4 本章总结5
第2章 机器人的构成 6
2.1 机器人的规划6
2.2 轮式机器人的转向结构 8
2.2.1 轮式机器人的差速转向 8
2.2.2 轮式机器人的独立舵机转向 9
2.2.3 阿克曼转向结构 11
2.2.4 轮式机器人转向比较 11
2.2.5 差速机器人里程计运动模型 12
2.3 轮式机器人电动机的选型 13
2.3.1 轮式机器人:电动机性能 13
2.3.2 轮式机器人:GA370电动机参数计算 14
2.4 机器人的驱动模块15
2.4.1 驱动芯片L298N性能 15
2.4.2 驱动模块 L298N的使用方法 16
2.4.3 驱动板TB6612FNG的使用方法 17
2.5 轮式机器人的大脑:控制器选型 18
2.6 轮式机器人底盘DIY 19
2.6.1 DIY的两种方法 19
2.6.2 轮式机器人DIY改装法 21
2.7 轮式机器人总结23
2.7.1 轮式机器人整体框图 23
2.7.2 轮式机器人开发中涉及的软件列表 23
2.8 本章总结24
第3章 轮式机器人的软件提升 25
3.1 Keil软件 25
3.1.1 Keil软件的安装 25
3.1.2 Keil 5软件的使用 27
3.2 Linux基础知识 28
3.2.1 Linux的Shell 28
3.2.2 编写程序与脚本 31
3.3 网络基础知识32
3.3.1 基础通信 32
3.3.2 MQTT协议 33
3.3.3 Linux安装Mosquitto 36
3.3.4 MQTT测试工具 37
3.3.5 HTTP POST方法 38
3.4 算法39
3.4.1 PID控制算法 39
3.4.2 移位滤波均值算法 44
3.4.3 高、低通滤波和互补滤波器 45
3.4.4 初识贝叶斯 48
3.4.5 二值贝叶斯滤波 49
3.4.6 卡尔曼滤波 51
3.5 本章总结58
第2部分 技术提升
第4章 轮式机器人的底盘控制器:STM32开发 60
4.1 底盘控制器的对外神经元:输出PWM 61
4.1.1 使用Keil模拟PWM输出 61
4.1.2 机器人中使用的PWM 66
4.2 底盘控制器的运动神经元:驱动控制 66
4.2.1 驱动控制器的连接 66
目 录
- V -
4.2.2 驱动源码分析 66
4.3 底盘控制器的捕获神经元:PWM捕获测速 68
4.3.1 硬件 68
4.3.2 测速源码分析 69
4.4 底盘控制器的中枢神经元:串口通信控制指令 71
4.5 底盘控制器的触觉神经元:ADC电池电压监测 75
4.5.1 硬件连接 75
4.5.2 源码分析 75
4.6 底盘控制器的发光控制神经元:LED控制 77
4.6.1 硬件连接 77
4.6.2 源码分析 77
4.7 本章总结78
第5章 轮式机器人的主控制器:树莓派开发 79
5.1 树莓派简介79
5.2 树莓派资源80
5.3 轮式机器人的交互窗口:树莓派Shell 80
5.4 轮式机器人上网接口:Socket通信 83
5.5 轮式机器人从控制器通信接口:树莓派串口 83
5.5.1 树莓派串口配置 83
5.5.2 树莓派USB转串口 86
5.5.3 绑定串口 87
5.6 轮式机器人无线联网接口:树莓派的WiFi功能 88
5.6.1 树莓派WiFi连接路由器 88
5.6.2 树莓派WiFi做AP热点 89
5.7 机器人和手机App通信接口:树莓派蓝牙 93
5.7.1 了解蓝牙 93
5.7.2 使用Socket功能进行蓝牙通信 95
5.8 轮式机器人野外上网接口:4G模块 96
5.8.1 USB-4G模块的配置 97
5.8.2 USB-4G转WiFi 97
5.9 轮式机器人的指南针:RTIMU模块开发 98
5.9.1 RTIMULib库介绍 98
5.9.2 RTIMULib库的编译和测试 99
5.9.3 基于RTIMULib的地磁计校准 101
5.9.4 基于RTIMULib的加速计校准 104
5.9.5 基于RTIMULib的陀螺仪校准 104
5.10 轮式机器人的Web搭建 104
5.11 轮式机器人树莓派固件烧录 113
5.12 本章总结 114
第6章 轮式机器人的其他神经元:传感器开发 115
6.1 DS18B20温度传感器开发 115
6.1.1 DS18B20温度传感器的接口定义 115
6.1.2 代码实现 116
6.2 GPS户外定位传感器 118
6.2.1 定位模块的接口定义 118
6.2.2 NMEA-0183协议 118
6.2.3 协议解析流程及实现 119
6.3 激光雷达传感器121
6.3.1 激光雷达介绍 122
6.3.2 激光雷达协议 123
6.4 摄像头图像传感器127
6.4.1 摄像头的使用 128
6.4.2 视觉循迹机器人实例 128
6.5 本章总结129
第7章 轮式机器人的云:物联网云平台 130
7.1 微型服务云平台简介130
7.2 搭建局域网的Server 130
7.2.1 安装PhpStudy 131
7.2.2 搭建第一个物联网云 132
7.3 阿里云服务器133
7.3.1 阿里云服务器选型 133
7.3.2 搭建LNMP服务器 135
7.3.3 LAMP服务器的搭建 138
7.4 JavaScript建立简单的MQTT通信 140
7.5 本章总结143
第8章 轮式机器人路径规划 144
8.1 机器人路径规划144
8.2 机器人全局规划145
8.2.1 机器人栅格建图概述 145
8.2.2 借助OpenCV画轨迹 146
8.2.3 栅格地图的建图过程 151
8.2.4 机器人全局整合规划 157
8.2.5 A*算法 159
8.3 机器人局部决策170
8.3.1 DWA算法 170
8.3.2 VFH避障算法 173
8.4 本章总结177
第9章 轮式机器人路径的定位和导航 178
9.1 轮式机器人路径跟随178
9.1.1 MovePose和PID整定 178
9.1.2 PurePuresuit跟随算法182
9.1.3 路径跟随与测试 185
9.2 轮式机器人定位匹配189
9.2.1 粒子滤波 189
9.2.2 粒子滤波定位(蒙特卡罗定位) 190
9.3 GNSS定位导航 190
9.4 本章总结192
第3部分 实战案例
第10章 机器人定位终端实例 194
10.1 机器人实体终端:模块构成 194
10.2 轮式机器人通信:STM32和树莓派之间的通信协议 195
10.3 机器人与云平台通信:MQTT通信协议 197
10.4 轮式机器人:配置网络 198
10.5 轮式机器人软件说明 202
10.5.1 软件框架 202
10.5.2 控制App:navigation 203
10.5.3 硬件信息确认 205
10.6 轮式机器人的人机交互 205
10.7 轮式机器人云平台功能介绍 206
10.7.1 添加设备 206
10.7.2 设备信息 207
10.7.3 趣味玩法 207
10.7.4 路径规划 209
10.8 手动规划路径的原理及操作 210
10.9 本章总结 211
第11章 BreezySLAM室内定位导航机器人实例 212
11.1 BreezySLAM的安装 212
11.2 BreezySLAM测试 214
11.3 BreezySLAM源码分析 217
11.4 硬件搭建 221
11.5 软件实现 221
11.6 测试运行 227
11.7 本章总结 227
第12章 ROS机器人开发实例 228
12.1 ROS介绍 228
12.2 ROS工具包 229
12.3 Ubuntu环境下安装ROS 230
12.4 发布GPS定位 node 233
12.5 发布imu node 234
12.6 STM32 通信node 235
12.7 Qt for ROS 界面 238
12.8 本章总结 243