仓储机器人路径规划笔记

A*algorithm

It evaluates squares (node) by combining h(n), the distance(cost) to that node and g(n), the distance(cost) to get from that node to the goal node. The total cost f(n) = g(n) + h(n) is calculated for each successor node and the node with the smallest cost f(n) is selected as a successor.

the optimal path between two nodes is determined by calculating the straight distance between the two nodes.

Let us consider the case for a simple 4X4 Matrix

 

The start position is (1, 1). The successive node (only one in this case is (1,2). There is no ambiguity, until the Robot reaches node (2, 4). Here there are two nodes (3, 4) and (3, 3). The successor node can be determined by evaluating the cost to the target from both the nodes.

f(n) for node (3, 3)

 h(2,1)=1+1+sqrt(2) {Distanoe from N(1,1)->N(1,2)->N(1,3)->N(2,1)}

 f(n}=h(2, 1)+1.414 (assuming each square is 1X1 units)

 g(n)=sqrt( (4-3)^2+(1-3)^2)=2.23

f(n)= 3.44+h(2,1)

f(n) for node (3,4)

h(n)=h(2,1)+1

g(n)=sqrt((4-3)^2+(1-4)^2)=4.16

f(n)=4.16+h(2,1).

Now f(n) for (3,3) has been found to be the smallest of the two, hence the successor node is f(n) The robot can now move to the node (3, 3) and continue expanding the successor nodes as above until the goal node is reached.

Dead End

What happens if the robot runs into a dead end? Consider the terrain

 

From what we have learnt so far Node (2, 1) will be chosen as the successor node instead of Node (1,2). The robot will continue to traverse the route until it ends up at the block at Node (4, 1).

We need to add a mechanism by which the robot:

    a)Explores alternate routes once it lands up at a dead end.

    b)Avoids traversing paths that it knows leads to a dead end.

This is done by maintaining two lists OPEN and CLOSED. The list OPEN stores all successive paths that are yet to be explored while list CLOSED stores all paths that have been explored.

The list OPEN also stores the parent node of each node. This is used at the end to trace the path

from the Goal to the Start position, thus generating the optimal route.

Consider the figure below. The start node has 2 successors (2, 1) and (1,2). From the initial calculation (2, 1) is chosen and the robot travels along that node, however ones it reaches the dead end, it discards the node (2, 1) and takes the second successor (1,2) and explores that route.

 

Once the goal node is reached the parent nodes are found and tracked back to the start node to get the complete path.

In the above example N(4,3)一>N(3,4)一>N(2,3)一>N(1,2)一>N(1,1) gives the optimal path.

From the above conditions the following algorithm can be obtained.

The A* Algorithm

1)  Put the start node on the list OPEN and calculate the cost function f (n). {h (n)=0; g(n)= distance between the goal and the start position, f(n)=g(n)}

2)  Remove from the List OPEN the node with the smallest cost function and put it on CLOSED. This is the node n. (Incase two or more nodes have the cost function, arbitrarily resolve ties. If one of the nodes is the goal node, then select the goal node)

3)  If n is the goal node then terminate the algorithm and use the pointers to obtain the solution path. Otherwise, continue

4)  Determine all the successor nodes of n and compute the cost function for each successor not on list CLOSED.

5)Associate with each successor not on list OPEN or CLOSED the cost calculated and put these on the list OPEN, placing pointers to n (n is the parent node).

6)Associate with any successors already on OPEN the smaller of the cost values just calculated and the previous cost value.(min(new f(n), old f(n)))

7)Goto step 2.

  

===============================================================================1.基于电子商务仓储物流的任务特点,建立了一个灵活可重构的仓储空间模型,制订了适于仓储物流的机器人运行规则。

2. 将物流任务分解,给出了综合考虑曼哈顿路径代价和等待时间代价的机器人调度方法,

修正A*算法实现了在特殊道路规则约束下的路径规划,进而加入时序建立了时间空间运行地图进行三维路径规划。

should consider

1)在订单任务到达之后,移动机器人的智能调度

2)在移动机器人集群运行的仓储环境中,机器人移动路径的规划和碰撞的预测、检测、防止、3)在给定仓储空间和订单任务密度后,机器人配置数量的优化

在仓储空间中,多个移动机器人同时运行,为了避免碰撞冲突、简化机器人的运行规则、提高系统安全运行的鲁棒性,设定货架区域间的横向、纵向道路均为单行道。

对于建立的仓储空间模型,物流任务的形式是运送某一货架从停放位置n1,到某个入货口/出货口位置n2,待入货/出货任务完成后,再搬运回货架区域位置n3。   

物流任务可以分解成3个步骤。其中,第1个和第3个步骤可以通过任务的分配调度进行优化,减少所花费的时间;第2个步骤可以采用路径规划方法对机器人的路径进行优化。

任务

开始机器人运动到任务对应货架处

起点:机器人起始位置 任务调度决定

终点:任务对应货架位置 任务本身决定

机器人搬运货架运动到对应人(出)货口处

起点:对应货架位置(任务本身决定)

终点:对应人(出)货口位置(任务本身决定)

机器人运动到任合适的空位中卸下货架

起点:对应人(出)货口位置(任务本身决定)

终点:对应的存放空间位置(任务调度决定) 任务结束

机器人的智能调度算法

    针对前述物流任务的第1个步骤进行优化,应使承担任务的机器人能尽早地运行到对应货架处。因此根据一个评价函数对所有可能执行任务的机器人进行评价,从中选取最合适的机器人。

    总的评价函数为gn=w*tn1+tn2表示第n个机器人执行此任务的总代价。

