该书的最新名称为《轮式自主移动机器人编程实战》,认准清华大学出版社出版。
淘宝和京东皆可以购买了。
目录
第1章轮式机器人基础知识 5
1.1 什么是轮式机器人 5
1.2 认识轮式机器人 7
1.3 机器人的驱动方式 9
1.4 本章总结 11
第2章 机器人的构成 12
2.1 机器人的规划 12
2.2 轮式机器人的转向结构 14
2.2.1 轮式机器人的差速转向 15
2.2.2 轮式机器人的独立舵机转向 17
2.2.3阿克曼转向结构 19
2.2.4 轮式机器人转向的比较 19
2.2.5 差速机器人里程计运动模型 20
2.3 轮式机器人驱动电动机选型 22
2.3.1 轮式机器人:电动机性能 22
2.3.2 轮式机器人:GA370电动机参数计算 24
2.4 机器人的驱动模块 25
2.4.1 驱动芯片L298N性能 26
2.4.2 驱动模块 L298N使用方法 26
2.4.3驱动板 TB6612FNG使用方法 28
2.5 轮式机器人的大脑:控制器选型 29
2.6 轮式机器人底盘DIY 31
2.6.1 DIY的两种方法 31
2.6.2 轮式机器人DIY改装法 33
2.7 轮式机器人整体总结 35
2.7.1 轮式机器人整体框图 36
2.7.2 轮式机器人开发中涉及的软件列表 36
2.8 本章总结 38
第3章 轮式机器人的软件提升 39
3.1 Keil软件 39
3.1.1 KEIL5软件安装 39
3.1.2 KEIL5快速打开程序 42
3.2 Linux操作 43
3.2.1 Linux的Shell 43
3.2.2 编写程序与脚本 47
3.3 C语言基础 49
3.4 单片机基础 50
3.4.1 串口协议 51
3.4.2 I2C协议 52
3.5网络学习 54
3.5.1 基础通信 54
3.5.2 mqtt协议 55
3.5.3 Linux安装Mosquitto 59
3.5.4 Mqtt测试工具 60
3.5.4 Http的“post“方法 62
3.6算法理解 63
3.6.1 PID控制算法 63
3.6.2 简单滤波算法 69
3.6.3 高低通滤波和互补滤波器 74
3.6.4 初识贝叶斯 75
3.6.5 二值贝叶斯滤波 77
3.6.6卡尔曼滤波 80
3.7 本章总结 88
第4章 轮式机器人的底盘控制器:STM32开发 89
4.1 底盘控制器的对外神经元:输出PWM 91
4.1.1使用Keil模拟输出PWM 91
4.1.2 机器人中使用的PWM 94
4.2底盘控制器的运动神经元:驱动控制 95
4.2.1 驱动控制器的连接 95
4.2.2 驱动源码分析 95
4.3 底盘控制器的捕获神经元:PWM捕获测速 97
4.3.1硬件 97
4.5.2 测速源码分析 98
4.4 底盘控制器的中枢神经元:串口通信控制指令 100
4.4.1 串口通信分析 100
4.5 底盘控制器的神经元:ADC电池电压监测 105
4.5.1 硬件连接 105
4.5.2源码分析 105
4.6 底盘控制器的神经元:LED控制 108
4.6.1 硬件连接 108
4.6.2源码分析 108
4.7 本章总结 109
关注公众号:视觉动力机器人 获取更多干货
第5章 轮式机器人的主控制器:树莓派开发 110
5.1 轮式机器人的主控树莓派 110
5.2 主控制器树莓派资源 112
5.3 轮式机器人的交互窗口:树莓派Shell 113
5.4 轮式机器人上网接口:树莓派Socket通信 115
5.5轮式机器人从控制器通信接口:树莓派串口 117
5.5.1 树莓派串口配置 117
5.5.2树莓派USB转串口 120
5.5.2 绑定串口 121
5.6 轮式机器人无线联网接口:树莓派WiFi 122
5.6.1 树莓派WiFi连接路由器上网 122
5.6.2 树莓派WiFi做Ap热点 124
5.7 机器人和手机APP通信接口:树莓派蓝牙 129
5.7.1 了解蓝牙 129
5.7.2 使用Socket蓝牙进行通信 130
5.8 轮式机器人野外上网接口:4G模块 133
5.8.1 USB-4G上网 133
5.8.2 USB-4G-WiFi插电即上网 134
5.9 轮式机器人的指南针:RTIMU模块开发 135
5.9.1 RTIMULIB库介绍 135
5.9.2 RTIMULIB库的编译和测试 136
5.9.3 基于RTIMULIB库的地磁计校准 139
5.9.4 基于RTIMULIB库的加速计校准 142
5.9.5 基于RTIMULIB库的陀螺仪校准 142
5.10 轮式机器人Web搭建 142
5.10.1 Web搭建 143
5.11 轮式机器人树莓派固件烧录 152
5.12本章总结 154
第6章 轮式机器人的其他神经元:传感器开发学习 155
6.1DS18B20温度传感器开发 155
6.1.1 DS18B20温度传感器接口定义 156
6.1.2 Linux c实现方法 157
6.2 GPS户外定位传感器 159
6.2.1 定位模块的接口定义 160
6.2.2NMEA协议 160
6.2.3协议解析流程及实现 161
6.3 激光雷达传感器 164
6.3.2 激光雷达介绍 164
6.3.3 激光雷达协议 166
6.4 camera图像传感器 171
6.4.1 摄像头使用 172
6.4.2 视觉循迹机器人实例 173
6.5本章总结 175
第7章 轮式机器人小车的云:物联网云平台 176
7.1 微型服务云平台简介 176
7.3 阿里云搭建服务器 180
7.3.1 阿里云服务器选型 180
7.3.2 搭建LNMP服务器 183
7.3.3 搭建LAMP服务器 187
7.4 Javascript建立简答的MQTT通信 189
第8章 轮式机器人路径规划 193
8.1 机器人路径规划 193
8.2 机器人全局规划 193
8.2.1 机器人栅格建图概述 194
8.2.2 借助OpenCV画轨迹 195
8.2.3 栅格地图的建图过程 200
构建地图说明 200
超声波雷达构建地图 203
激光雷达构建地图 206
8.2.4 机器人全局整合规划 207
8.2.3 A*路径规划算法 209
8.3 机器人局部决策 222
8.3.1 DWA避障算法 223
8.3.2 VFH避障算法 229
第9章 轮式机器人路径的定位和导航 235
9.1 轮式机器人路径跟随 235
9.1.1 Move Pose 和PID整定 236
9.1.2 PurePuresuit跟随 240
9.1.3 路径跟随与测试 244
9.2 轮式机器人定位匹配 247
9.2.1 粒子滤波 247
9.2.2 蒙特卡罗定位(MCL) 247
9.3 GNSS定位导航 248
第10章机器人定位终端实例 250
10.1 机器人实体终端:模块构成 250
10.2 轮式机器人主从通信分析:STM32和树莓派通信协议 252
10.3 物联网机器人通信分析:MQTT互通协议 254
10.4 轮式机器人:配置WiFi 255
10.5 轮式机器人调试指南 260
10.5.1 控制主要APP:navigation 261
10.6 轮式机器人的交互 264
10.8 轮式机器人云平台功能介绍 265
10.8.1添加设备 265
10.8.2设备信息 266
10.8.3 新玩法 266
10.8.4 路径规划 268
10.8.5 轨迹回放 269
10.8.6 传感器列表 270
10.8.7 系统参数 270
10.9 手动规划路径 270
10.3.1 原理及操作 271
第11章BreezySlam室内定位导航机器人实例 273
11.1 BreezySlam的安装 274
11.2 BreezySlam的测试 277
11.3 BreezySlam源码分析 281
11.4 硬件搭建 292
11.5 软件实现 292
11.6 测试运行 299
第12章ROS机器人开发实例 300
12.1 ROS系统介绍 300
12.2 ROS的工具包 302
12.3 Ubuntu 18.04安装ROS 305
12.4 发布GPS定位 node 308
12.5 发布IMU node 310
12.6 STM32 通信node 311
12.7 QT for ROS 界面使用 315