- 目标:多机器人搬运货物至对应颜色的目标点,完成货物分配以及路径规划使得最后达到的机器人所用时间最短
- 问题简化
- 将机器人简化为质点,不考虑机器人的运动学模型,并且只能沿着直线的四个方向前进
- 机器人搬运货物不会导致运动性能发生改变
- 机器人数量与货物数量相同
- 问题求解
- 分配问题
- 假设有n个机器人和货物,构建n*n的代价矩阵,矩阵的值为机器人搬运相应货物抵达终点的最小曼哈顿距离。利用贪婪的想法,每次去掉矩阵中最大的数,直到某一个货物或者机器人存在一一对应关系。
- 路径规划问题
- 传统方法
- 分布式
- local
- global
- 集中式
- local
- global
- 分布式
- 强化学习方法
- 单体训练
- 多机器人同时训练
- 传统方法
- 分配问题
- 仿真环境包括机器人以及目标的可视化,机器人的碰撞检测,机器人运动路径的步进可视化,机器人和目标的随机初始化以及强化学习环境构建
- 整个地图大小为16*16,随机初始化不会发生位置重叠
-
我们尝试了两种Model-Free的强化学习算法
-
Dueling Double Deep Q-Learning
- [Paper] https://ojs.aaai.org/index.php/AAAI/article/view/11757
- 网络
- Reward 函数设计
- 为了鼓励机器人迅速到点,单步reward默认为-1
- 出界或者发生碰撞reward -= 20
- 到达目标点reward += 100
- Double Net 防止Q-function的过估计,Dueling 将Q-function拆解为advantage以及value两部分,利用advantage可以减小自举算法的方差
- 网络模型如下图所示,先有三层卷积网络之后接入全连接神经网络搭配ReLu激活函数。
-
CNN广泛应用于目标检测,所以其能够学习到物体在图像中的坐标信息
- A3C
- 网络以及Reward与Dueling Double Deep Q-Learning基本相同
- 不同点在于作为Actor-crtic算法,A3C输出的动作概率,它和DQN所要拟合的目标并不相同。因此它的loss function也与DQN不同
- 此外A3C最大的优势在于通过同时跑多个进程并行地进行探索和学习并定期进行模型的同步,所以训练速度很快,但是同步的机制极大地决定了算法的稳定性
- 训练过程采用tensorboard进行可视化
- 为了保证算法的稳定性,我们先训练单个机器人在没有障碍物的情况下到达目标点,之后引入固定位置的机器人作为障碍物训练机器人完成避障,最后在实际场景中验证模型
- 单体训练过程的每个iter的reward如图
- 但是测试时发现将每个机器人的state叠加在一起实际上并不存在交互,batch中的每层图像都是分别前向的,所以碰撞发生的概率比较高,神经网路只学习到了简单的路径规划并没有学习到协同的概念。因为每一层的输入并没有包括其他机器人的目标信息,所以也很难去预测其他机器人的行为。
-
改进方案分了三个大方向
-
在之前模型基础上引入优先级的概念
将整个问题拆解成每个机器人依次根据静态障碍物进行局部避障然后再统一行动
-
简化模型的输入
对于静态障碍物只需要引入局部避障就可以完成,所以状态简化为目标点相对自身的相对位置,四个方向上是否有障碍物(将出界行为也视为碰撞处理)
-
改变模型的输入
将所有信息都以图像的形式输入到其中(包括每个机器人及其目标点,通过正负号关系关联机器人和目标点)重新进行训练希望网络能够学习到多种信息
-
-
针对第二种改进,我们将该模式下的网络模型完全简化为全连接神经网络并进行训练