tn1表示第n个机器人完成当前正在运行的任务预计要耗费的时间(若当前为空闲状态则此项为0)。

w表示拥塞系数,用来反映系统的拥塞程度。设置w>1可以反映完成当前任务耗费的实际时间要多于预计的时间。tn2表示第n个机器人运行到任务要求货架处花费的时间。

针对前述物流任务的第3个步骤进行优化,应使机器人搬运的货架尽快停放在空闲区域内,从而使得机器人可以继续执行下一个任务。因此,选取距离起点(机器人的当前位置)最近的一个空闲位置停放。

使用曼哈顿距离估计代价:g=abs( cur.x-n.x)+abs(cur.y-n. y)

式中g表示停放到第n个存放位置的代价。

cur. x表示当前点的横坐标,cur. y表示当前点的纵坐标。

n.x表示第n个存放位置的横坐标,n. y表示第n个存放位置的纵坐标。

abs表示求绝对值的函数。

===============================================================================

移动机器人集群与中心控制系统之间的通信,可以通过无线网络实现。

should consider:路径规划方法和机器人数量对任务完成时间、运行总里程、道路冲突协调的影响;智能调度和路径规划方法的有效性。

AGV式的仓储物流方式已经难以适应电子商务的发展需求,以亚马逊的Kiva Systems为代表的基于移动机器人的自动化仓储正在兴起。

移动机器人在仓储空间中的定位,可以通过二维码、RFID、室内GPS等技术来解决。

===============================================================================

一.多机器人的社会特征

         1.合作

         积极合作:多个机器人通过信息交互(包括图像信息、声音信息、意图等),来协调各自行为,共同完成某一任务(如提高执行效率等)。

         非积极合作:大量的机器人局部交互、自组织表现出一种有序协调的行为;

         2.独立级别:机器人的决定可由本地做出也可由某个外部全局智能体做出。

         3.群体大小:单个、多个、有限群、无线群。

         4.通讯类型

         明确通讯:信息在2个或多个机器人间强制地共享(如采用黑板结构)。什么是黑板结构?       含蓄通讯:通过观察其他机器人活动来获取信息。

    5.通讯范围

         无(机器人间无直接通讯)

         近(机器人互相仅在短距离内能直接通讯)

         无受限(机器人间可无限制地直接通讯)

    6.通讯拓扑

         广播方式(所有信息在一定范围内对所有机器人发送,同时被所有机器人所接收)

         地址化方式(即基于对机器人命名或编号,允许直接通过名字或编号同机器人通讯)

         树结构方式(对机器人进行等级划分,机器人根据等级进行通讯)

         图结构方式(在机器人间建立强制通讯路径)   

         7.通讯带宽:可获取通讯的量。

         高(机器人间可自由无干扰地通讯)

         低(机器人间通讯受限且成本非常高)

         零(机器人间无法通讯)

         8.群体可重构造性:群体结构和组织的柔韧性

         静态(机器人群体结构和组织不允许变化)

         通讯协调(机器人在互相交流中认识彼此,并接纳对方)???

         动态(机器人强制性识别彼此)???

    9.群体单位处理能力:每一机器人使用的基本计算模型,包括?非线性加法单元,?有限状态自动机和?图灵机设备。

         10.群体组成:同类机器人、异类机器人。

二、机器人系统中个体应具备的能力

         自主性:使个体适应动态复杂的外部环境

         协作性:弥补个体能力不足

         感知能力

         局部规划能力:推断其他个体行为意图,从而规划自身行为。

         任务分解能力:根据任务复杂度决定单独执行还是同其他个体协作执行

         学习能力

三、多机器人之间的通讯

         1.通讯在多机器人系统中的作用有:

         同步执行:某些任务要求某些行为以一定顺序或同时执行

    信息交换:不同机器人基于它们空间位置或过去事件的背景知识,对客观世界有不同的感知和认识,共享这些信息通常可达到有效的合作.

    协商:分工,避免重复劳动

         2.通讯范围

    在搜寻任务中,随着机器人通讯半径增加,机器人群体的社会表现力(分工、协作等)下降。

         通讯半径太小,机器人无法获知;而通讯半径太大,会引起整个群体的集结,导致不能有效地对环境进行搜索。why?

         3.通讯内容

    状态通讯:用比特位表示状态.传送一位信息,表明传送信息的机器人处于那一状态。   

    目标通讯:把探测到的目标物体的方位传送给参与的机器人。

         4.大量的模拟研究的定量分析得出关于结论:

    1)通讯能大大改善任务的执行;

    2)通讯不是必要的;

    3)对一些任务来说,复杂的通讯策略不比基本的通讯策略有更多好处。

四、多机器人社会学习问题

    1.强化学习方法

    在多机器人系统中优化功能主要集中在使机器人间干涉最小和使整个群体回报最大。在多机器人系统中学习可能涉及到行为参数的调整,?改善群体和任务的执行,?消除人为操作来协调行为参数.在可利用的机器人下优化任务分配.

    2.通过模仿学习

    模仿包括首先观察另一智能体(人或机器人)行为,然后用某些内部表示对行为进行编码,最终复制出最初的行为.

         行为观察涉及到:去寻找一个老师;认清从老师那需要学习什

么;正确地感知老师的行为.

         行为表示涉及到:选择一合适的编码匹配观察到的行为;用选中的描述格式获取一特定的观察.

         行为的复制涉及到:根据观察激励一个行为;为当前形势选择一行为;调整活动以适应当前环境.

五、问题

         机器人间的干涉,通讯成本,其他机器人行为不确定性。

原文地址:https://www.cnblogs.com/CATHY-MU/p/6189634.html