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.通過模仿學習
模仿包括首先觀察另一智能體(人或機器人)行為,然后用某些內部表示對行為進行編碼,最終復制出最初的行為.
行為觀察涉及到:去尋找一個老師;認清從老師那需要學習什
么;正確地感知老師的行為.
行為表示涉及到:選擇一合適的編碼匹配觀察到的行為;用選中的描述格式獲取一特定的觀察.
行為的復制涉及到:根據觀察激勵一個行為;為當前形勢選擇一行為;調整活動以適應當前環境.
五、問題
機器人間的干涉,通訊成本,其他機器人行為不確定性。
