TW202115366A - 機率性多機器人slam的系統及方法 - Google Patents
機率性多機器人slam的系統及方法 Download PDFInfo
- Publication number
- TW202115366A TW202115366A TW109132557A TW109132557A TW202115366A TW 202115366 A TW202115366 A TW 202115366A TW 109132557 A TW109132557 A TW 109132557A TW 109132557 A TW109132557 A TW 109132557A TW 202115366 A TW202115366 A TW 202115366A
- Authority
- TW
- Taiwan
- Prior art keywords
- robot
- map
- particle
- particles
- neighboring
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 239000002245 particle Substances 0.000 claims abstract description 401
- 238000005259 measurement Methods 0.000 claims abstract description 162
- 230000033001 locomotion Effects 0.000 claims abstract description 37
- 238000013507 mapping Methods 0.000 claims abstract description 18
- 230000008569 process Effects 0.000 claims abstract description 16
- 230000004044 response Effects 0.000 claims abstract description 4
- 238000005070 sampling Methods 0.000 claims description 30
- 238000009826 distribution Methods 0.000 claims description 26
- 230000009466 transformation Effects 0.000 claims 3
- 230000004807 localization Effects 0.000 abstract description 5
- 230000036544 posture Effects 0.000 description 131
- 238000010586 diagram Methods 0.000 description 25
- 230000004927 fusion Effects 0.000 description 21
- 238000004422 calculation algorithm Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000013519 translation Methods 0.000 description 7
- 239000013598 vector Substances 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000007613 environmental effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000691 measurement method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241001481824 Indri Species 0.000 description 1
- 102000008115 Signaling Lymphocytic Activation Molecule Family Member 1 Human genes 0.000 description 1
- 108010074687 Signaling Lymphocytic Activation Molecule Family Member 1 Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- -1 for example Substances 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000002620 method output Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007500 overflow downdraw method Methods 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1682—Dual arm manipulator; Coordination of several manipulators
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0287—Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
- G01C21/206—Instruments for performing navigational calculations specially adapted for indoor navigation
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/28—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
- G01C21/30—Map- or contour-matching
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0272—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising means for registering the travel distance, e.g. revolutions of wheels
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0287—Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
- G05D1/0291—Fleet control
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Electromagnetism (AREA)
- Multimedia (AREA)
- Operations Research (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Algebra (AREA)
- Mechanical Engineering (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Robotics (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
機器人使用粒子過濾器執行即時定位及製圖(SLAM),以處理感測器對機器人在環境中的移動以及環境中佔據位置的測量,以產生粒子(particles)組。各粒子包含環境的地圖以及機器人在環境中的姿勢,以表示環境具有相對於機器人的姿勢定向的地圖之機率。該機器人接收鄰近之機器人的粒子組,並且響應接收到的該鄰近之機器人的粒子組,用該鄰近機器人之機率性取樣的粒子之地圖更新該機器人之機率性取樣之粒子的地圖。更新包含基於機器人之間的相對姿勢,將機器人之機率性取樣之粒子的地圖與旋轉平移的鄰近機器人之機率性取樣之粒子的地圖。
Description
本發明通常涉及移動式機器人,尤其是機率性多機器人即時定位及製圖(probabilistic multi-robot simultaneous localization and mapping, SLAM)。
在機器人製圖中,即時定位及製圖(SLAM)是在未知環境中建構或更新地圖及/或一模型同時追蹤環境中能動者(agent)的位置的計算問題。儘管SLAM與地圖的建立(製圖)以及地圖的使用(定位)有關,但實際上不需要為執行SLAM的系統同時執行SLAM與定位關聯的過程及與製圖關聯的過程。例如,可以以多工方式執行過程。
機器人SLAM的基本問題包含製圖未知區域並依據其感測器的測量(例如,測程器)以及感測器提供環境測量(視覺相機、深度相機、雷射雷達(lidar)等)以及可能的一些外部訊息。機器人製圖與定位幾乎是所有機器人應用的核心。
單一機器人SLAM在眾多系統、演算法以及使用例中受到極大的關注。最近,多機器人協同地執行SLAM的場景開始引起人們的興趣。多機器人SLAM的簡單方法(naïve approach)是使得每一機器人執行彼此獨立的單一機器人SLAM。然而,由於已經使機器人能夠交換訊息以協同執行某些任務,因此,機器人也可協同執行SLAM。即,各機器人不僅可以使用其自身的測程器及環境測量,而且還可以使用從其他機器人接收的訊息來執行SLAM。此方法的優點可以包含更好的性能、更快速的收斂性及穩健性。然而,在多機器人SLAM中進行交換時,機器人收集的測量可能會過高。此外,基於另一機器人之測量來重新評估機器人的SLAM估算所需的計算對於機器人的嵌入式處理器而言可能是昂貴的。參見,例如,L. Carlone, M. K. Ng, J. Du, B. Bona, M. Indri, “Rao-Blackwellized Particle Filters Multi Robot SLAM with Unknown Initial Correspondences and Limited Communication”, ICRA, May 2010。據此,需要改善多機器人SLAM的效率。
一些實施例的目的係提供一種使用粒子濾波器的機率性多機器人即時定位及製圖(SLAM)。粒子濾波器使用粒子組表示機器人的姿勢以及環境的地圖。機器人的姿勢包含機器人的位置與方位中的一個或組合。各粒子定義環境地圖之值以及機器人在環境中目前的姿勢之值的機率。
多機器人SLAM設置中的各機器人都執行單一機器人SLAM,直到兩個機器人彼此相對靠近,以便至少一機器人偵測到另一機器人的存在。單一機器人SLAM係基於測程器與基於測距的測量,在貝氏推測中使用粒子濾波器進行融合,從而用多個粒子表示機器人的地圖與地圖中的姿勢,其中,各個粒子係一對地圖的具體化可能以及該地圖中機器人的姿勢。一旦遇到,機器人將測量它們的相對姿勢,並且無線交換SLAM的訊息指示。
一些實施例係基於以下辨識機器人可以交換它們已經收集直到相遇的所有測程器及測距測量。在這種情況下,多機器人SLAM可以將兩個機器人的測量值與貝氏架構中的相對姿勢測量值融合在一起,這可藉由粒子濾波器來實施。然而,此方法的主要問題係要求機器人交換所有測量然後進行處理。反之,這導致(1)增加通訊頻寬需求、(2)增加各機器人中處理的運算複雜度,因為需要從另一機器人接收到的測量、(3)增加各機器人的記憶體需求,因為需要儲存從另一機器人接收到的測量以及(4)在異質機器人平台(heterogeneous robot platform)上進行協作SLAM的靈活度較小,因為需要為各機器人提供從其他機器人的感測器上的訊息,以便它可以處理從其他機器人獲得的測量。
為此,一些實施例的目的是克服以下要求:機器人在相遇時交換所有測量,以使多機器人SLAM更加實用。具體地,一些實施例揭露一種機率性多機器人SLAM,其中,機器人在會合時交換它們的粒子。值得注意的是,此方法不需要在會合處儲存及交換各機器人之感測器的原始測量(raw measurements)。有利的是,各機器人只要將其相應的感測器之測量融合到代表其姿勢與環境地圖的更新粒子中,便可以將其融合。在會合處,機器人交換粒子導致對通訊頻寬大小的要求相對溫和。另外,此方法僅在機器人彼此靠近時,例如,在彼此的視線內時才建立連接。這允許減輕對通訊覆蓋範圍的要求,該要求可以藉由低功率收發器(例如,實施藍牙標準的收發器)實現。
一些實施例的另一目的是提供這樣一種機率性多機器人定位方法,該方法降低計算複雜度,同時確保由機率性估算提供的性能保證。
一些實施例是基於以下認識到粒子濾波器解決貝氏推測問題,因此,多機器人SLAM融合也應遵循貝氏推測的原理,以保證粒子濾波器的性能。然而,不同機器人之粒子的比較是成對進行的,即,粒子成對分組,並且各對中的兩個粒子相互比較以更新機器人的姿勢。然而,當確定粒子配對時,這種配會破壞貝氏推測所提供的性能保證。
例如,可以將一個機器人的所有粒子與另一機器人的所有粒子進行比較。這樣詳盡的配對是確定性的,但是當所有假說的訊息都可用於機率性估算時,偶然地遵照貝氏推測的原理。然而,這樣的比較導致計算複雜度O(K2
),其中,K是粒子數目。確定性嘗試偏離窮舉配對違反貝式推論的原理。例如,特定的(ad-hoc)分群以及各群集之粒子比較可以降低計算複雜度,但是由於群集是確定性的,因此違反貝氏推測的原理。
一些實施例是基於以下認識到在機率性多機器人定位過程中,對不同機器人之粒子進行機率性取樣及配對可以降低計算複雜度到O(K),其中,K是隨機選擇的粒子對的數量,同時確保粒子濾波器的機率性保證。實際上,機率性取樣遵循貝氏推測的原理,以確保粒子濾波器的性能。此外,機率性取樣也很簡單、計算效率高,且適用於並行計算。
為此,一些實施例,一旦機器人與另一鄰近機器人會合時,用鄰近機器人之機率性取樣粒子的地圖更新該機器人之機率性取樣粒子的地圖,其中,更新包含基於機器人與鄰近機器人之間的相對姿勢,將機器人之取樣粒子的地圖與旋轉平移(roto-trnaslated)的鄰近機器人之取樣粒子的地圖合併。如本文中所使用的,機率性取樣粒子是以某種機率貝取樣,即,不確定地被取樣。可以使用任何隨機及/或偽隨機數產生器來實施這樣的機率性取樣,該隨機及/或偽隨機數產生器配置為以相同機率從一組數字中選擇數字,這樣就可以從集合中選擇任何數字。在不同的實施方式中,依據粒子的權重,均勻或不均勻地對粒子進行隨機取樣,例如權重較大的粒子比權重較小的粒子更有可能被取樣。
因此,一實施例揭露一種用於執行即時定位及製圖(SLAM)的機器人,包含感測器組,用於測量環境中該機器人的移動,並感測該環境中的佔據位置以產生感測器測量;處理器,配置為執行SLAM模組,該SLAM模組藉由粒子濾波器處理感測器測量以產生粒子組,各粒子包含該環境的地圖以及在環境中機器人的姿勢,以表示環境具有相對於該機器人的姿勢定向之該地圖的機率;接收器,配置為接收鄰近機器人的粒子組,其中,該處理器響應於接收到的該鄰近機器人的該粒子組,係配置為用該鄰近機器人的機率性取樣粒子的地圖來更新該機器人的機率性取樣粒子的地圖,其中,該更新包含基於該機器人與該鄰近機器人之間的相對姿勢,將該機器人的該取樣粒子的地圖與旋轉平移(roto-translated)的該鄰近機器人之該取樣粒子的地圖合併;以及輸出介面,配置為在基於該機器人的該粒子確定的目前地圖中輸出機器人的目前地圖與該機器人的目前姿勢中的一個或組合。
另一實施例揭露一種用於執行即時定位及製圖(SLAM)的方法,其中,該方法使用處理器,該處理器與實施該方法的儲存指令耦合,其中,當該指令藉由處理器執行時,該指令執行該方法的步驟,包含測量環境中該機器人的移動,並感測該環境中的佔據位置以產生感測器測量;藉由粒子濾波器處理感測器測量以產生粒子組,各粒子包含該環境的地圖以及在該環境中之機器人的姿勢,以表示該環境具有相對於該機器人之該姿勢定向之該地圖的機率;接收鄰近機器人的粒子組,響應於接收到的該鄰近機器人的該粒子組,並用該鄰近機器人之機率性取樣粒子的地圖來更新機器人之機率性取樣粒子的地圖,其中,該更新包含基於該機器人與該鄰近機器人之間的相對姿勢,將該機器人之該取樣粒子的地圖與旋轉平移(roto-translated)的該鄰近機器人之該取樣粒子的地圖合併;以及在基於該機器人的該粒子確定的目前地圖中輸出該機器人的目前地圖與該機器人的目前姿勢中的一個或組合。
又一實施例揭露一種非暫時性計算機可讀取媒體,在其上具體化由處理器執行的程序以執行一種方法。該方法包含測量環境中該機器人之移動,並感測該環境中的佔據位置以產生感測器測量;藉由粒子濾波器處理感測器測量以產生粒子組,各粒子包含該環境地圖以及在該環境中之該機器人的姿勢,以表示該環境具有相對於該機器人之該姿勢定向之該地圖的機率;接收鄰近機器人的粒子組,響應於接收到的該鄰近機器人的粒子組,並用該鄰近機器人之機率性取樣粒子的地圖來更新機器人之機率性取樣粒子的地圖,其中,該更新包含基於該機器人與該鄰近機器人之間的相對姿勢,將該機器人之取樣粒子的地圖與旋轉平移(roto-translated)的該鄰近機器人之該取樣粒子的地圖合併;以及在基於該機器人的該粒子確定的目前地圖中輸出該機器人的目前圖與機器人的目前姿勢中的一個或組合。
圖1A顯示依據一些實施例的多機器人在室內區域中行進以執行多機器人定位之場景的示意圖說明一情境。在一實施例中,2D佔用網格地圖是已知的及/或可用於機器人。此外或可替代地,一些實施例藉由建構或更新未知環境的地圖來執行即時定位及製圖(SLAM),並同時追蹤機器人的姿勢。
在圖1A所示的實例中,三個機器人121、122以及123是在共用區域110中,並協同執行特定任務。成功執行任務的主要先決條件之一是使機器人能夠執行SLAM,其中包含同時估算未知環境的地圖以及將自身定位在估算的地圖中。換句話說,機器人需要估算地圖110,並且各機器人都需要估算自身在地圖中的位置及方位121、122、123。簡單的方法是讓各機器人使用現有技術中的單一機器人SLAM演算法自行執行SLAM。然而,機器人在執行SLAM時可能會合作,其潛在好處是獲得對環境地圖與其在地圖中位置的更精準的估算。本發明揭露用於多機器人協作與分佈式SLAM的方法。
機器人是完全或部分自主的實體,包含馬達,使其可以在區域中自主移動,感測器組進行各種測量,記憶體儲存測量以及其他的量,處理器執行各種演算法,收發器以與其他機器人及裝置通訊,以及電池為機器人及其子系統供電的電池。
各機器人都配備有用於環境偵測的感測器(例如,低成本的結構化光感測器及用於記錄機器人運動的感測器(例如,測程感測器)。為了實現合作,機器人需要能夠偵測其他機器人的存在。這可以藉由多種方式來實現。例如,在一實施例中,棋盤放置在一機器人上,而另一機器人配備有視覺相機,以偵測棋盤的存在並測量機器人之間相對姿勢(即,相對範圍、方向以及航向)。
假定機器人藉由隨機漫遊或依據某些指令在區域中移動,並且偶爾彼此相對靠近。一旦一個或兩個機器人偵測到相遇,也稱之為會合,這些機器人將透過無線通訊鏈路交換相對小量的訊息。各機器人都使用自身的計算資源區域性將接收到的訊息與自身的訊息融合在一起。換句話說,訊息融合獨立地發生在各機器人上,因此不需要中央伺服器。
更具體地,在區域中行進的各機器人都使用來自環境及運動感測的測量自行執行單一機器人SLAM。使用傳統的基於單一機器人粒子濾波器(particle filter, PF)SLAM演算法可以獲得地圖及路徑/位置得估算,並用一定數量的粒子表示。一旦相遇後,兩個機器人交換它們的粒子。這與多機器人SLAM中的大多數方法行程相比,機器人在兩次連續相遇之間交換收集的所有環境及運動測量。除了粒子之外,測量機器人之間的相對姿勢的機器人還會將該測量傳送給其他機器人。各機器人將代表其地圖及姿勢的粒子融合在一起,然後再與另一機器人相遇,並從另一機器人接收粒子且在兩個機器人之間進行相對姿勢測量。在各機器人上區域性完成的訊息融合的結果是一更新的粒子組。然後,機器人繼續在該區域行進並自行執行SLAM直到它們再次相遇為止。
圖1B顯示使用一些實施例的原理的利用協作SLAM的機器人的示意圖。圖1C顯示圖1B的機器人的各組組件的示意圖。機器人是完全或部分自主的實體包含馬達106,使其可以在區域中自主移動,感測器組102、103、104以及105進行各種測量,記憶體140儲存測量以及其他的量,處理器120執行各種演算法,收發器126(即,接收器及發射器,與其他機器人及裝置通訊),以及電池129為機器人以及其所有裝置提供電力。該機器人還可包含用於執行機器人的各種任務之裝備128,例如,夾持器。
例如,機器人配備有用於環境偵測的感測器(例如,低成本結構光的感測器)及用於記錄機器人的運動之感測器(例如,測程感測器)。為了實現協作,機器人需要能夠偵測到其他機器人的存在,這可通過多種方式來實現。例如,在一種情境中,機器人的面部標記有可見的標記,而另一機器人配備視覺相機已偵測棋盤的存在並測量機器人之間的相對的姿勢(即,相對範圍、方向及航向)。
機器人是配置為藉著隨機漫遊或依據一些指令在區域中移動,並且偶爾彼此相對靠近。一旦一個或兩個機器人都偵測到會合,機器人就會透過無線通訊鏈路交換相對較少的訊息。各機器人都使用自身的計算資源區域性地將接收到的訊息與自身的訊息融合在一起。換句話說,訊息融合獨立地發生在各機器人,因此不需要中央伺服器。
更具體地說,各機器人行程在區域中行進時都會使用從環境及運動感測的測量將自身定位在該區域的地圖中。位置的估算是使用基於單一機器人粒子濾波器的定位獲得的,並用一定數量的姿勢粒子表示。在會合時,兩個機器人交換它們的粒子。這與其他多機器人SLAM相反,機器人在兩個連續會合事件之間交換收集的所有環境及運動測量。除粒子之外,測量機器人之間相對姿勢的機器人會將該測量傳送給其他機器人。然後,各機器人將表示其在會合之前的姿勢的粒子與從另一機器人接收到的粒子以及兩個機器人之間的相對姿勢測量融合在一起。在各機器人上區域性完成的訊息融合的結果是一更新的粒子組。之後,機器人繼續在區域中行進並自行執行姿勢估算,直到它們再度相遇為止。
一些實施例,在機器人與另一機器人會合時,比較機器人的機率性配對的粒子以更新粒子的地圖。如本文所述,機率性配對的粒子是機率性地取樣的(即,不確定性地)。可以使用任何隨機及/或偽隨機產生器實施這種機率的匹配,該偽隨機產生器配置為以相等的機率從一組數字中選擇數字,從而從該組中同樣地選擇任何數字。在不同的實施方式中,依據粒子的權重均勻隨機或不均勻隨機對粒子進行取樣,使得與權重較小的粒子相比,權重較大的粒子更容易被取樣。
圖1D顯示依據一些實施例得用於執行機器人SLAM的系統100之方塊圖。如本文所述,姿勢包含機器人的位置及機器人的定向之一或組合。可以以許多不同的方式來繪製環境地圖,例如,將其作為佔用網格點。系統100實施機率性多機器人SLAM方法,該方法減少計算複雜度,同時確保由機率性估算提供的性能保證。
系統100包含配置為執行所儲存的指令之處理器120以及儲存可藉由處理器執行的指令之記憶體140。處理器120可以是單一核心處理器、多核心處理器、計算群集或任何數量的其他配置。記憶體140可以包含隨機存取記憶體(RAM)、唯讀記憶體(ROM)、快閃記憶體或任何其他適合的記憶體系統。處理器120係通過匯流排106連結至一或多個輸入及輸出裝置。這些指令實施一種用於機率性多機器人SLAM的方法。
為此,系統100包含粒子濾波器131,配置為處理感測器測量以產生一粒子組。各粒子包含環境的地圖及機器人的姿勢,以表示環境具有相對於機器人的姿勢定向的粒子之地圖的佔用網格點的機率。換句話說,各粒子定義機器人目前姿勢值及環境的地圖的機率。可以使用機器人之感測器的測量來確定及/或更新粒子。粒子代表相對於感測器的測量的姿勢。這允許機器人避免儲存感測器的原始測量,且僅儲存粒子135,此為高效記憶的。例如,儲存裝置130可以適於儲存粒子135及/或其他鄰近機器人的粒子。可以使用硬碟、光學驅動機、拇指驅動器(thumb drive)、驅動器陣列或其中任何組合來實施儲存裝置130。
在一些實施方式中,粒子濾波器131可以僅使用機器人之感測器的測量來更新機器人的SLAM粒子。然而,系統100還包含粒子調諧器133,配置為使用外部訊息更新粒子135,即,其他及/或除了機器人的感測器測量之外。具體地,粒子調諧器133響應於接受到鄰近機器人的粒子組,係配置為使用鄰近機器人的機率性取樣粒子的地圖以更新機器人的機率性取樣粒子的地圖,其中,更新包含基於機器人與鄰近機器人之間的相對姿勢,將機器人機率性取樣粒子的地圖與旋轉平移的鄰近機器人的機率性取樣粒子的地圖合併。如本文所述,旋轉平移包含旋轉與平移操作之一或組合。
例如,在一些實施例中,系統100可以隨意地包含相對姿勢估算組件137,其可以使用感測器資訊來確定兩個機器人之間的相對姿勢。感測器資訊可以具有各種形式,並提供相對姿勢的可靠估算。例如,在一種情境中,鄰近機器人的面部標記有可見的標記,同時機器人配備有視覺相機以偵測可見的標記的存在(例如,棋盤),並測量機器人之間的相對姿勢(即,相對範圍、方位及航向)。另外或可替代地,系統100可以從鄰近機器人接收相對姿勢估算。
一些實施例係基於以下認識到粒子濾波器解決貝氏推測問題,因此多機器人SLAM融合也應遵守貝氏推測的原理,以保證粒子濾波器的性能。然而,不同機器人的粒子的比較是成對的,即,粒子是成對分組,並且每對中的兩個粒子是相互之間比對以更新機器人的地圖與姿勢。然而,當確定粒子配對時,這種配對會破壞貝氏推測所提供的性能保證。
一些實施例是基於以下認識到在機率性多機器人定位期間,不同機器人的粒子的隨機配對可以將計算複雜度降低到O(K),其中,K是隨機選擇的粒子對之數量,同時確保粒子濾波器的性能保證。實際上,隨機配對是機率性的,並且遵循貝氏推測的原理來保證粒子濾波器的性能。此外,隨機配對也很簡單、計算效率高以及適用於並行計算。
為此,粒子調諧器是配置為配對機器人的機率性取樣粒子與鄰近機器人的機率性取樣粒子以執行粒子更新。
網路介面控制器150是適於透過匯流排106連接系統100到網路190。透過網路190,使用收發器126,系統可以傳輸機器人的粒子到鄰近機器人及/或要求鄰近機器人傳輸其粒子。此外,系統100包含感測器介面180,用於從機器人的感測器要求測量及/或當機器人靠近鄰近機器人時偵測與鄰近機器人的會合以要求鄰近機器人傳輸其粒子。
在一些實施例中,系統100內人機介面110連接系統至鍵盤111及指向裝置112,其中,指向裝置112可包含一滑鼠、軌跡球、觸控板、操作桿、指向桿、觸控筆或觸控式螢幕等。系統100包含配置為輸出機器人的目前姿勢之輸出介面。例如,輸出介面可以包含記憶體,以使得機器人的姿勢及/或受益於機器人估算姿勢的各種介面到系統。例如,系統100可以透過匯流排106鏈接至適合於將系統100連接到顯示裝置165的顯示介面160,其中,顯示裝置165可以包含電腦監視器(computer monitor)、相機、電視、投影機或行動裝置等。系統100也可連接至適於將該系統連接至裝備128的應用介面170,以基於機器人的位置執行機器人特定的任務。基於粒子濾波器 (particle filter, PF) 的 SLAM
一些實施例使用基於粒子濾波器的SLAM來產生用於協作的多機器人SLAM中的粒子。
圖2A係一些實施例所使用的參考系統中的機器人姿勢的示例。在2D環境中的機器人200的姿勢210包含機器人的2D座標(x, y) 211 212及相對於與環境相關聯的座標系統的方向(也稱為航向)213。在時間t處的2D座標與方向收集到姿勢向量中,其中,運算子T表示向量/矩陣轉置。
在一些實施例中,機器人的姿勢是在附接機器人的座標系統中確定。例如,在一些實施方式中,在機器人的粒子中的地圖是由對準粒子中機器人姿勢的第一座標系統來決定,使得機器人的移動造成第一座標系統的移動。類似地,鄰近機器人的粒子中的地圖是由對準粒子中鄰近機器人姿勢的第二座標系統來決定,使得鄰近機器人的移動造成第二座標系統的移動。系統100旋轉平移機器人的粒子中的地圖與鄰近機器人粒子中的地圖的一個或組合以對準第一和第二座標系統。
一些實施例使用各種環境模組。例如,一些實施例在製圖中使用兩個環境模組。在基於特徵的製圖中,環境是由特徵表示,並且其地圖包含特徵位置的座標。在一佔用網格製圖中,環境是被劃分為N個網格單元,這樣,如果地圖中的第i個網格單元被佔據,則將其標記為,如果空閒,,或者如果測量沒有提供足夠的證據來偵測其佔據的情況,則為「未知」。儘管揭露的方法對於基於特徵的製圖同樣有效,但我們透過關注於佔用網格製圖來呈現它們。
圖2B和2C顯示一些實施例所使用的佔用網格地圖的實例。環境的未知區域220被劃分為8x8個箱(bins),其中,一箱為佔據222或未佔據221。例如,被佔據的多個連續箱指示壁223的存在。圖2C中所示的佔用網格地圖230是從具有2.5x2.5公分(cm)的網格單元之真實世界實驗中獲得,並且如圖所示,其中,黑色的網格單元是佔據231,白色的網格單元未佔據232表示自由區域以及灰色的網格單元233表示「未知」。
一般來說,在某種意義上,網格單元是非獨立的,如果網格單元被佔據,則鄰近網格單元也有可能被佔據,因為它們都共同代表地圖中的某個區域,例如,壁或某些障礙物。然而,觀察網格單元是為獨立隨機變數的集合,並共同估算其佔據狀態會導致指數計算複雜度。因此,我們堅持獨立性假設(1)。
當機器人在環境中行進時,至少兩種類形的測量被收集。即,在時間t時,其雷射掃描傳輸表示測距測量(ranging measurements),該測距測量從機器人到其視野內看到的障礙物的距離。這些測量被收集到向量中。測距測量是用來機率性建模,表示獲得的實現的機率,在給定的姿勢與地圖。直觀上,目標是給予給定機器人姿勢與地圖一致的測量以大機率質量(large probability mass)。
與機器人運動相關的測量是收集到向量中,表示時間間隔中的測程感測器測量(odometric sensor measurement)。測程感測器可以為輪型編碼器(wheel encoder),在這種情況下,我們討論的是真實的量測,或者是發出給機器人的控制輸入,這些控制輸入被視為出於姿勢估算目的的測量。機器人運動模組是用來機率性描述,表是在某各姿勢實現找到機器人的機率,在時間給定其姿勢,以及測程器量測。直觀上,的姿勢實現與時間的姿勢不一致,並且測程器測量接收到相對小的機率質量。單一機器人 SLAM
圖3A顯示依據一些實施例的用於單一機器人SLAM估算的方法之原理方塊圖。方法300將運動模組與測量301以及測距模組與測量302當作輸入,並在地圖305中產生地圖及機器人姿勢的估算。
在貝氏推測架構內,機器人SLAM之目的是推斷在時間的地圖中的地圖與機器人姿勢的機率分布,在給定時間t之前的所有測距與測程測量。即,目的是為了找到 (2)
其中,以及分別是指從初始到目前時間的瞬間的運動與測距測量,並且是到達時間時的所有運動與測距測量的集合。此外,推論(2)需要依序執行,即,時間的地圖與機器人姿勢之信念(belief)應該從時間的地圖與機器人姿勢之信念來更新。這是概念上的藉著執行使用貝氏濾波器,係由運動模組與測距模組來提供。在線性與高斯運動及測距的模組的情況下,貝氏濾波器歸結為卡爾曼濾器(Kalman filter)。
否則,在這些模組線性化之後,貝氏濾波器成為擴展的卡爾曼濾波器。更一般而言,為避免模組線性化,貝氏濾波器通過PF來實施,其中,PF為最先進單一機器人SLAM演算法的核心,稱之為FastSLAM。
圖3B顯示一些實施例所使用的基於粒子濾波器的單一機器人SLAM中的粒子之示例。各粒子310是包含一地圖假設311的三位元組(triplet)、地圖中的機器人姿勢312以及權重313代表這種地圖與姿勢組合的重要性。粒子的數量為315。各粒子中的地圖與姿勢組合是可視為在運動與測距測量一致的地圖中的環境地圖與姿勢之一種假設。
基於粒子濾波器的機器人SLAM的實例是具有以下基本步驟的基於網格的FastSLAM。假設機器人在時間對世界的理解是由一粒子組表示,其更新基於與之間的機器人運動及在處時所取得的測距量測,如下所示:
1. 在時間從運動模組取樣姿勢,在時間給定運動測量及機器人的姿勢,來表示, i.e.,。
2. 基於測距測量來更新地圖之網格單元的佔據機率,從而得出。要注意的是,僅更新藉由測量的網格單元。
3. 計算粒子的權重,依據在時的測距測量有多少對準時間時的地圖及在時間時的地圖中的機器人之姿勢,(4)
4. 一旦按照先前步驟處理所有粒子後,對其正規化(normalize),以使其總和為1。
5. 其在時間的結果粒子組為。機器人相遇
如前所述,機器人偶爾相遇並交換一些訊息以協助協作SLAM。一些實施例使用至少兩個原理來實施相遇。首先,無論相遇是隨機發生或是由機器人的適當控制來安排,在兩個機器人的相遇中,至少一機器人能夠偵測到另一機器人的存在。在兩個機器人的情境中,一種方式來達成這個是在一機器人配備視覺標記(visual tag),而另一配備RGB相機。然後,電腦視覺演算法在RGB攝影機供給(feed)中尋找標記,並在相遇的情況下偵測另一機器人的存在。達到這個需求的其他方法是可能的。
圖4A和4B顯示一些實施例所使用的機器人之間的相對姿勢的實例。在此實例中,機器人A 410是配備有用作為視覺標記的棋盤411。然後,當機器人A與機器人B 412非常接近並且定向成使得機器人B的攝影機413指向機器人A的棋盤時,機器人B偵測機器人A的存在並測量它們的相對姿勢415。
參照圖4B,姿勢為421的機器人B測量對姿勢係422的機器人A的相對姿勢。相對姿勢測量包含它們的相對距離531、機器人A之相對方位433相對於機器人B和機器人A的定向(也稱之為航向435)。注意的是,方位及定向兩者皆在機器人B參考的架構中表達。在一實施中,方位及定向是從含有其他機器人識別標記的RGB攝影機獲得,而距離從方位量測及測距掃描得出。
為了在貝氏架構內執行適當的訊息融合,一些實施例指定機率性模組給相對姿勢的測量,該模組基於機器人的姿勢與地圖。形式上,此模組是用捕獲,其中,是環境的地圖,而以及表示在地圖中兩個機器人在時間相遇時的姿勢。所揭露的方法,在下一部分中描述是不受的選擇之限制。
在一實施例中,相對測距,、方位and 航向的測量是獨立得,並且具有零平均值及變異數的誤差的高斯分布分別是、以及。因此, (5)
其中,為高斯分布變量、平均值以及變異量,而,and為相對測距、方位以及定向對應到並直接地從機器人在時間時的姿勢以及計算。一般來說,變異量,and可從測量數據校正,或是評估基於量測方法的準確度與地圖的解析度。
在其他實施例中,各機器人能夠偵測另一機器人的存在並測量相對測距與方位。我們表示機器人A(機器人B)所做的相對測距量測為()。類似地,令機器人A(機器人B)所做的相對方位量測表示為()。如果機器人交換它們的測量以及,則各機器人都可以從簡單的幾何估算其他機器人的航向,從而使機器人A參考的架構中機器人B的定向是給定為藉由(6)
在此情況中,機器人不需要測量另一機器人的定向。然而,在這樣的情況下,相對方位以及定向不是獨立得。因此,機器人A所做的相對姿勢量測的共變異數矩陣定義為(7)
是在獨立相對測距與方位測量的情況中,給定藉由(8)
其中,,以及是由測量數據中校正,或是評估基於測量方法的準確度與地圖的解析度。
備註,相對姿勢模組(7)假定機器人A從機器人B接收。給定的機器人B也可提供給機器人A,機器人A可從以及依據and來求平均值,以估算相對測距並使用該值於(7)。我們注意到,在這種情況下,共變異矩陣的元素(entry)對應到中的變異量將依附and兩者,並且應該做相應調整。訊息融合演算法
在一些協作SLAM的執行中,機器人在環境中移動,並基於運動與測距測量獨立地執行單一機器人SLAM。為此,機器人包含一感測器組在環境中測量機器人的移動,且感測環境中被佔據的位置來產生感測器測量,以及處理器配置為執行SLAM模組,其藉著粒子濾波器處理感測器量測以產生一粒子組。然而,機器人也包含接收器,配置為接收鄰近機器人的一粒子組以更新粒子。
圖5A顯示依據一些實施例的兩個機器人的典型相遇之示例。參照圖5A,當機器人B 412偵測到機器人A 410的存在時,或者在更一般設置一個或兩個機器人都偵測到彼此的存在,它們測量相對姿勢515並交換它們的SLAM粒子組。即,機器人B傳輸一組自身的粒子510到機器人A。另外或可替代地,機器人A傳輸一組自身的粒子512到機器人B。除了粒子組之外,機器人B傳送自身的相對姿勢測量給機器人A。更一般地,如果機器人A取得任何與機器人之間相對姿勢相關的測量,則將其傳送這些測量給機器人B。當它們偵測到彼此時,粒子組與相對姿勢量測是經由建立在機器人之間的無線鏈路來傳輸,並且可以將任何無線技術用在此任務。
圖5B顯示依據一些實施例的用來協作SLAM的處理管線之原理方塊圖。在相遇之前,機器人自行執行單一機器人SLAM 520,直到其偵測到一些其他機器人的存在,或是某些其他機器人偵測到其存在522,然後取得與機器人522之間相對姿勢的測量。再從其他機器人524接收到單一機器人SLAM粒子後,該機器人執行協作SLAM 526。這導致更新地圖與姿勢組528,其是回饋到單一機器人SLAM的例程520。在相遇之後,各機器人各自繼續在環境中移動並執行單一機器人SLAM 520。
圖5C顯示依據一些實施例的協作多機器人SLAM之原理方塊圖。依據我們在530中實施的演算法,一組機器人A的SLAM粒子532、一組機器人B的SLAM粒子以及從機器人B 534接收來的是與複數相對姿勢量測535融合在一起,。此區塊537的輸出是一更新粒子的結果組,其各粒子表示地圖的假說、地圖中機器人A的姿勢及其重要性權重。協作 SLAM 融合導數 (Cooperative SLAM fusion derivation)
假定,在不失一般性下,兩個機器人標記成A和B在未知的環境中移動,並且各自使用粒子濾波器(PF)執行基於單一機器人網格的SLAM。兩個機器人彼此相遇在時間的瞬間。兩個機器人的感測器的測量被收集直到時間是標記成及,其中,(10)
是所有與運動相關的測距測量的集合由機器人A/B上的感測器來取得。單一機器人SLAM產生一粒子組,其中,各粒子包含環境地圖的假設、相應地圖中的機器人姿勢及表示這樣一地圖-姿勢組合的重要性。即,在地圖中的地圖以及姿勢的後驗分布,由機器人A推理直到時間係表示為(11)
在相遇時,機器人A和B交換它們的粒子組及相對姿勢測量。雖然機器人在相遇時交換它們的粒子組,我們通過考慮地圖中後驗分布以及地圖中機器人姿勢,在相遇之前給定他們所做的所有測量來開始演算法的推導數,(13)
其中,是相對姿勢測量以及表示在相遇之後且機器人移動或是取得任何測距測量之前即時的時間瞬間。或者,如果粒子數量是足夠大,以表示後驗分布(11)與(12),則交換粒子與交換所有原始感測器測量大致相同。這是因為感測器測量是總結在粒子中,並且形式上,如果,粒子組是感測器測量的充分統計量,使得粒子表示感測器測量而沒有訊息丟失。
一些實施例是基於認是到需要考慮相遇時,地圖中的地圖與機器人姿勢的後驗分布,以及相遇前相應地圖中的地圖與機器人軌跡的演進,給定所有測量(14)
其中,是該地圖的演進以及是從開始到相遇時間瞬間機器人A/B的軌跡(姿勢的時間序列)。
多次應用貝氏規則並利用機率性機器人中常用的假定,後驗分布(14)可顯示來滿足 (15)
其中,,當a = b時,則為1,否則為零。因此,(15)中的項反映我們形式上的構造,且是在相遇之後立即的時機瞬間,使得機器人沒有機會在以及之間移動。我們認識到在(15)中的係相似在製圖中使用機器人姿勢測量相對姿勢。
(15)中的項係地圖演化與在地圖中機器人A/B的軌跡的後驗分布,給定其所有收集直到相遇時間瞬間的測量。我們注意到,這種後驗是從執行單一機器人SLAM且保持粒子在各時間瞬間所造成。因此,(15)使表示一粒子組序列,其中,各粒子組含有三位元組的地圖、姿勢與重要性權重相對應於基於其測量直到時間瞬間之前的機器人情境感知。
最後,剩下的項對應於地圖的分布,在給定個別機器人的地圖相遇時,獲得在相遇時那些地圖的地圖與姿勢,以及相對姿勢測量。我們注意到,兩個機器人共享相同的,因為是從相同的訊息進行評估的。直觀上,合併後的地圖是明確地從機器人與個別機器人的地圖與姿勢之間的相對姿勢獲得。
圖6顯示依據一些實施例的合併源自兩個機器人的兩個地圖之示例。如圖所示,機器人A的粒子表示其情境感知包含圖604以及其在該地圖中的姿勢605。類似地,機器人B的粒子含有一地圖假設601及其在該地圖中的姿勢602。在相遇時,機器人A在兩個機器人之間獲得相對姿勢,並從機器人B接收地圖604與姿勢605假說。然後,機器人A使用自身的地圖對準機器人B的地圖,以使得機器人姿勢與相對姿勢測量一致。換句話說,機器人A旋轉平移機器人B的地圖,並表示機器人B的姿勢於機器人A自身的參考架構,基於相對姿勢測量。最後,機器人A將自己的地圖與機器人B的地圖相互疊加,從而生成合併的地圖610,其中,合併地圖中的機器人姿勢612 615的相對姿勢620與相對姿勢測量一致。
訊息融合目的是為了從(15)繪製表示目標分布的樣本,其中,各樣本包含一地圖演進以及各機器人在相遇之前的軌跡,以及相遇時它們的姿勢和地圖。利用重要性取樣方法,一些實施例從由以下給定的提議分布產生樣本, (16)
一些實施例的目標是產生一組粒子從(13)來代表,其中,各粒子含有合併地圖的假說以及姿勢和。為了達成這樣,實施例從提議分布取樣,並在相遇時間之前丟棄地圖演進和軌跡。相當於,合併地圖與姿勢的第k個假說,是取樣為
1. 從產生藉由從依據粒子權重的取樣。類似地,從產生藉由從取樣。我們注意到,在相遇兩粒子組從執行單一機器人SLAM的各機器人產生,並在相遇時交換。
2. 給定機器人的地圖與姿勢的假說以及相對姿勢量測,計算合併地圖的假說,。
3. 由於機器人不會在與之間移動,所以以及。
4. 與 第k個粒子相關的權重是評估為目標與提議分布之間的比例(17)
並正規化為總和為1。回想一下,將個別機器人的地圖與合併,從而使機器人姿勢以及對準相對姿勢量測。換句話說,相對姿勢量測在合併地圖與其中機器人姿勢的不同假說上是一致的,使得(18)
其中,是結果粒子的數量,其我們假設在不失去一般性下,該值等於在相遇前各機器人使用SLAM的粒子數。總體上,各機器人A/B的環境感知都相遇在時間時表示成粒子組。解釋
一般來說,需要大量的粒子(數學上是無限多個)來表示沒有訊息丟失的分布。然而,有限且通常相對較少量的粒子提供基本分布的合理表示。故,假定粒子組捕獲基本後驗(underlying posterior)在無意義的訊息丟失下,(19)中的因式分解指出粒子組的交換大約等於交換感測器測量。
使機器人交換粒子來取代感測器測量有很多好處。首先,由於機器人在相遇之前和之後都會執行單一機器人SLAM,並且其中,一旦粒子從更新到,在時間的感測器測量會被丟棄,因此我們的粒子交換方法自然集成在單一機器人SLAM管路(pipeline)中。其次,在製圖期間不儲存感測器測量將減少對機器人儲存基礎架構施加的記憶體需求負擔。第三,當機器人交換粒子與機器人交換感測器測量的情況相比時,支援機器人之間在相遇時資料交換所需的傳輸頻寬相當地減少。
提出的用於融合交換的粒子組的演算法無縫地支援可能的異質機器人平台。即,為了融合直到時間為止收集的測量以便產生粒子組,單一機器人SLAM的例程必須供應有運動與測距模組參數,其取決於部署在相應機器人上的感測器。因此,在機器人在相遇時交換感測器測量的情況下,機器人也需要供應彼此的感測器模組參數。相比之下,當各粒子組已經含有關於感測器訊息測量結果總和時,機器人交換粒子就並不需要。
提出的融合方法的計算複雜度在粒子數量中是線性的,其中,對計算需求最大的階段是第圖合併步驟。值得注意的是,融合粒子與機器人在相遇時交換感測器測量且各需要基於測量相對姿勢從其他機器人的測量轉換囗自己的參考架構的情況相比,具有顯著較低的計算複雜度,並在轉換的測量上運行單一機器人SLAM演算法的更新步驟。
最後,我們注意到,所提出的方法是完全分散的,因為各機器人都使用自己的計算資源融合自己的粒子與遇到的其他機器人的粒子。換句話說,不需要中央處理器來執行協作多機器人SLAM。地圖合併
如參考圖6的討論,在地圖合併過程中,合併來自對應的粒子組的每個隨機取樣粒子的地圖。另外,一些實施例更新了地圖在特殊方式與粒子濾波器的機率性質(probabilistic nature)一致的重疊區域。基於網格的地圖包含多個網格單元,其佔據機率性在SLAM過程中連續地更新。這裡的問題是如何基於從粒子的取樣配對的地圖給定的佔據機率來計算合併的地圖中網格單元的佔據機率,。即,如果某個網格單元係被機器人A估算為佔據機率為0.9且被機器人B估算為佔據機率為0.4,這裡的問題是如何融合那些機率,以便計算合併地圖中該網格單元的佔用機率。
為了發展用於合併相同網格單位的佔用機率的方法,本揭露首先提供詳細的佔用機率是如何在單一機器人SLAM中更新。考量機器人A,在給定的測量資料與真實機器人的軌跡,單一機器人SLAM透過一單元被佔用與未佔用的機率的對數勝算比(log odd ratio)表示對地圖的了解。單元在時間的對數勝算比是定義為(21)
單一機器人SLAM基於在時間處的單元的紀錄勝算比以及測距量測更新在時間處網格單元的對數勝算比,(22)
其中,是在SLAM開始時第i個網格單元的對數勝算比以及取決於關於網格單元佔用的先驗信念。在均勻的佔用先驗分佈的情況下,(22)中的中間項是反測距模組,其取決於使用的測距感測器的類型。要注意的是(21)和(22)中的機率視機器人的軌跡決定。原則上,如果機器人軌跡是已知的(很少使用),則上述的表達式表示已知機器人姿勢的製圖方法。然而,機器人姿勢通常是未知的,並且是沿著SLAM演算法中的地圖來估算,因此,上述表達式的機器人姿勢是SLAM粒子的姿勢。因此,(22)是用於在某些粒子的時間更新地圖,基於在時間的測距感測器、該粒子在時間的地圖,並從中產生的姿勢的假說。
即,網格單元的對數勝算比是藉由對應網格單元的對數勝算比的總和給定,並藉由各機器人個別地評估。換句話說,地圖合併過程是執行在相遇時從兩組機器人的粒子組的取樣粒子對的兩個地圖上,包含使用藉由兩個地圖給定的相應對數勝算比總和來更新各網格單元的對數勝算比。
圖7A顯示依據一實施例的協作SLAM之示例。兩個機器人在相遇時交換它們的SLAM粒子組,並存取他們相對姿勢的測量。在各機器人上以分散的方式執行獲取一更新粒子700的例程,並重複該例程以獲得所需數量的粒子。如所解釋的,從機器人B得到的粒子組701包含一些數量的粒子,其中,各粒子是一地圖的假說與其在該地圖中的姿勢,以及該假說的重要性之權重。同樣地,機器人A的粒子組702由一定數量的地圖/姿勢假說以及它們的權重組成。在所揭露的方法之一實施例中,依據它們的權重,粒子705是從相應於機器人B的粒子組機率取樣703。類似地,同樣依據它們的權重,粒子706是從源自機器人A的粒子組機率取樣704。給定從機器人B的地圖/姿勢假說、從機器人A的圖/姿勢假說以及相對姿勢量測707,該相對應地圖合併以獲得合併地圖708,並且計算709合併地圖的權重。
圖7B顯示協作SLAM的實施例之一的原理方塊圖。方法710的輸入是從機器人A 711的地圖/姿勢粒子組、從機器人B 712的地圖/姿勢粒子組以及相對姿勢量測713。從機器人A來的粒子是依據它們的權重715隨機取樣。類似地,從機器人B來的粒子是依據它們的權重716隨機取樣。從機器人A與機器人B來的一對取樣粒子的地圖是使用相對應的姿勢與相對姿勢量測合併725。從機器人A與B的各對粒子是權重720。該方法輸出權重地圖-姿勢粒子727。
在所揭露的方法之另一實施例中,最高的重要性權重的粒子是從源自機器人A粒子組中提取。同樣地,最高的重要性權重的粒子也從源自機器人B粒子組中提取。在地圖合併程序中使用從那兩個粒子中的姿勢,表示為以及。要注意的是,該下標參照機器人A與B之間相遇的時間。
圖8顯示依據另一實施例的協作SLAM的原理方塊圖。給定的單一機器人SLAM粒子組相應於機器人A 711與機器人B 712,粒子對被取樣,其中,該對中的各組成是根據粒子的權重從相應的組中取樣。即,從機器人A的粒子組中取樣731粒子,且它是粒子對中的第一組成。同樣地,從機器人B的粒子組中取樣732粒子,且它是粒子對中的第二組成。基於相對姿勢量測713以及最高姿勢以及合併735從該粒子對中的組成的地圖。即,從那些粒子的圖藉由應用旋轉與平移合併從那些粒子的地圖,以將最高權重姿勢以及必須對準測量的機器人之間的相對姿勢。使用(5)、(9)或一些其他模組,將合併地圖的重要性權重計算為從取樣粒子731與732的給定合併地圖及姿勢測量的相對姿勢的可能性。總權重737計算為合併地圖的權重與取樣粒子731與732的權重的乘積。結果的粒子739包含合併的地圖、從取樣粒子731與732的姿勢以及總體權重。所描述的程序730產生一粒子來表示機器人相遇時在地圖中的地圖與機器人姿勢的假說。此例程是執行次直到產生所需粒子數量。那些粒子的結果權重是接著正規化,以便總和為一。偽隨機取樣
依據由其權重給定的離散分佈,所揭露的方法嵌入隨機取樣重複SLAM粒子。假定L粒子,我們用向量表示此分佈,使得其第i元素表示選擇第i個粒子的機率。我們注意到,並標註重複取樣意味著相同的粒子可以被多次取樣。
圖9A係根據一些實施例的偽隨機數取樣的原理方塊圖。一些實施例使用偽隨機粒子取樣來實施針對給定離散分布的粒子取樣。在不失一般性,假定在圖9A中,,使得期望的離散分布903具有元素。偽隨機數產生器901在0與1之間均勻地隨機取樣一數字,使得各數字在這範圍內同樣可能地被選取。基於期望的離散分布以及偽隨機數902來確定905取樣粒子的索引(index)。藉由這麼做,0與1之間的範圍是依據期望的離散分布劃分成長度的分段、、與,然後取樣索引是分段的索引,其中偽隨機數902到達907。如圖9A所示,偽隨機數902係在與之間,因此,從905輸出908是索引3。一般來說,輸出908是介於1與之間的整數,用於進行姿勢粒子查找909。具有這樣的索引的粒子作為取樣姿勢粒子910被傳送。所描述的粒子取樣實施在715與716中(圖7B)以及在731與732之中(圖8)使用。
圖9B顯示依據一實施例之用於取樣姿勢粒子的偽隨機數之原理方塊圖。一般來說,此區塊的輸出應該介於0與1之間得純隨機數,其中,在這範圍內的各數字均可能地被取樣。由於在處理器中隨機數字產生器的實施是確定性的,從這區塊的輸出不能純粹是隨機的。事實上,隨機數產生器的輸出是確定性的。然而,從長遠看來,裝置是設計成使其產生的序列類似於隨機數的序列。由於那些原因,隨機數產生器普遍稱為一偽隨機數產生器。如本文中所使用,「類似」是指所產生的序列近似滿足兩個特性,即為滿足從隨機數產生器產出的純隨機且無限長的序列。第一個特性是關於使產生的數字遵守均勻分布,其意味著產生的數的直方圖是平坦的。第二個特性是關於使產生的數字與彼此之間無關聯,這意味著序列的正規化自相關為delta函數(在零落後等於1,所有非零落後等於0)。
產生偽隨機數的一方法是說明於圖9B。本方法的關鍵(crux)是線性同餘產生器(linear congruential generator, LCG) 922,其產生偽亂數整數的序列,依據(20)
其中,是序列中第i個數,a、b和m是固定的純量,而mod表示模數運算,其得出除以的餘數。因此,可為介於0與的任何整數。通常地,是可以儲存在處理器中的最大整數。
如上所述,當機器人在相遇時測量它們的相對姿勢。相對姿勢測量可以是僅由一機器人與其他機器人通訊的單一測量來進行。可替代地,各機器人可以測量相對姿勢並與其他機器人分享測量。作為又一替代的方案和更一般的情況,各機器人可執行多個相對姿勢測量並與其他機器人做交換。因此,各機器人可具有相對姿勢測量。假定機器人沒有移動且次測量已取得,並且多個姿勢的測量是條件性獨立給定機器人姿勢與以及第圖,測量的可能性由下式得出
其中,式從相對姿勢測量模組評估,如從(5)或(9)中的一個。兩個機器人的多次相遇
依據機器人在執行的任務,兩個機器人在相遇時會依據更高級別的指令繼續自行前進。給定機器人可能再次見面,自然的問題出現,即如何在機器人的隨後相遇時更新SLAM粒子。一般來說,適用相同的方法。然而,如果兩個機器人在相對短的時間間隔內見面兩次或更多次,則使用所描述的方法可能會導致相同的訊息多次融合。結果的SLAM粒子會收縮遠比它們應有的更小,從而導致過度自信的地圖與姿勢的估算。為了確保這不會發生,除非一個或兩個機器人都通過至少一特定的,取決於應用獨立的距離,否則機器人不會執行訊息融合。藉由機器人僅在通過一定距離後才允許交換及融合訊息,我們確保機器人從上次相遇以來所收集的新訊息量足夠大,以避免獲取嚴重自信過度的地圖與姿勢的估算。多個機器人的相遇
所揭露的方法可擴展至兩個機器人以上的協作SLAM。即,假設機器人A首先遇到機器人B,移動一點然後再遇到機器人C。在這樣的情境中,機器人A首先基於從機器人B接收的訊息更新其SLAM粒子,並執行單一機器人SLAM,直到遇到機器人C。接著,機器人A使用其從機器人C接收的訊息更新其最新的SLAM粒子。
同樣地,假定機器人A、B與C在同一時間見面。在這種情況下,機器人A首先基於從其他機器人之一(例如,機器人B)接收的訊息來更新其SLAM粒子。接著,機器人A基於從其他機器人之一(例如,機器人C)接收的訊息來更新其最新的SLAM粒子。其他機器人以相似的方法繼續更新其SLAM粒子。
圖10顯示依據一些實施例的機器人之定位系統1000的方塊圖。該系統1000可實施在機器人A及/或B內部。附加地或替代地,系統1000可以通訊地連接至機器人A及/或B。
系統1000可以包含相機1010、慣性測量單元(inertial measurement unit, IMU)1030、處理器1050、記憶體1060、收發器1070以及顯示器/螢幕1080中的一個或組合,其可通過連接1020可操作地耦合到其他元件。連結1020可包含匯流排、線路、光纖、鏈路或其組合。
收發器1070可以例如包含能夠透過一種或多種無線傳輸網路傳送一或多訊號的發射器以及透過一種或多種無線傳輸網路接收一或是多訊號傳送的接收器。收發器1070可以允許基於各種技術的無線網路傳輸進行通訊,例如但不侷限於微型基地台(femtocells)、Wi-Fi網路或無線區域網路(WLANs),它們可基於IEEE 802.11系列標準、無線個人區域網路(Wireless Local Area Networks, WPANS),例如,藍芽、近場通信(Near Field Communication, NFC)、基於IEEE802.15x系列標準的網路及/或無線廣域網路(Wireless Wide Area Networks, WWANs),例如,LTE、WiMAX等。系統400也可包含一個或多個透過有線網路進行通訊的端口。
在一些實施例中,系統1000可以包括影像感測器,例如,CCD或CMOS感測器、雷射及/或相機1010,以下簡稱為「感測器1010」。例如,感測器1010可以將光學影像轉換成電子影像或數位影像,並且可以將獲取的影像發送到處理器1050。另外地或替代地,感測器1010可以偵測從場景中的目標物反射的光,並將捕獲的光的強度提交給處理器1050。
舉例來說,感測器1010可以包含提供「彩色資訊」(color information)的彩色或灰度相機。採色訊息在本文所用是指彩色及/或灰度資訊。一般來說,在本文所用的,彩色影像或彩色訊訊可以視為包含1到N頻道,其中,N是一些整數,取決於用於儲存影像的彩色空間。舉例來說,RGB影像包括三個頻道,每一頻道用於紅色、藍色以及綠色資訊。
舉例來說,感測器1010可以包含用於提供「深度訊息」的深度感測器。可以使用深度感測器以各種方式來獲得深度資訊。術語「深度感測器」用於指可使用於獨立地獲取深度訊息及/或與一些其他相機做結合的功能單元。舉例來說,在一些實施例中,深度感測器及光學相機可為感測器1010的一部分。舉例來說,在一些實施例中,感測器1010包含RGBD相機,除了彩色(RGB)影像之外,當啟用深度感測器時,其可捕捉位每一元素深度(D)資訊。
作為另一實例,在某一實施例中,感測器1010可包含3D飛行時間(3D Time of Flight, 3DTOF)相機。在使用3DTOF相機的實施例中,深度感測器可以採取閃控耦合至3DTOF相機的形式,其可以在場景中照明物件,並且反射光可以由感測器1010中的CCD/CMOS感測器捕捉。深度資訊可以藉由測量光脈衝行進到物件並返回感測器的時間來獲得。
作為另一個例子,深度感測器可採用光源耦合至感測器1010的形式。在一個實施例中,光源將結構化或紋理化的光圖案投射到場景中的物件上,其可包含一個或多個窄的光波段。深度訊息是藉由利用物件的表面形狀所造成的投射圖案的幾何失真來獲得。一實施例從立體感測器確定深度資訊,該立體感測器式紅外線結構化光投影機與紀錄到RGB相機的紅外線相機的組合。
在一些實施例中,感測器1010包含立體相機。舉例來說,深度感測器可形成為無源立體視覺感測器的一部分,其可能使用兩個或多個相機來獲取場景的深度資訊。捕獲場景中兩個相機共同的點的像素座標可與相機姿勢資訊及/或三角測量技術(triangulation techniques)一起使用,以獲得每元素深度資訊。
在一些實施例中,系統1000可以可操作地連接到多個感測器1010,例如,雙前置相機(dual front cameras)及/或前置和後置相機(front and rear-facing cameras),其也可併入各種感測器。在一些實施例中,感測器1010可以捕捉靜態與視頻影像兩者。在一些實施例中,感測器1010可以包含RGBD或能夠以例如每秒30幀(fps)捕捉影像的立體視頻相機。在一實施例中,感測器1010所捕捉到的影像可以在原始未壓縮的格式,並且可在處理及/或儲存在記憶體1060之前壓縮。在一些實施例中,影像壓縮可由處理器1050使用無損或有損壓縮技術來執行。
在一些實施例中,處理器1050也可以從IMU1030接收輸入。在其他實施例中,IMU1030可以包擴3軸加速計(3-axis accelerometer)、3軸陀螺儀(3-axis gyroscope)及/或磁強計(magnetometer)。IMU1030可以提供速度、定向及/或其他位置相關的資訊給處理器1050。在一些實施例中,IMU1030可以藉由感測器1010捕捉各影像訊框的同步輸出測量的資訊。在一些實施例中,IMU1030的輸出部分地被處理器1050使用以與感測器測量融合及/或進一步處理融合的測量。
系統1000也可以包含螢幕或顯示器1080來成像影像,例如,彩色及/或深度影像。在一些實施例中,顯示器1080可以用於顯示由感測器1010捕捉到的即時影像、融合影像、擴增實境(AR)影像、圖形使用者介面(GUIs)以及其他程式輸出。在一些實施例中,顯示器1080可以包含及/或容納有觸控螢幕,以允許使用者通過一些虛擬鍵盤、圖示(icons)、選單(menus)或其他GUIs的組合,使用者手勢及/或輸出裝置例如記錄針(styli)以及其他寫字工具來輸入資料。在一些實施例中,顯示器1080可以使用液晶顯示(LCD)顯示器或發光二極體(LED)顯示器(例如,有機LED(OLED)顯示器)來實施。在其他實施例中,顯示器480可以為穿戴式顯示器。在一些實施例中,融合的結果可成像在顯示器1080上或是提交到系統1000的內部或外部的不同應用。
例示性系統1000也可以按照與揭露一致的各種方法來修改,例如,藉由增加、組合或省略一個或多個所示的功能區塊。舉例來說,在一些配置中,系統1000不包含IMU1030或收發器1070。進一步地,在一定實例實施方式中,系統1000包含各種其他感測器(未顯示),例如,環境光感測器、麥克風、感音器、超音波感測器、雷射測距儀等。在一些實施例中,系統400的各部分採取一個或多個晶片組及/或類似的形式。
處理器1050是可以使用硬體、韌體與軟體的組合來實施。處理器1050可以表示一個或多個電路,該電路可配置為執行至少一部分的計算程序或是處理感測器融合及/或進一步處理融合測量的方法。處理器1050從記憶體1060擷取指令及/或資料。處理器1050可以使用一個或多各特殊應用集成電路(ASICs)、中央及/或圖形處理單元(CPUs及/或GPUs)、數位信號處理(DSPs)、數位信號處理裝置(DSPDs)、可程式邏輯元件(PLDs)、可規劃邏輯閘陣列(FPGAs)、控制器、微型控制器、微型處理器、嵌入處理器核心(embedded processor cores)、電子裝置、其他設計來執行這裡所描述的功能的電子單元或其組合來實施。
記憶體1060可以在處理器1050內及/或處理器1050外實施。如本文所使用,術語「記憶體」是指任何類型的長期、短期、揮發性、非揮發性或是其他記憶體,並且不限於任何特訂類型的記憶體或記憶體數量,或基於記憶體已儲存的實體媒介的類型。在一些實施例中,記憶體1060保存有助於多機器人機率性定位1055的程式碼。
舉例來說,記憶體1060可以儲存感測器的測量,例如,靜態影像、深度資訊、視訊圖框、程式結果以及IMU1030與其他感測器提供的資料。記憶體1060可以儲存記憶體,該記憶體儲存機器人的幾何、空間的地圖、機器人的運動數學模組以及機器人的動態模組。一般來說,記憶體1060可以表示任何資料儲存機制。記憶體1060可包含,舉例來說,主記憶體及/或輔助記憶體。主記憶體可以包含,舉例來說,隨機存取記憶體、唯讀記憶體等。儘管在圖4中所示為與處理器1050分離,應當理解的是,主記憶體的全部或部分可提供在處理器1050內或除此之外的共同定位及/或耦合至處理器1050。
輔助記憶體可以包含,舉例來說,相同或相似類型的記憶體如主記憶體及/或一或多資料儲存裝置或系統,例如,舉例來說,快閃/隨身碟記憶驅動器、記憶卡驅動器、硬碟驅動器、光硬碟驅動器、磁帶驅動器、固態硬碟驅動器、混合驅動器等。在一定的實施方式中,輔助記憶體可以可操作地接收或除此之外可配置為可移動媒體驅動中的非暫態電腦可讀取介質(non-transitory computer-readable medium)(未顯示)。在一些實施例中,非暫態電腦可讀取介質形成記憶體1060及/或處理器1050的一部分。
本發明的上述實施例可以以多種方式中的任一種來實施。舉例來說,實施例可使用硬體、軟體或其組合來實施。當以軟體實施時,軟體碼可以在任何合適的處理器或處理器收集合上執行,無論是在單一電腦中提供或在多電腦中分布。這樣的處理器可以積體電路實施,在積體電路組成中具有一個或多個處理器。雖然,處理器可以使用任何適當的格式之電路來實施。
同樣,本發明的實施例可體現為一種方法,其例子已經提供一實例。作為該方法一部分執行的動作可在任何合適的方式中排序。因此,可建構實施例,其中,動作是與所示的順序不同的順序來執行,其可包含同時執行一些動作,既使在所示實施例中顯示為一些連續動作。
在申請專利範圍中使用如「第一」、「第二」之類的序數術語來修改一申請專利範圍元素本身並不意味著一申請專利範圍元素相對於另一申請專利範圍的優先權、優先級或順序,或者方法的動作的時間順序執行,但僅用作標籤以區分具有相同名稱的一申請專利範圍元素與另一具有相同名稱的元素(但用於序數詞)來區分申請專利範圍元素。
雖然藉由優選地實施例的實例描述本發明,應當理解的是,在本發明的精神與範圍內可以做出各種其他的調整與修改。
因此,所附申請專利範圍的目的係覆蓋落入本發明真實精神與範圍之內的所有這些的調整與修改。
100:系統
102,103,104,105:感測器
106:馬達;匯流排
110:共用區域;地圖、人機介面
111:鍵盤
112:指向裝置
120:處理器
121,122,123:機器人
126:收發器
128:裝備
129:電池
130:儲存裝置
131:粒子濾波器
133:粒子調諧器
135:粒子
137:相對姿勢估算組件
140:記憶體
150:網路介面控制器
160:顯示介面
165:顯示裝置
170:應用介面
180:感測器介面
185:感測器
190:網路
195:鄰近機器人的粒子
200:機器人
210:姿勢
211:座標x
212:座標y
213:航向
220:未知區域
221:未佔據
222:佔據
223:壁
230:網格地圖
231:佔據
232:未佔據
233:未知
300:單一機器人SLAM
301:運動模組與測量
302:測距模組與測量
305:地圖與姿勢估算
310:粒子
311:地圖假設
312:機器人姿勢
313:權重
315:粒子的數量
410:機器人A
411:棋盤
412:機器人B
413:攝影機
415:相對姿勢
421:姿勢
422:姿勢
433:相對方位
435:航向
510:機器人B的SLAM粒子
512:機器人A的SLAM粒子
515:相對姿勢量測
520:單一機器人SLAM
522:機器人偵測與相對姿勢量測
524:其他機器人估算的地圖與姿勢
526:協作SLAM
528:更新地圖與姿勢估算
531:相對距離
530:協作SLAM演算法
532:機器人A的姿勢粒子組
534:機器人B的姿勢粒子組
535:相對姿勢測量
537:更新地圖-姿勢粒子組
601:地圖假說
602,605,612,615:姿勢
604,610:地圖
620:相對姿勢
700:獲取一個更新粒子700的例行
700,705,706:粒子
701:機器人B的粒子組
702:機器人A的粒子組
703,704:依據粒子權重的機率性取樣
707,713:相對姿勢測量
708:合併地圖使用相對姿勢量測
709:計算重要性權重
710:方法
711:機器人A的地圖-姿勢粒子組
712:機器人B的地圖-姿勢粒子組
715:隨機取樣機器人A的地圖-姿勢粒子
716:隨機取樣機器人B的地圖-姿勢粒子
720:依據相對姿勢測量權重地圖-姿勢對
725:依據相對姿勢量測合併取樣地圖-姿勢粒子的地圖
727:權重地圖-姿勢粒子對
731,732:取樣機器人A的圖-姿勢粒子
735:合併取樣粒子的圖與各機器人最高權重的姿勢
737:計算姿勢的重要性權重與取樣粒子對的權重
739:權重地圖-姿勢粒子對
901:偽隨機數產生器
902:偽隨機數
903:期望的離散分布
905:決定
907:落
908:輸出
909:地圖-姿勢粒子檢查
910:取樣地圖-姿勢粒子
921:種子
922:線性同餘法
923:回饋
924:偽亂數整數
925:除以最大可能數字
1000:系統
1010:感測器
1020:連接
1030:慣性測量單元
1050:處理器
1055:多個機器人機率性定位
1060:記憶體
1070:收發器
1080:顯示器
圖1A顯示依據一些實施例的多機器人在室內區域中行進以執行多機器人定位之場景的示意圖;
圖1B顯示使用一些實施例的原理的利用協作SLAM的機器人的示意圖;
圖1C顯示圖1B的機器人的各組組件的示意圖;
圖1D顯示依據一些實施例的用於執行機器人SLAM的系統100之方塊圖;
圖2A係一些實施例所使用的參考系統中的機器人姿勢的示例;
圖2B顯示一些實施例所使用的佔用網格地圖的實例;
圖2C顯示一些實施例所使用的佔用網格地圖的實例;
圖3A顯示依據一些實施例的用於單一機器人SLAM估算的方法之原理方塊圖;
圖3B顯示一些實施例所使用的基於粒子濾波器的單一機器人SLAM中的粒子之示例;
圖4A顯示一些實施例所使用的機器人之間的相對姿勢的實例;
圖4B顯示一些實施例所使用的機器人之間的相對姿勢的實例;
圖5A顯示依據一些實施例的兩個機器人的典型相遇之示例;
圖5B顯示依據一些實施例的用來協作SLAM的處理管線之原理方塊圖;
圖5C顯示依據一些實施例的協作多機器人SLAM之原理方塊圖;
圖6顯示依據一些實施例的合併源自兩個機器人的兩個地圖之示例;
圖7A顯示依據一實施例的協作SLAM之示例;
圖7B顯示協作SLAM的實施例之一的原理方塊圖;
圖8顯示依據另一實施例的協作SLAM之原理方塊圖;
圖9A係依據一些實施例的偽隨機數取樣之原理方塊圖;
圖9B顯示依據一實施例之用於取樣姿勢粒子的偽隨機數之原理方塊圖;以及
圖10顯示依據一些實施例的機器人之定位系統1000的方塊圖。
110:共用區域;地圖、人機介面
121,122,123:機器人
Claims (19)
- 一種用於執行即時定位及製圖(SLAM)的機器人,包括: 感測器組,用於測量環境中該機器人的移動,並感測該環境中的佔據位置以產生感測器測量; 處理器,配置為執行SLAM模組,該SLAM模組藉由粒子濾波器處理感測器測量以產生粒子組,各粒子包含該環境的地圖以及在該環境中該機器人的姿勢,以表示該環境具有相對於該機器人的該姿勢定向之該地圖的機率; 接收器,配置為接收鄰近機器人的粒子組,其中,該處理器響應於接收到的該鄰近機器人的該粒子組,係配置為用該鄰近機器人的機率性取樣粒子的地圖來更新該機器人的機率性取樣粒子的地圖,其中,該更新包含基於該機器人與該鄰近機器人之間的相對姿勢,將該機器人的該取樣粒子的地圖與旋轉平移的該鄰近機器人之該取樣粒子的地圖合併;以及 輸出介面,配置為在基於該機器人的該粒子確定的目前地圖中輸出該機器人的目前地圖與該機器人的目前姿勢中的一個或組合。
- 如請求項1所述的機器人,其中,依據該粒子濾波器保持的粒子之機率對該機器人的該更新粒子進行機率地取樣。
- 如請求項1所述的機器人,其中,該處理器係配置為基於藉由該機器人保持的第一粒子的重量從該機器人之該粒子組取樣該第一粒子,並基於藉著該鄰近機器人保持的第二粒子的重量從該鄰近機器人之該粒子組取樣該第二粒子,基於該機器人與該鄰近機器人之間的該相對姿勢旋轉並平移該第二粒子之該地圖,以及合併該第一粒子的該地圖與該第二粒子的該旋轉地圖。
- 如請求項3所述的機器人,其中,藉由從該第一粒子的該地圖與該第二粒子的該地圖總和相應對數勝算比(log odd ratio)來計算該合併地圖中的網格單元的對數勝算比,該處理器合併該機器人的該第一粒子的該地圖與該鄰近機器人的該第二粒子的該地圖。
- 如請求項3所述的機器人,其中,該粒子過濾器為各粒子保持一權重,以表示該環境使該粒子之該地圖的佔據網格點相對於該粒子的該機器人之該姿勢定向的機率,其中,該處理器係配置為藉由依據該粒子的權重取樣該機器人的該粒子組及該鄰近機器人的該粒子組來配對該第一粒子及該第二粒子。
- 如請求項4所述的機器人,其中,該粒子具有相等的權重,且該處理器均勻地隨機地取樣該機器人的該粒子以配對粒子。
- 如請求項4所述的機器人,其中,該處理器依據該粒子的該權重非均勻地隨機地取樣該機器人的該粒子,使得與權重較小的粒子相比,權重較大的粒子更有可能被取樣。
- 如請求項1所述的機器人,其中,在該粒子中該機器人的該姿勢對齊第一座標系統中確定該機器人的粒子中的該地圖,使得該機器人的該移動導致該第一座標系統的該移動,其中,在該粒子中該鄰近機器人的該姿勢對齊第二座標系統中確定該鄰近機器人的粒子中的該地圖,使得該鄰近機器人的該移動導致該第二座標系統的該移動,其中,該處理器旋轉平移該機器人之該粒子中的該地圖與該鄰近機器人之該粒子的該地圖中的一個或組合,以對齊該第一座標系統及該第二座標系統。
- 如請求項8所述的機器人,其中,該處理器使用該第一粒子的該第一座標系統及該第二粒子的該第二座標系統,將該機器人的第一粒子之地圖及該鄰近機器人的第二粒子之地圖合併。
- 如請求項8所述的機器人,其中,該處理器使用該機器人之該粒子中具有最大權重的該機器人的粒子之該第一座標系統及該鄰近機器人之該粒子中具有最大權重的該鄰近機器人的粒子之該第二座標系統,將該機器人的第一粒子之地圖及該鄰近機器人的第二粒子之地圖合併。
- 如請求項10所述的機器人,其中,該處理器基於該第一粒子及該第二粒子的該第一與該第二座標系統的定位變換和在該機器人的該粒子與該鄰近機器人的該粒子中具有最大權重的該粒子的該第一與該第二座標系統的定位變換之間的誤差來更新該第一粒子的該權重。
- 如請求項1所述的機器人,其中,該處理器將該機器人的該目前地圖及該目前姿勢中的一個或組合確定作為該粒子的該地圖及該姿勢的權重組合,再加上該機器人的該粒子之相應權重。
- 如請求項1所述的機器人,其中,該感測器組包含測程器,以測量該機器人行進的距離;以及深度感測器,以測量該機器人與在該環境中的佔據位置之間的距離。
- 如請求項1所述的機器人,其中,該SLAM模組使用基於網格FastSLAM方法來估算該粒子。
- 如請求項1所述的機器人,其中,當會合與先前會合之間的距離大於閾值時,該處理器在偵測到與該鄰近機器人的該會面時請求該鄰近機器人傳輸該鄰近機器人的粒子。
- 如請求項16所述的機器人,其中,該距離係自該先前會合以來經過的時間及自該先前會合以來該機器人包含的距離的其中之一者或組合。
- 一種用於執行即時定位及製圖(SLAM)的方法,其中,該方法使用處理器,該處理器與實施該方法的儲存指令耦合,其中,當該指令由該處理器執行時,該指令執行該方法的步驟,包括: 測量環境中該機器人的移動,並感測該環境中的佔據位置以產生感測器測量; 藉由粒子濾波器處理感測器測量以產生粒子組,各粒子包含該環境的地圖以及在該環境中該機器人的姿勢,以表示該環境具有相對於該機器人的該姿勢定向之該地圖的機率; 接收鄰近機器人的粒子組,響應於接收到的該鄰近機器人的該粒子組,並用該鄰近機器人之機率性取樣粒子的地圖來更新該機器人之機率性取樣粒子的地圖,其中,該更新包含基於該機器人與該鄰近機器人之間的相對姿勢,將該機器人的該取樣粒子的地圖與旋轉平移的該鄰近機器人之該取樣粒子的地圖合併;以及 在基於該機器人的該粒子確定的目前地圖中輸出該機器人的目前地圖與該機器人的目前姿勢中的一個或組合。
- 一種非暫態電腦可讀取儲存媒體,在其上具體化由處理器執行的程序以執行一種方法,該方法包括: 測量環境中該機器人的移動,並感測該環境中的佔據位置以產生感測器測量; 藉由粒子過濾器處理感測器測量以產生粒子組,各粒子包含該環境的地圖以及在該環境中該機器人的姿勢,以表示該環境具有相對於該機器人的該姿勢定向之該地圖的機率; 接收鄰近機器人的粒子組,響應於接收到的該鄰近機器人的該粒子組,並用該鄰近機器人之機率性取樣粒子的地圖來更新該機器人之機率性取樣粒子的地圖,其中,該更新包含基於該機器人與該鄰近機器人之間的相對姿勢,將該機器人的該取樣粒子的地圖與旋轉平移的該鄰近機器人之該取樣粒子的地圖合併;以及 在基於該機器人的該粒子確定的目前地圖中輸出該機器人的目前地圖與該機器人的目前姿勢中的一個或組合。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/591,437 | 2019-10-02 | ||
US16/591,437 US11347238B2 (en) | 2019-10-02 | 2019-10-02 | System and method for probabilistic multi-robot SLAM |
WOPCT/JP2020/025739 | 2020-06-23 | ||
PCT/JP2020/025739 WO2021065122A1 (en) | 2019-10-02 | 2020-06-23 | System and method for probabilistic multi-robot slam |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202115366A true TW202115366A (zh) | 2021-04-16 |
Family
ID=72087102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109132557A TW202115366A (zh) | 2019-10-02 | 2020-09-21 | 機率性多機器人slam的系統及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11347238B2 (zh) |
TW (1) | TW202115366A (zh) |
WO (1) | WO2021065122A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI811050B (zh) * | 2022-08-03 | 2023-08-01 | 優式機器人股份有限公司 | 多台移動機器人協作的控制方法 |
TWI825896B (zh) * | 2022-08-03 | 2023-12-11 | 優式機器人股份有限公司 | 環境整理控制方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11853076B1 (en) * | 2017-07-21 | 2023-12-26 | AI Incorporated | Virtual reality concert system |
US11561102B1 (en) * | 2020-04-17 | 2023-01-24 | AI Incorporated | Discovering and plotting the boundary of an enclosure |
CA3217091A1 (en) * | 2021-04-27 | 2022-11-03 | Technologies Hop-Child, Inc. | Systems and methods for labelling data |
CN113375658B (zh) * | 2021-06-15 | 2023-05-09 | 电子科技大学中山学院 | 移动机器人故障下同时fdd和slam的方法及*** |
CN113313827B (zh) * | 2021-06-18 | 2022-02-22 | 浙江大学 | 一种基于连续置信度分布的机器人建图方法 |
US20230147624A1 (en) * | 2021-11-11 | 2023-05-11 | Rapyuta Robotics Co., Ltd. | Autonomous mobile robots for coverage path planning |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100809352B1 (ko) * | 2006-11-16 | 2008-03-05 | 삼성전자주식회사 | 파티클 필터 기반의 이동 로봇의 자세 추정 방법 및 장치 |
US8209143B1 (en) * | 2009-09-15 | 2012-06-26 | Google Inc. | Accurate alignment of multiple laser scans using a template surface |
CN103914069A (zh) | 2014-03-14 | 2014-07-09 | 上海交通大学 | 能容忍认知错误的多机器人协作定位方法 |
US9840003B2 (en) * | 2015-06-24 | 2017-12-12 | Brain Corporation | Apparatus and methods for safe navigation of robotic devices |
KR102635529B1 (ko) * | 2016-10-10 | 2024-02-13 | 엘지전자 주식회사 | 공항용 로봇 및 그의 동작 방법 |
EP3435190B1 (en) * | 2017-07-26 | 2021-10-20 | Tata Consultancy Services Limited | System and method for executing fault-tolerant simultaneous localization and mapping in robotic clusters |
-
2019
- 2019-10-02 US US16/591,437 patent/US11347238B2/en active Active
-
2020
- 2020-06-23 WO PCT/JP2020/025739 patent/WO2021065122A1/en active Application Filing
- 2020-09-21 TW TW109132557A patent/TW202115366A/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI811050B (zh) * | 2022-08-03 | 2023-08-01 | 優式機器人股份有限公司 | 多台移動機器人協作的控制方法 |
TWI825896B (zh) * | 2022-08-03 | 2023-12-11 | 優式機器人股份有限公司 | 環境整理控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US11347238B2 (en) | 2022-05-31 |
WO2021065122A1 (en) | 2021-04-08 |
US20210103290A1 (en) | 2021-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202115366A (zh) | 機率性多機器人slam的系統及方法 | |
US11842500B2 (en) | Fault-tolerance to provide robust tracking for autonomous and non-autonomous positional awareness | |
US11544867B2 (en) | Mapping optimization in autonomous and non-autonomous platforms | |
US11747823B2 (en) | Monocular modes for autonomous platform guidance systems with auxiliary sensors | |
US11501527B2 (en) | Visual-inertial positional awareness for autonomous and non-autonomous tracking | |
US10390003B1 (en) | Visual-inertial positional awareness for autonomous and non-autonomous device | |
US10192113B1 (en) | Quadocular sensor design in autonomous platforms | |
US11948369B2 (en) | Visual-inertial positional awareness for autonomous and non-autonomous mapping | |
WO2019179417A1 (zh) | 数据融合方法以及相关设备 | |
JP7166446B2 (ja) | ロボットの姿勢を推定するシステムおよび方法、ロボット、並びに記憶媒体 | |
US11450102B2 (en) | System and method for spatially mapping smart objects within augmented reality scenes | |
KR102299902B1 (ko) | 증강현실을 제공하기 위한 장치 및 이를 위한 방법 | |
US11448511B2 (en) | System and method for probabilistic multi-robot positioning |