本文工作:
通常移动机器人系统通过传感器来感知周围环境,如激光传感器、超声波传感器、视觉传感器等,但由于携带传感器有限,大部分系统决策和控制能力不足。
硬件主要包括:树莓派4B上位机、STM32F103RC下位机、电机及其驱动、传感器
| 项目 | 内容 |
|---|---|
| 传感器(编码器) | 具有增量式输出的霍尔编码器 |
| 传感器(摄像头) | LETMC-520摄像头 |
| 底盘 | 麦克纳姆轮,其轮毂轴与辊子转轴成 45 ° 45\degree 45°角,可保证机器人全向运动 |
| 电机 | GB37520直流减速电机 |
| 电机驱动 | TB6612FNG |
| 电源 | 航模电池 |
| 上位机 | 树莓派4B → \rightarrow → 算法实现运行、采集传感器信息、下位机通信 |
| 通信 | USB2.0双向、 数据帧格式、USB-TTL模块 |
| 下位机 | STM32F103RC → \rightarrow → 数据采集、底盘控制、通信 |
| 项目 | 内容 |
|---|---|
| OS | Ubuntu Mate 18.04 |
| 底盘控制节点 | 订阅/cmd_vel话题 → \rightarrow → 提取底盘目标线速度和角速度信息 → \rightarrow → 逆运动学 → \rightarrow → 电机的目标转速 → \rightarrow → 下位机 |
| 底盘控制节点 | 获取底盘运动状态数据,并发布相应话题 |
| 下位机 | C语言编程、FreeRTOS进行任务调度 |
| 电机控制算法 | PID |



四个分别为
(
128
,
64
,
64
,
16
)
(128,64,64,16)
(128,64,64,16)的全连接层
每层同样采用ReLU函数进行激活
定义:
控制机器人 → \rightarrow → 观察-动作对数据集
| 项目 | 内容 |
|---|---|
| 包 | Keras、Tensorflow |
| 归一化(图像) | 是, [ 0 , 1 ] [0,1] [0,1] |
| 归一化(转向控制信号) | 是, [ − 1 , 1 ] [-1,1] [−1,1] |
| 数据比(转角) | 0.1494 |
| 数据比(直道) | 0.6304 |
| 数据比(障碍物) | 0.2202 |
| 数据集大小 | 106623 |
| 数据集划分比 | 3:1:1 |
| 数据集内容 | 80% → \rightarrow → 无障碍物 + 噪声;20% → \rightarrow → 躲避障碍物 + 未注入噪声 |
| 训练过程监控指标 | 均方误差MSE、平均绝对误差MAE |
| 训练损失函数 | 均方根 |
| 训练优化器 | RMSProp |
| 转向控制信号阈值 | 0.1 |
测试集上的均方误差和平均绝对误差分别为0.039和0.102


泛化实验:避开突然出现的障碍物
→
\rightarrow
→ 空水桶瓶子
