[0042] 以下结合附图与实施例对本发明技术方案进行进一步描述。
[0043] 本发明提出了一种结合深度Q学习的机器人路径学习与避障系统及方法。通常采用蒙特卡洛树方法来处理局部最优问题,从而帮助机器人逃脱障碍物。有一个成功的例子,来自Google的AI机器人Alpha Go使用深度神经网络对当前游戏状态进行总体评估,并使用蒙特卡洛树方法完成严格的计算任务。类似于Go,对于机器人路径规划的任务,机器人需要对当前对抗环境进行整体启发,以形成合理的行动方向,并且在障碍物等极端情况下,还需要一种收敛策略来形成精确的路径。
[0044] 在本发明中,我们提出了自适应和随机探索方法(ARE)来解决机器人路径规划任务中的上述问题。ARE的基本思想是让机器人探索环境本身并根据当前评估采取行动。此外,只要靠近障碍物,就会采用随机机制将其校正为安全路径。我们的方法在自学习和收敛随机搜索的自适应机制之间取得了平衡,因此主观机器人既可以找到一般方向,又可以避免因学习错误而陷入困境。
[0045] 一种结合深度Q学习的机器人路径学习与避障系统,其特征在于包括动作模块、学习模块和障碍物避险模块;在路径规划期间,动作模块会从学习模块和障碍物避险模块接收指令,并让机器人根据指令完成指定动作;学习模块根据机器人当前状态和动作的历史数据序列,训练动作选择策略;障碍物避险模块执行随机树搜索算法,以指导机器人从危险情况避险得到安全路径。
[0046] 传统的Q学习描述离散空间中的状态‑动作对,并且Q‑value函数可以视为当前状态‑动作对的索引到下一个动作索引的映射。路径规划的状态空间是连续的。一种直接的方法是离散化连续状态数据。但是,在没有离散化粒度的初步知识的情况下,状态可能会在反映实际环境时具有较大的误差,如果我们要确保精度,可能会导致路径质量下降和矩阵的大规模计算。因此,我们使用神经网络NN(图2中的Neural Network部分)来计算Q‑value。神经网络代替了传统的基于马尔可夫的评估,而是通过位于不同级别的几个参数来保存机器人对环境的当前了解,这需要更少的内存。此外,根据神经网络的机制,可以考虑不同状态的连接来形成连续图,这可以达到预期的良好学习效果。
[0047] 所述的神经网络NN包括一个输入层,两个状态空间,一个隐藏层以及一个输出层:所述的状态空间包括当前状态St及动作索引集。当前状态包含机器人位置,距离目标和障碍物的距离。所述的隐藏层带十五个神经元,所述的输出层具有九个神经元,用于当前状态的九种动作选择的Q值矩阵。在每个学习过程中,当输入当前状态站动作索引集时,在神经网络计算之后能够获得与每个潜在动作相对应的预测Q值。
[0048] 定义St为在时间t时机器人的状态,at为在时间t时执行的动作;令x(t)=(St,at)是时间t处的状态动作对;然后路径规划中将时间从0到t的历史数据序列用Dh表示:
[0049] Dh=(x(1),x(2),...,x(t)) (1)
[0050] 令NN作为Q学习策略中采用的神经网络;且NN是具有两层的BP网络;QNN是基于历史NN数据序列学习得到的Q值矩阵;通过历史数据训练NN,并作为Q值函数Q 进行,即:
[0051] QNN:A→R (2)
[0052] 其中A表示当前所有可能动作的集合,R表示集合A中每个可能动作对应的偏好值的集合;
[0053] 定义As为在当前状态S能够访问的一组动作,即:任何动作a∈As都是可供选择的候选对象;令qa成为当前状态S处NN评估的偏好值;然后,选择采用玻尔兹曼分布,如下所示:
[0054]
[0055] 在式(3)中,p(a|S)是机器人处于状态S并选择动作a作为下一个动作的概率;如果动作a对应的qa值较高,则 的值也较高,并且a的选择概率较高;T是虚拟温度因子,用于表示动作选择中的随机程度;
[0056] 历史数据序列Dh用作训练样本;对于Dh中的每个样本x(t)为其分配标签,通过标签指示该样本是正面的还是负面的;对于状态S,定义 为状态S与目标之间的距离, 为状态S和最近障碍物之间的距离;假设奖励值r=(S,a)表示在状态S下选择动作a获得的奖励。
[0057] 即r=(S,a)和S′是通过在S的情况下进行的状态达到的状态,如果实现了S的下一个状态。当r为正时,则 的值应该低于 且 的值应该低于 具体地,标签表如下所示:
[0058]
[0059]
[0060] S′是当前状态S在选择动作后达到的下一个状态;对于 和 考虑 和来检查是否一个动作可以引导一个更为安全的路径;对 设置一个阈值Td0,因为如果机器人和障碍物之间保持足够的距离则以不用考虑障碍物;
[0061] 对于 和 考虑 和 来检查是否一个动作能够引导一个更为安全的路径;因为如果机器人接近目标,应该更注意 的值,因此我们也需要对 设置阈值Tdt;
[0062] 将状态从S到S′的变化进行分类,设置奖励机制:r=ki×ri;在该奖励机制中,ri是能够选择的单位奖励{r1,r2,r1′,r2′};ki是依赖于 和Tdt之间关系的提升因子,在不同的条件下,能够选自{k1,k2,k3,k4};此外,如果 的值低于撞击阈值Tdhit,机器人通过其动作不能避免达到障碍,因此为r设置负值‑2。
[0063] 进一步的,所述的障碍物避险模块采用障碍物避险策略的学习:首先,更改玻尔兹曼分布,以更大可能性逃离陷阱;其次,减少算法步长;最后,利用快速随机树算法,防止机器人选择可能击打墙壁的动作。
[0064] 在机器人移动和障碍物避险时,存在两个主要问题,不可以仅通过联网Q学习算法解决:一个是因为动作选择概率,机器人可能选择的一个动作将会撞击到障碍物;另一个是当机器人陷入局部最佳陷阱时,不可能通过环境奖励来探索避险路径。
[0065] 为了解决上述问题,本发明介绍了障碍物避险策略。首先,更改玻尔兹曼分布,例如提高温度参数T(表述不清),这可以增加动作选择策略的随机性。因此,它将具有更大的可能性使机器人避开障碍物。其次,减少算法的步长,其功能就像“制动器”一样。最后,利用快速随机树(RRT)算法,以防止机器人选择可能导致击打墙壁的动作。
[0066] 当机器人获得当前状态S时,得到当前机器人与障碍物之间的距离 将阈值Th设置为大于机器人达到阈值Tdhit。当 小于Th时,通过障碍物避险策略控制机器人进行避障动作。当 时(p是机器人的步长),障碍物避险策略停止并退出。所述的障碍物避险策略,具体方法如下如下:
[0067] 假设状态S被描述为一个节点的机器人位置S(x,y),机器人在初始节点S0始遵循障碍物避险策略;然后,机器人任意选择在状态空间中随机产生的位置状态Srand;选择之后,该障碍物避险策略将沿着Srand方向探索步长为p的节点S1,从而得到下一状态S1;重复步骤能够得到S1,S2,...,Sk,从而形成局部状态随机树;直到第k个树节点满足停止条件:执行 障碍物避险策略才会停止并退出;最终机器人获得路径S0→Sk,这能够帮助机器人从障碍物中逃脱并更接近目标;在这条道路上,机器人停留在Sk上,继续通过学习网络探索道路。
[0068] 进一步的,障碍物避险模型与其他模型不同,因为它不会在每个学习过程中调用,直到它进入障碍物。
[0069] 进一步的,本发明采取行动并观察奖励,以及新状态使用观察到的奖励和下一个状态可能的最大奖励更新该状态的Q值神经网络。
[0070] 在机器人执行动作之后,环境将反馈奖励以衡量最后一个操作是否合适。在到达目标对象的路上,机器人应该保持一定的距离障碍物。