TWI741943B - 機器人控制方法、動作計算裝置及機器人系統 - Google Patents

機器人控制方法、動作計算裝置及機器人系統 Download PDF

Info

Publication number
TWI741943B
TWI741943B TW110104082A TW110104082A TWI741943B TW I741943 B TWI741943 B TW I741943B TW 110104082 A TW110104082 A TW 110104082A TW 110104082 A TW110104082 A TW 110104082A TW I741943 B TWI741943 B TW I741943B
Authority
TW
Taiwan
Prior art keywords
tool
robot
point cloud
obstacle
vector
Prior art date
Application number
TW110104082A
Other languages
English (en)
Other versions
TW202231426A (zh
Inventor
宋開泰
李宜鴻
Original Assignee
國立陽明交通大學
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 國立陽明交通大學 filed Critical 國立陽明交通大學
Priority to TW110104082A priority Critical patent/TWI741943B/zh
Priority to US17/306,951 priority patent/US11951628B2/en
Application granted granted Critical
Publication of TWI741943B publication Critical patent/TWI741943B/zh
Publication of TW202231426A publication Critical patent/TW202231426A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1653Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41815Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39091Avoid collision with moving obstacles
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40202Human robot coexistence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Manipulator (AREA)
  • Image Processing (AREA)

Abstract

一種機器人控制方法包含以下流程。使用深度攝影機取得深度影像。使用處理電路接收深度影像並根據深度影像取得障礙物的障礙物參數與工具的工具參數。其中工具設置於機器人的終端。使用處理電路獲取終端與障礙物參數之間的距離向量。使用處理電路獲取工具參數與障礙物參數之間的第一端點向量以及第二端點向量。使用處理電路根據距離向量、第一端點向量以及第二端點向量建立虛擬力矩。使用處理電路根據工具參數、障礙物參數以及虛擬力矩輸出控制訊號至機器人,以驅動機器人移動或旋轉工具至目標。

Description

機器人控制方法、動作計算裝置及機器人系統
本揭露有關於動作計算裝置、機器人系統及機器人控制方法,特別是關於用於協作的協作型機器人動作計算裝置、協作型機器人系統及協作型機器人控制方法。
隨著工業4.0(Industry 4.0)的發展,產業界使用機械臂的比例逐年增加。而為了降低使用學習門檻,業界更進一步使用協作型機器人(Collaborative Robot)。經設計,協作型機器人設計能夠與工作人員共同工作,以輔助方式增加工作人員的工作品質。
對於協作型機器人來說,一個重要的課題在於如何使機械臂即時閃避,從而避免傷害工作人員或受障礙物影響。然而,機器人在執行任務時,往往會因應不同任務安裝不同工具。如何針對不同工具的安裝來提供合適的避障策略,是本領域技術人員所需解決的問題之一。
本揭露的一態樣有關於一種機器人控制方法。
根據本揭露的一或多個實施方式,一種機器人控制方法包含以下流程。使用深度攝影機拍攝機器人取得深度影像,機器人的終端設置工具。使用處理電路接收深度影像並根據深度影像取得障礙物的障礙物參數與工具的工具參數。使用處理電路獲取終端與障礙物參數之間的距離向量。使用處理電路根據工具參數與障礙物參數建立的第一端點向量以及第二端點向量。使用處理電路根據距離向量、第一端點向量以及第二端點向量建立虛擬力矩。使用處理電路根據工具參數、障礙物參數以及虛擬力矩輸出控制訊號至機器人,以驅動機器人移動與轉動工具至目標。
在本揭露的一或多種實施方式中,前述的機器人控制方法進一步包含以下流程。使用處理電路根據深度影像產生物體點雲。使用處理電路根據物體點雲建立障礙物的障礙物點雲。使用處理電路根據物體點雲建立工具的當前工具點雲。使用處理電路分別從當前工具點雲以及障礙物點雲分別獲取工具參數以及障礙物參數。
在本揭露的一些實施方式中,使用處理電路根據物體點雲建立工具的當前工具點雲的流程進一步包含以下流程。使用處理電路根據歷史工具點雲資訊從物體點雲中分割出觀測工具點雲。使用處理電路根據物體點雲建立歷史工具點雲資訊。使用處理電路根據歷史工具點雲資訊與機器人的機器人姿態計算預測工具點雲。使用處理電路疊合 觀測工具點雲以及預測工具點雲來建立當前工具點雲。
在本揭露的一些實施方式中,前述的機器人控制方法進一步包含以下流程。使用處理電路根據歷史背景資訊分離物體點雲與背景點雲。使用處理電路根據機器人的機器人姿態資訊從物體點雲分離出機器人點雲。在使用處理電路根據物體點雲建立工具的當前工具點雲以及障礙物的障礙物點雲的流程之前,使用處理電路將背景點雲以及機器人點雲從物體點雲排除。
在本揭露的一些實施方式中,工具參數包含工具的相對二端點。障礙物參數包含障礙物點。處理電路建立機器人的終端與障礙物點之間的距離向量。處理電路根據工具的二端點以及障礙物參數的障礙物點分別建立第一端點向量以及第二端點向量。
在本揭露的一些實施方式中,第一端點向量與第二端點向量的二起點分別對應工具的相對二端點。第一端點向量與第二端點向量的二終點同為障礙物參數中的障礙物點。使用處理電路建立虛擬力矩的流程包含以下流程。使用處理電路根據第一端點向量與第二端點向量計算虛擬力矩的大小。使用處理電路根據距離向量以及第一端點向量或第二端點向量計算虛擬力矩的方向。
在本揭露的一些實施方式中,當第一端點向量的長度大於第二端點向量的長度,虛擬力矩使控制訊號驅動機器人,使機器人旋轉工具來減少第一端點向量的長度。
在本揭露的一或多種實施方式中,前述的機器人控 制方法進一步包含以下流程。使用處理電路根據機器人與目標之間的第一向量取得引力參數。使用處理電路根據機器人與障礙物參數之間的第二向量取得斥力參數。在使用處理電路根據工具參數、障礙物參數以及虛擬力矩輸出控制訊號至機器人的流程中,處理電路根據引力參數、斥力參數與虛擬力矩輸出控制訊號至機器人,以驅動機器人移動與轉動工具至目標。
在本揭露的一些實施方式中,前述的機器人控制方法進一步包含以下流程。使用處理電路將引力參數和斥力參數相加並轉換成速度命令。速度命令用以控制機器人驅動工具移動。使用處理電路將虛擬力矩轉換成角速度命令。角速度命令用以控制機器人驅動工具轉動。使用處理電路將限制參數轉換成束縛命令,其中限制參數有關於機器人的關鍵控制點與障礙物參數之間的第三向量。限制參數設置以限制機器人的關鍵控制點的速度。使用處理電路根據速度命令、角速度命令和束縛命令取得控制訊號。
在本揭露的一些實施方式中,障礙物參數包含障礙物點。當工具的相對二端點相對終端不等距時,使用處理電路跟據二端點建立與終端等距的相對二虛擬端點作為工具參數。處理電路建立機器人的終端與障礙物點之間的距離向量。處理電路根據二虛擬端點以及障礙物參數的障礙物點分別建立第一端點向量以及第二端點向量。
本揭露的一態樣有關於一種動作計算裝置。
根據本揭露的一或多個實施方式,一種動作計算裝 置包含處理電路、記憶體以及一或多個程式。記憶體電性連接處理電路。一或多個程式儲存於記憶體中,並用以被處理電路所執行。一或多個程式包含以下指令。接收深度攝影機拍攝機器人取得的深度影像,其中工具設置於機器人的終端。根據深度影像取得障礙物的障礙物參數與工具的工具參數。獲取終端與障礙物參數之間的距離向量。根據工具參數與障礙物參數建立第一端點向量以及第二端點向量。根據距離向量、第一端點向量以及第二端點向量建立虛擬力矩。根據工具參數、障礙物參數以及虛擬力矩輸出控制訊號至機器人,以驅動機器人移動與轉動工具至目標。
本揭露的一態樣有關於一種機器人系統。
根據本揭露的一或多個實施方式,一種機器人系統包含機器人、深度攝影機以及動作計算裝置。機器人包含終端。終端上設置有工具。深度攝影機設置以取得深度影像。動作計算裝置用以接收並根據深度影像輸出控制訊號以驅動機器人。動作計算裝置包含處理電路、記憶體以及一或多個程式。記憶體電性連接處理電路。一或多個程式儲存於記憶體中,並用以被處理電路所執行。一或多個程式包含以下指令。接收深度攝影機拍攝機器人獲得的深度影像,其中工具設置於機器人的終端。根據深度影像取得障礙物的障礙物參數與工具的工具參數。獲取終端與障礙物參數之間的距離向量。根據工具參數與障礙物參數建立第一端點向量以及第二端點向量。根據距離向量、第一端 點向量以及第二端點向量建立虛擬力矩。根據工具參數、障礙物參數以及虛擬力矩輸出控制訊號至機器人,以驅動機器人移動與轉動工具至目標。
在本揭露的一或多種實施方式中,一或多個程式更包含以下指令。根據深度影像產生物體點雲。根據物體點雲建立障礙物的障礙物點雲。根據物體點雲建立工具的當前工具點雲。從當前工具點雲以及障礙物點雲分別獲取工具參數以及障礙物參數。
在本揭露的一些實施方式中,在根據物體點雲建立工具的當前工具點雲的指令更包含以下指令。根據歷史工具點雲資訊從物體點雲中分割出觀測工具點雲。根據觀測工具點雲建立歷史工具點雲資訊。根據歷史工具點雲資訊與機器人的機器人姿態計算預測工具點雲。疊合觀測工具點雲以及預測工具點雲來建立當前工具點雲。
在本揭露的一些實施方式中,一或多個程式更包含以下指令。根據歷史背景資訊從物體點雲分離出背景點雲。根據機器人的機器人姿態資訊從物體點雲分離出機器人點雲。在根據物體點雲建立工具的當前工具點雲以及障礙物的障礙物點雲的指令之前,將背景點雲以及機器人點雲從物體點雲排除。
在本揭露的一些實施方式中,工具參數包含工具的相對二端點。障礙物參數包含障礙物點。處理電路建立機器人的終端與障礙物點之間的距離向量。處理電路根據工具的二端點以及障礙物參數的障礙物點分別建立第一端點 向量以及第二端點向量。
在本揭露的一些實施方式中,第一端點向量與第二端點向量的二起點分別對應工具的相對二端點。第一端點向量與第二端點向量的二終點同為障礙物參數中的障礙物點。建立虛擬力矩的指令更包含以下指令。根據第一端點向量與第二端點向量計算虛擬力矩的大小。根據距離向量以及第一端點向量或第二端點向量計算虛擬力矩的方向。
在本揭露的一些實施方式中,當第一端點向量的長度大於第二端點向量的長度,虛擬力矩使控制訊號驅動機器人,使機器人旋轉工具來減少第一端點向量的長度。
在本揭露的一或多種實施方式中,一或多個程式更包含以下指令。根據機器人與目標之間的第一向量取得引力參數。根據機器人與障礙物參數之間的第二向量取得斥力參數。根據工具參數障礙物參數之間的第一端點向量以及第二端點向量獲得虛擬力矩。根據工具參數障礙物參數之間的第一端點向量以及第二端點向量獲得虛擬力矩。在根據工具參數、障礙物參數以及虛擬力矩輸出控制訊號至機器人的指令中,處理電路根據引力參數、斥力參數與虛擬力矩輸出控制訊號至機器人,以驅動機器人移動與轉動工具至目標。
在本揭露的一些實施方式中,一或多個程式更包含以下指令。將引力參數和斥力參數相加並轉換成速度命令,其中速度命令用以控制機器人驅動工具移動。將虛擬力矩轉換成角速度命令,其中角速度命令用以控制機器人驅動 工具轉動。將限制參數轉換成束縛命令,其中限制參數有關於機器人的關鍵控制點與障礙物參數之間的第三向量。限制參數設置以限制關鍵控制點的速度。根據速度命令、角速度命令和束縛命令取得控制訊號。
綜上所述,本揭露提供一種機器人控制方法、相應的動作處理裝置以及機器人系統,能夠考量機器人上設置工具時的避障規劃。如此,有利於人機協作。
應理解到,以上的一般說明與以下的詳細描述都是通過示例做進一步說明,旨在為本揭露提供做進一步的解釋。
100:機器人系統
110:深度攝影機
120:動作處理裝置
125:環境監控模組
127:背景濾除單元
129:機器人姿態過濾單元
131:體素格點過濾單元
133:點雲叢集與分類單元
135:點雲分割模組
137:工具點雲分割單元
139:工具點雲模型建立單元
141:當前工具點雲建立單元
143:障礙物點雲分割單元
150:避障路徑規劃模組
152:工作任務單元
154:引力生成單元
156:斥力生成單元
158:統整作用力單元
160:虛擬力矩生成單元
162:環境限制單元
164:統整動作計算單元
180:機器人
182:機器人本體
183:終端效應器
184:底座
185:關鍵控制點
186:手臂
190:機器人控制裝置
200:工具
300:機器人控制方法
310~380:流程
400:當前工具點雲建立方法
410~450:流程
RDI:原始深度影像
PCC:點雲叢集
TPC,TPC’:工具點雲
OPC:障礙物點雲
Fa:引力參數
Fr:斥力參數
Ve:終端速度
Vt:計畫速度
Vi:限制速度
Wt:計畫角速度
CS:控制訊號
OP:障礙物點
Pt:目標座標
P1,P2:路徑
EP:終端點
De:距離向量
EP1,EP1’:第一端點
d1,d1’:第一端點向量
EP2,EP2’:第二端點
d2,d2’:第二端點向量
de1,de1’,de2:距離
本揭露的優點與圖式,應由接下來列舉的實施方式,並參考附圖,以獲得更好的理解。這些圖式的說明僅僅是列舉的實施方式,因此不該認為是限制了個別實施方式,或是限制了申請專利範圍的範圍。
第1圖根據本揭露之一實施方式繪示一機器人系統的一方塊圖;第2圖根據本揭露之一實施方式繪示一機器人系統的一示意圖;第3圖根據本揭露之一實施方式繪示一機器人的一視圖;第4圖根據本揭露之一實施方式繪示一機器人控制方法的一流程圖; 第5圖根據本揭露之一實施方式繪示一當前工具點雲建立方法的一流程圖;第6圖根據本揭露之一實施方式繪示機器人控制方法中所需的多個向量的示意圖;第7圖繪示避障路徑改善的一示意圖;第8圖根據本揭露之另一實施方式繪示機器人控制方法中所需的多個向量的示意圖。
下文係舉實施例配合所附圖式作詳細說明,但所描述的具體實施例僅用以解釋本揭露,並不用來限定本揭露,而結構操作之描述非用以限制其執行之順序,任何由元件重新組合之結構,所產生具有均等功效的裝置,皆為本本揭露內容所涵蓋的範圍。
本揭露提供機器人控制方法以及相應的動作處理系統以及機器人系統,使得機器人的避障路徑規劃能夠一般化且即時地考量到額外設置在機器人上的工具。
請參照第1圖。第1圖根據本揭露之一實施方式繪示一機器人系統100的一方塊圖。
如第1圖所示,在本實施方式中,機器人系統100包含深度攝影機110、動作處理裝置120以及機器人180。動作處理裝置120電性耦接深度攝影機110以及機器人180。在一些具體實施方式中,深度攝影機110可由KinectV2 RGB-D深度攝影機所實現。機器人180可由 Techman Robot的TM協作型機器臂所實現。值得注意的是,上述僅作為例示,不用於限制本揭露。
在一些實施方式中,深度攝影機110用以拍攝機器人180的工作空間(work space)附近的深度影像,從而輸出原始深度影像(raw depth image)RDI至動作處理裝置120。動作處理裝置120接收原始深度影像RDI後經計算處理,從而向機器人180提供控制訊號CS。如此,機器人180接收控制訊號CS後,即通過控制訊號CS驅動。
如第1圖所示,在本實施方式中,動作處理裝置120包含環境監控模組125、點雲分割模組135以及避障路徑規劃模組150。環境監控模組125電性耦接至深度攝影機110,以獲取原始深度影像RDI。原始深度影像RDI經環境監控模組125處理,環境監控模組125能夠輸出由原始深度影像RDI獲得的點雲叢集PCC。點雲叢集PCC為點雲分割模組135接收後,能夠分割出當前工具點雲TPC與障礙物點雲OPC。隨後,避障路徑規劃模組150接收到當前工具點雲TPC與障礙物點雲OPC,進而規劃出機器人180所能作動的路徑,從而提供相應的控制訊號CS,且輸出控制訊號CS至機器人180以驅動機器人180進行作動。
動作處理裝置120的環境監控模組125、點雲分割模組135以及避障路徑規劃模組150的運作,請見後敘的討論。而上述動作處理裝置120的環境監控模組125、 點雲分割模組135以及避障路徑規劃模組150,可由各種硬體或軟體實現,例如可由電路(不論是專用電路,或是於一或多個處理器及編碼指令控制下操作的通用電路)實現,一般而言,電路中包含用以相應於本揭示內容中描述的功能及操作對電氣迴路的操作進行控制之電晶體或其他電路元件。
舉例來說,在部分實施例中,動作計算裝置包含處理電路、記憶體和一或多個程式。記憶體電性連接處理電路。一或多個程式儲存在記憶體中,並且用以被處理電路所執行。操作上,處理電路可執行儲存於記憶體中的一或多個軟體程式及/或指令集,以處理動作計算裝置的各種資料和執行動作計算裝置的各種功能單元。
例如,處理器可由中央處理器、微處理器、數位訊號處理器(Digital Signal Processor,DSP)、複雜型可編程邏輯元件(Complex Programmable Logic Device,CPLD)、現場可程式化閘陣列(Field-programmable gate array,FPGA)等各種方式實現。此外,記憶體包含一或多個記憶體裝置,每一記憶體裝置或多個記憶體裝置之集合包含電腦可讀取記錄媒體。記憶體可由唯讀記憶體(read only memory,ROM)、快閃記憶體、軟碟、硬碟、光碟、快閃碟、隨身碟、磁帶、可從網路讀取的資料庫,或任何本揭示內容所屬技術領域中具有通常知識者所能想到具相同功能的記錄媒體所實現。
值得注意的是,動作計算裝置的實現方法不被上述實施例所限制。此外,在這些裝置和元件的連結中並不被上述實施例所限制。這些裝置和元件及其之間連結,能使動作計算裝置實行以下技術特徵描述的任何配置,及/或在請求項中可以在此被應用。
第2圖根據本揭露之一實施方式繪示一機器人系統100的一示意圖。
在第2圖繪示的實施例中,動作處理裝置120為一個人電腦,其包含有處理器以及記憶體,處理器通過執行記憶體通儲存的程式來控制機器人180,但本揭露並不以此限制動作處理裝置120的態樣。
在第2圖繪示的實施例中,機器人180包含機器人本體182以及機器人控制裝置190。機器人控制裝置190能夠用以接收來自動作處理裝置120的控制訊號CS,從而驅動機器人本體182運作。
在本實施方式中,工具200設置於機器人本體182上。更詳細而言,工具200設置於機器人本體182的終端效應器(end effector)183上。請參照第3圖。第3圖根據本揭露之一實施方式繪示一機器人本體182的一視圖。
如第3圖所示,在本實施方式中,機器人本體182包括終端效應器183、底座184、關鍵控制點185以及手臂186。底座184設置以固定機器人本體182整體。機器人本體182的多個關鍵控制點185,例如為可轉動的關節。 機器人本體182彼此之間通過手臂186來連接。在彼此連接的關鍵控制點185以及手臂186的終端上,設置有終端效應器183。終端效應器183上設置機器人本體182執行任務時所使用的工具200。
在第3圖中,工具200的形狀以一矩形示意地繪示,但本揭露工具200的形狀並不以此為限。
請回到第2圖。在本揭露一實施例的機器人系統100中,通過深度攝影機110即時獲得機器人180及其工作空間附近的原始深度影像RDI。動作處理裝置120電性耦接至深度攝影機110。如此一來,動作處理裝置120將能夠接收原始深度影像RDI,並通過機器人控制方法(例如後續第4圖的機器人控制方法300)來提供控制訊號CS來驅動機器人180。
請參照第4圖,並同時參照第1圖。第4圖根據本揭露之一實施方式繪示一機器人控制方法300的一流程圖。機器人系統100的一動作處理裝置120的架構例如第1圖所示。
在流程310,由深度攝影機110取得機器人180及其工作空間附近的原始深度影像RDI。
深度攝影機110拍攝機器人180的機器人本體182以及工具200來獲得原始深度影像RDI。其中工具200設置於機器人本體182的終端效應器183上。
在一些實施方式中,深度攝影機110固定地拍攝機器人180工作空間。機器人180工作空間,對應到機器 人本體182的終端所能移動到的範圍。深度攝影機110獲取到原始深度影像RDI,將由動作處理裝置120的環境監控模組125所接收。原始深度影像RDI包括有機器人本體182、設置於機器人本體182之終端效應器183的工具200、機器人180工作空間附近的背景以及可能存在於工作空間內的障礙物。
在流程320,由動作處理裝置120內的處理電路接收原始深度影像RDI,並由處理電路根據原始深度影像RDI產生物體點雲。
在本實施方式中,流程320可以通過動作處理裝置120的環境監控模組125實現。如第1圖所示,在本實施方式中,動作處理裝置120包括依序連接的背景濾除單元127、機器人姿態過濾單元129、體素格點過濾單元131與點雲叢集與分類單元133。通過環境監控模組125,能夠將接收到的原始深度影像RDI轉換為物體點雲叢集(point cloud cluster)PCC輸出。
如前所述,環境監控模組125可以通過動作處理裝置120內部的處理電路與記憶體內儲存的程式來形成。在本實施方式中,動作處理裝置120的點雲分割模組135以及避障路徑規劃模組150,亦可通過動作處理裝置120內部的處理電路與記憶體內儲存的程式來實現,以下將不再贅述。
在環境監控模組125接收原始深度影像RDI後,原始深度影像RDI以點雲(point cloud)格式儲存。點雲 可以認為是在三維空間,多個資料點的集合。原始深度影像RDI以點雲格式儲存後,以空間中複數個離散分布的點來呈現。空間中不同的點,可以包括到空間中不同位置的色彩與反射強度(intensity)的資訊。空間中的不同物體,將對應到原始深度影像RDI中聚集的不同資料點所形成的不同點雲。分割出不同物體對應之不同點雲的流程,具體請見後續。
背景濾除單元127用以濾除原始深度影像RDI的背景資訊,以形成前景化深度影像(foreground depth image)並輸出至機器人姿態過濾單元129。由於機器人控制方法300僅針對機器人180的工作空間內規劃避障路徑,因此原始深度影像RDI中遠離工作空間的背景資訊可以被移除,藉以減少計算所需資源。
在一些實施方式中,深度攝影機110是根據機器人本體182的工作空間拍攝固定的空間範圍。因此,背景濾除單元127可事先讀入多個固定的空間範圍中的影像,以通過比對的方式,將原始深度影像RDI中背景相關點雲屏蔽,從而移除了背景資訊,形成前景化深度影像。
機器人姿態過濾單元129用於濾除前景化深度影像中機器人本體182的姿態。由於機器人本體182是可控制的,故可將前景化深度影像中再將機器人本體182的點雲排除,進一步減少計算所需資源。
舉例而言,在一些實施方式中,機器人本體182的資訊儲存為URDF格式。機器人姿態過濾單元129通過 Robot URDF Model Filter演算法,即可進一步將前景化深度影像中的機器人本體182的點雲移除,形成提取點雲。提取點雲排除了遠離工作空間的背景資訊以及機器人本體182的資訊,而將僅包含有工具200以及可能位於工作空間內的障礙物的點雲。
同樣為了減少計算所需資源,體素格點過濾單元131用以減少提取點雲裡點的密度。在一些實施方式中,體素格點過濾單元131可以通過體素過濾(Voxel Grid filter)的算法實現。體素過濾算法把空間劃分數個區域,每一區域所包含的多個點通過重心插值的方式取樣為一個等效點。提取點雲經體素格點過濾單元131處理,形成較低密度的取樣點雲(down-sampled point cloud),便於後續計算處理。
點雲叢集與分類單元133能夠用以將取樣點雲分叢。具體而言,在本實施方式中,點雲叢集與分類單元133能夠將取樣點雲中不同的等效點根據空間中不同位置在資料結構上做分叢。
在一些實施方式中,針對取樣點雲中不同的等效點,點雲叢集與分類單元133能夠建立k維樹(k-dimension tree,k-d tree),使得不同的點分別對應位在空間中不同的一小塊區域。通過k維樹算法的分叢後,可以實現最鄰近搜索(k-nearest neighbor search,k-NNS)。舉例而言,對於取樣點雲中的一第一等效點,經由k維樹的最鄰近搜索算法,能夠以極佳效率找到在特定範圍內最鄰 近第一等效點的另一第二等效點。
如此一來,點雲叢集與分類單元133將能構藉此將取樣點雲中的各個等效點在資料結構上分叢,進而分類出在空間中相對聚集的等效點。舉例而言,能夠通過最鄰近搜索獲得各個等效點之間的最鄰近狀況,從而分析出等效點的聚集情況。如何,經點雲叢集與分類單元133處理,便能夠從取樣點雲得出物體點雲叢集PCC輸出。
在本實施方式中,通過環境監控模組125接收並處理原始深度影像RDI,即可輸出物體點雲叢集PCC。物體點雲叢集PCC排除環境資訊與機器人本體182影響,僅包括工具200與可能存在障礙物之相關點雲資訊。此外,物體點雲叢集PCC在資料結構上具有分叢的k維樹,而有利於後續的最鄰近搜索算法。
請回到第4圖。在流程330,由動作處理裝置120的處理電路根據物體點雲產生工具200的工具參數以及障礙物的障礙物參數。工具200是設置在機器人180之機器人本體182的終端效應器183上。請同時參照第1圖。在本實施方式中,流程330可以通過動作處理裝置120的點雲分割模組135來實現。
在本實施方式中,工具參數可以認為是工具200相應的工具點雲。在本實施方式中,障礙物參數可以認為是當障礙物存在於工作空間時,障礙物所對應的障礙物點雲OPC。
如第1圖所示,在本實施方式中,點雲分割模組 135包括依序連接的工具點雲分割單元137、工具點雲模型建立單元139以及當前工具點雲建立單元141。點雲分割模組135還包括障礙物點雲分割單元143。工具點雲分割單元137與障礙物點雲分割單元143能夠分別接收環境監控模組125所輸出的物體點雲叢集PCC,物體點雲叢集PCC已建立相應的k維樹分叢。
工具點雲分割單元137能夠將工具200相應的觀測工具點雲從物體點雲叢集PCC中分割出來。障礙物點雲分割單元143則能夠在機器人180的工作空間存在障礙物時,將障礙物相應的障礙物點雲從物體點雲叢集PCC中分割出來。
具體而言,在一些實施方式中,由於機器人180的機器人本體182姿態在空間中的位置是已知的,因此工具點雲分割單元137通過最鄰近算法,可以獲得在物體點雲叢集PCC中,哪一團聚集的點雲是最接近/接觸機器人本體182的終端效應器183。
如此,工具點雲分割單元137能夠分割出設置於機器人本體182之終端效應器183的工具的觀測工具點雲。觀測工具點雲即為深度攝影機110目前能觀測到的工具點雲。一旦分割出觀測工具點雲,並且在機器人180的工作空間存在障礙物時,障礙物點雲分割單元143即可對應地排除觀測工具點雲,而從物體點雲叢集PCC中分割出障礙物點雲。
然而,在一些實際情況下,於深度攝影機110拍 攝時,障礙物的存在可能會阻擋到工具200。額外設置的工具200,也不能如機器人本體182一樣完全掌握姿態。因此,觀測工具點雲有可能不能完全反映工具200在空間中的位置。對此,在本揭露之一實施方式的點雲分割模組135中,進一步設置有工具點雲模型建立單元139以及當前工具點雲建立單元141,藉以處理工具200被障礙物阻擋的情況。
為進一步說明工具點雲模型建立單元139以及當前工具點雲建立單元141的運作,請參照第5圖。
第5圖根據本揭露之一實施方式繪示一當前工具點雲建立方法400的一流程圖。當前工具點雲建立方法400包括流程410至流程450。當前工具點雲建立方法400設計能夠於一時段內反覆執行,通過累積歷史工具點雲資訊來預測被阻擋之工具的預測工具點雲。
在流程410,通過工具點雲分割單元137,能夠得出工具200的觀測工具點雲。
進入流程420,確認是否有障礙物存在於機器人180。若否,則工具200在原始深度影像RDI中是未被阻擋的完整姿態,進入到流程430。
在流程430,當前工具點雲建立單元141設置觀測工具點雲作為當前工具點雲TPC,並儲存觀測工具點雲以及機器人本體182的終端效應器183的姿態,來建立歷史點雲資訊。在流程430後,當前工具點雲建立模組141即能直接輸出當前工具點雲TPC,同時工具點雲模型建立 單元139在障礙物進入工作空間的時間點前,即能記錄一或多筆歷史點雲資訊,這些歷史點雲資訊能夠完整反映工具200在空間中的姿態。
在流程420中,一旦障礙物進入到工作空間,則進入到流程440,工具點雲模型建立單元139根據歷史點雲資訊建立預測工具點雲。由於歷史點雲資訊記錄包括終端效應器183姿態,並且機器人本體182整體是可控,於任一時間點機器人的姿態都是已知的,因此工具點雲模型建立單元139能夠根據已知的終端效應器183姿態,建立預測工具點雲。
隨後,進入到流程450,當前工具點雲建立單元141重疊觀測工具點雲以及預測工具點雲,即能形成輸出的當前工具點雲TPC。重疊觀測工具點雲以及預測工具點雲所融合(merge)而成的當前工具點雲TPC,能夠通過體素過濾的算法均勻化當前工具點雲TPC中等效點的分布密度。如此,除了深度攝影機110直接觀測到的觀測工具點雲外,能夠一併以預測方式改善工具200被阻擋的問題。
如此一來,通過點雲分割模組135實現流程330,在點雲分割模組135接收物體點雲叢集PCC後,輸出當前工具點雲TPC以及障礙物點雲OPC。
在一些實施方式中,針對當前工具點雲TPC以及障礙物點雲OPC在空間中的各個等效點,可以通過卡爾曼濾波器(Kalman filter)提供預測與更新。
請回到第4圖。接續流程330,進入流程340至流程380。在本實施方式中,流程340至流程380,能夠通過機器人系統100的避障路徑規劃模組150來實現。
避障路徑規劃模組150包括工作任務單元152、引力生成單元154、斥力生成單元156、統整作用力單元158、虛擬力矩生成單元160、環境限制單元162以及統整動作計算單元164。
如第1圖所示,點雲分割模組135輸出的當前工具點雲TPC分別為斥力生成單元156以及虛擬力矩生成單元160所接收。點雲分割模組135輸出的障礙物點雲OPC分別為斥力生成單元156、虛擬力矩生成單元160以及環境限制單元162所接收。
在流程340,通過避障路徑規劃模組150的工作任務單元152來定位目標。定位的目標座標Pt例如是空間中的一點,代表工具200的目的地。
工作任務單元152輸出的目標座標Pt為引力生成單元154所接收。在流程340,引力生成單元154即能根據機器人本體182的終端效應器183的位置與目標的目標座標Pt來建立引力參數Fa。如此,在後續規劃路徑時,引力參數Fa即對應到引力,使得工具200為目標座標Pt所吸引,使得機器人本體182在移動工具200將考量到來自目標座標Pt的虛擬力。
舉例而言,在一些實施方式中,引力參數Fa對應到工具200所在之終端效應器183與目標座標Pt之間的 一吸引力,其方向固定由終端效應器183的終端點EP(如後續第6圖所示)往目標座標Pt吸引,引力參數Fa的大小fa則可由如下計算式形成:
Figure 110104082-A0305-02-0024-2
在計算引力參數Fa之大小fa的計算式中,其中終端效應器183的終端點EP(如後續第6圖所示)與目標座標Pt之間具有一距離向量De;參數Va為引力大小fa的最大值;參數αa為形狀係數(shaping factor),其單位為距離的倒數,用以決定引力參數Fa隨距離向量De變化的影響。
根據以上引力大小fa的計算式可知,在此實施例中,一旦終端點EP與目標座標Pt之間距離向量De越遠,則引力參數Fa的大小fa將趨於參數Va,使得引力參數Fa作為一個固定吸引力;若距離向量De驅於0,則將使得引力參數Fa的大小fa亦趨於0,避免在終端點EP在接近目標座標Pt被過度吸引而無法停止。
以上引力參數Fa的計算,能夠通過引力生成單元154生成並輸出至統整作用力單元158。
流程350能夠為斥力生成單元156所實現。在流程350中,通過斥力生成單元156,根據機器人本體182的終端效應器183與障礙物參數建立斥力參數Fr。如第1圖所示,斥力生成單元156接收當前工具點雲TPC以及障礙物點雲OPC。
在本實施方式中,障礙物參數即為障礙物點雲 OPC,而斥力生成單元156能夠根據終端效應器183的終端點EP與障礙物點雲OPC中的一障礙物點OP來生成斥力參數Fr。斥力參數Fr能夠建立假想的斥力,從而在後續規劃避障路徑時,作為避免機器人本體182與工具200和障礙物接觸的指標。
具體而言,請同時參照第6圖。第6圖根據本揭露之一實施方式繪示機器人控制方法300中所需的多個向量的示意圖。
一旦障礙物進入到機器人180的工作空間,如第6圖示意地繪示,障礙物具有相應的障礙物點雲OPC,工具200具有相應的當前工具點雲TPC。通過最鄰近算法,能夠得出障礙物點雲OPC中與當前工具點雲TPC最鄰近的障礙物點OP,以及在當前工具點雲TPC中與障礙物點雲OPC對鄰近的一第一端點EP1。第6圖示意地繪示障礙物點雲OPC的範圍。這對應到,在第6圖繪示的實施例中,當前工具點雲TPC與障礙物點雲OPC之間的最短距離,是障礙物點OP與第一端點EP1之間的第一端點向量d1。通過避免障礙物點OP與第一端點EP1接觸,即可保持工具200不與障礙物接觸。
流程350舉例而言,在一些實施方式中,斥力參數Fr對應到第一端點EP1與障礙物點OP之間的一斥力,其方向由障礙物點OP往第一端點EP1排斥。斥力參數Fr的大小fr則可由如下計算式形成:
Figure 110104082-A0305-02-0025-4
在計算斥力參數Fr之大小fr的計算式中,其中當前工具點雲TPC與障礙物點雲OPC之間具有一最短距離向量do;dsafe為預定之一最短安全距離;參數Vr為斥力大小fr的最大值;參數αr為形狀係數(shaping factor),其單位為距離的倒數,用以決定引力參數Fr隨距離向量da變化的影響。
如此,當最短距離向量do越短,對應工具200與障礙物距離越近時,斥力參數Fr之大小fr逐漸增大;最短距離向量do越長,對應工具200與障礙物距離越遠時,斥力參數Fr之大小fr將逐漸減少;當最短距離向量do退出安全距離dsafe外,則斥力參數Fr的大小將減少至驅於0,對應障礙物將不再對規劃的路徑造成影響。
以第6圖的實施例為例,最短距離向量do為第一端點向量d1,第一端點向量d1的起點為第一端點EP1,終點為障礙物點OP。
然而,應留意到,伴隨障礙物與工具200的姿態變化,障礙物與工具200之間的最短距離向量do是會變動的。意即,在工具200移動的過程中,障礙物點雲OPC的障礙物點OP是變動的;當前工具點雲TPC最鄰近障礙物點雲OPC的點亦是變動的,得變動為當前工具點雲TPC中第一端點EP1以外的點。通過最鄰近算法,即可有效率地得出障礙物點雲OPC的障礙物點OP以及當前工具點雲TPC中的最鄰近點。在一些實施方式中,通過卡爾曼濾波器,能夠更有效地追蹤並預測選定的障礙物點OP以及當 前工具點雲TPC中的最鄰近點。
如此,斥力生成單元156能夠生成斥力參數Fr並輸出至統整作用力單元158。統整作用力單元158統整引力參數Fa與斥力參數Fr後,即能實時地計算以輸出計畫速度Vt至統整動作計算單元164,使機器人本體182在後續能夠驅動工具200以計畫速度Vt移動。
請回到第4圖,並同時參照第6圖。進入到流程360。在本實施方式中,通過虛擬力矩生成單元160,根據工具參數與障礙物參數建立虛擬力矩τ。如前所述,在本實施方式中,工具參數為當前工具點雲TPC,障礙物參數為障礙物點雲OPC。在第1圖中,斥力生成單元156接收當前工具點雲TPC以及障礙物點雲OPC。虛擬力矩生成單元160所建立的虛擬力矩τ,能夠用以使工具200轉動。
請參照第6圖。在本實施方式中,機器人本體182的終端效應器183夾持工具200。終端效應器183具有終端點EP。障礙物點雲OPC中與工具200的最鄰近點為障礙物點OP。當前工具點雲TPC具有第一端點EP1與第二端點EP2。第一端點EP1與第二端點EP2分別位於當前工具點雲TPC的相對二邊界上。終端點EP與障礙物點OP之間具有距離向量De,起點為終端點EP,終點為障礙物點OP。第一端點EP1與障礙物點OP之間具有第一端點向量d1,起點為第一端點EP1,終點為障礙物點OP。第二端點EP2與障礙物點OP之間具有第二端點向量d2, 起點為第二端點EP2,終點為障礙物點OP。終端點EP具有終端速度Ve。終端速度Ve與距離向量De之間存在夾角θ。終端速度Ve為機器人本體182的終端效應器183移動的速度向量,對應設置於終端效應器183上之工具200的移動速度。
根據第6圖的實施例,在本實施方式中,虛擬力矩生成單元160能夠藉由以下計算式計算虛擬力矩τ:
Figure 110104082-A0305-02-0028-6
在以上虛擬力矩τ的計算式中,參數Fmax為一預定之假想旋轉力的上限。在第6圖的實施例中,虛擬力矩τ對應的旋轉軸方向R是穿出紙面,對應虛擬力矩τ的方向使得工具200能夠以穿過終端點EP之一旋轉軸做逆時針旋轉。若第一端點向量d1的長度小於第二端點向量d2的長度,虛擬力矩τ促使工具200逆時針旋轉,從而減少第二端點向量d2的長度;反之若第一端點向量d1的長度大於第二端點向量d2的長度,則將使虛擬力矩τ促使工具200順時針旋轉,減少第一端點向量d1的長度。
在本實施方式中,通過虛擬力矩生成單元160,能夠實現虛擬力矩τ的計算。虛擬力矩生成單元160進而計算出的虛擬力矩τ以用以旋轉工具200的計畫角速度Wt輸出至統整動作計算單元164。
回到第4圖。在流程370,可以通過環境限制單 元162,根據機器人本體182的關鍵控制點185(如第3圖所示)與障礙物參數及環境建立限制參數。
在流程370,環境限制單元162進一步限制機器人本體182的作動。如此將可在規劃工具200的避障路徑時,確保機器人本體182不會碰觸到障礙物。
具體而言,由於機器人本體182是可控制的,因此機器人本體182的各個關鍵控制點185在空間中的座標都是已知的。
對於機器人本體182的各個關鍵控制點185,環境限制單元162能夠設計一安全距離。一旦有障礙物距離關鍵控制點185小於設計的安全距離,或是環境有非預期變化而作為障礙物入侵安全距離,則環境限制單元162能夠根據關鍵控制點185與障礙物點雲OPC之間的距離,強制地機器人本體182的提供束縛速度(constraint velocity)。對於沒有受到威脅的關鍵控制點185,則相應束縛速度提供補償速度。
如此,環境限制單元162統整以上對機器人本體182各個關鍵控制點185的限制,輸出限制速度Vi至統整動作計算單元164。限制速度Vi是作為機器人本體182的限制參數,用以在特定條件下強制規定各個關鍵控制點185的速度。
如此一來,進入到流程380,通過統整動作計算單元164根據引力參數Fa、斥力參數Fr、虛擬力矩τ以及限制參數來控制機器人本體182旋轉或移動工具200至 目標座標Pt。
對於工具200的移動與旋轉,統整動作計算單元164接收到計畫速度Vt與計畫角速度Wt。統整動作計算單元164能夠通過Jacobian矩陣將對工具200規劃的計畫速度Vt與計畫角速度Wt轉換為機器人本體182的作動,藉以產生控制機器人本體182的控制訊號CS,致使機器人本體182的終端效應器183使工具200能夠以計畫速度Vt與計畫角速度Wt移動與轉動。
對於機器人本體182自身的避障,則能通過限制速度Vi做限制。
如此,統整動作計算單元164統整並轉換出對機器人本體182的控制訊號CS。控制訊號CS為機器人180的機器人控制裝置190接收後,機器人控制裝置190驅動機器人本體182,以控制機器人本體182移動或旋轉工具200。
機器人控制方法300能夠執行一段時間,直到工具200移動到目標座標Pt。在工具200移動的過程中,深度攝影機110保持拍攝機器人180之工作空間附近的原始深度影像RDI,動作處理裝置120持續影像處理、分割點雲並實時提供控制訊號CS。
通過虛擬力矩τ的建立,將使工具200能夠以一較短的路徑移動。
第7圖繪示避障路徑改善的一示意圖。當前工具點雲TPC與當前工具點雲TPC’的移動路徑分別以路徑 P1與路徑P2表示。路徑P1與路徑P2分別對應機器人本體182之終端效應器183所夾持的終端點EP的移動軌跡。
虛線的當前工具點雲TPC’的移動路徑P2,對應表示僅考慮到流程340與流程350之引力參數Fa及斥力參數Fr的路徑規劃結果。在移動路徑P2,當前工具點雲TPC’保持以同一側鄰近障礙物點OP,因此在工具200保持同一姿態的情況下,移動路徑P2是繞開障礙物點OP。
本實施方式的當前工具點雲TPC以實線表示。當前工具點雲TPC以路徑P1移動,對應同時考量到流程340至流程360。在考量引力參數Fa及斥力參數Fr的前提下,進一步提供虛擬力矩τ,工具200旋轉,致使當前工具點雲TPC旋轉而在過程中以不同側與障礙物點OP鄰近。這使得路徑P1能夠趨於一直線。如此,路徑P1的長度小於路徑P2,對應在考量虛擬力矩τ後,工具200能以較短路徑移動至目標來執行任務。
第8圖根據本揭露之另一實施方式繪示機器人控制方法中所需的多個向量的示意圖。
在一些實施方式中,由於工具200的重量分布不均,質心偏離工具200的中心,對應終端效應器183並非夾持工具200的中心,使得相對的第一端點EP1與終端點EP的距離de1不同於第二端點EP2與終端點EP的距離de2。在第8圖繪示的實施例中,距離de1小於距離de2。
對此,當基於機器人控制方法300的流程360建 立虛擬力矩τ時,則可以基於距離de2建立虛擬第一端點EP1’,設置虛擬第二端點EP2’為原本的第二端點EP2。虛擬第一端點EP1’與終端點EP的距離de1’等同距離de2。
等效上,可以認為是建立了一個虛擬工具,虛擬工具具有虛擬第一端點EP1’以及虛擬第二端點EP2’,而第8圖的工具200可以認為是虛擬工具的部分。如此,僅需確保建立的虛擬工具能夠閃避障礙物,則屬於虛擬工具一部分的工具200,也能夠跟著閃避障礙物。亦即,虛擬力矩生成單元160得直接針對虛擬工具生成虛擬力矩τ,並將虛擬力矩τ直接套用在工具200的旋轉上。
因此,虛擬力矩τ得參照前述第6圖的實施例來建立,虛擬力矩生成單元160通過以下計算式計算:
Figure 110104082-A0305-02-0032-1
在以上虛擬力矩τ的計算式中,虛擬第一端點EP1’與障礙物點OP之間具有第一端點向量d1’,起點為虛擬第一端點EP1’,終點為障礙物點OP。虛擬第二端點EP2與障礙物點OP之間具有虛擬第二端點向量d2’,起點為虛擬第二端點EP2’,終點為障礙物點OP。
如此一來,針對不同形狀之工具200,均可參照第8圖繪示的實施例建立虛擬端點,從而計算虛擬力矩τ。計算出之虛擬力矩τ,能夠套用在工具200的旋轉上。
綜上所述,本揭露提供機器人控制方法以及相應的 機器人系統與動作處理裝置。針對一般性設置有工具的機器人,本揭露能夠針對工具規劃避障路徑,並且藉由虛擬力矩的建立,使工具前往目標座標時,能夠通過旋轉來閃避障礙物,進而縮短移動的路徑。較短的路徑將使工具在閃避障礙物時有較佳的效率。
雖然本揭露已以實施例揭露如上,然其並不用以限定本揭露,任何熟習此技藝者,在不脫離本揭露的精神和範圍內,當可作各種的更動與潤飾,因此本揭露的保護範圍當視後附的申請專利範圍所界定者為準。
300:機器人控制方法
310~380:流程

Claims (20)

  1. 一種機器人控制方法,包含:使用一深度攝影機拍攝一機器人以取得一深度影像,其中一工具設置於該機器人的一終端;使用一處理電路接收該深度影像並根據該深度影像取得該工具的一工具參數以及一障礙物的一障礙物參數;使用該處理電路獲取該終端與該障礙物參數之間的一距離向量;使用該處理電路根據該工具參數與該障礙物參數建立一第一端點向量以及一第二端點向量;使用該處理電路根據該距離向量、該第一端點向量以及該第二端點向量建立一虛擬力矩;以及使用該處理電路根據該工具參數、該障礙物參數與該虛擬力矩輸出一控制訊號至該機器人,以驅動該機器人移動與轉動該工具至一目標。
  2. 如請求項1所述之機器人控制方法,進一步包含:使用該處理電路根據該深度影像產生一物體點雲;使用該處理電路根據該物體點雲建立該障礙物的一障礙物點雲;使用該處理電路根據該物體點雲建立該工具的一當前工具點雲;以及使用該處理電路分別從該當前工具點雲以及該障礙物點 雲分別獲取該工具參數以及該障礙物參數。
  3. 如請求項2所述之機器人控制方法,其中使用該處理電路根據該物體點雲建立該工具的該當前工具點雲的流程進一步包含:使用該處理電路根據該歷史工具點雲資訊從該物體點雲中分割出一觀測工具點雲;使用該處理電路根據該物體點雲建立一歷史工具點雲資訊;使用該處理電路根據該歷史工具點雲資訊與該機器人的一機器人姿態計算一預測工具點雲;以及使用該處理電路疊合觀測工具點雲與該預測工具點雲以建立該當前工具點雲。
  4. 如請求項2所述之機器人控制方法,進一步包含:使用該處理電路根據一歷史背景資訊從該物體點雲分離出一背景點雲;使用該處理電路根據該機器人的一機器人姿態資訊從該物體點雲分離出一機器人點雲,其中在使用該處理電路根據該物體點雲建立該工具的該當前工具點雲以及該障礙物的該障礙物點雲的流程之前,使用該處理電路將該背景點雲以及該機器人點雲從該物體點雲排除。
  5. 如請求項2所述之機器人控制方法,其中該工具參數包含該工具的相對二端點,該障礙物參數包含一障礙物點,該處理電路建立該機器人的該終端與該障礙物點之間的該距離向量,該處理電路根據該工具的該二端點以及該障礙物參數的該障礙物點分別建立該第一端點向量以及該第二端點向量。
  6. 如請求項5所述之機器人控制方法,其中該第一端點向量與該第二端點向量的該二起點分別對應該工具的相對二端點,該第一端點向量與該第二端點向量的二終點同為該障礙物參數中的一障礙物點,使用該處理電路建立該虛擬力矩的流程包含:使用該處理電路根據該第一端點向量與該第二端點向量計算該虛擬力矩的大小;以及使用該處理電路根據該距離向量以及該第一端點向量或第二端點向量計算該虛擬力矩的方向。
  7. 如請求項6所述之機器人控制方法,其中當該第一端點向量的一長度大於該第二端點向量的一長度,該虛擬力矩使該控制訊號驅動該機器人,使該機器人旋轉該工具來減少該第一端點向量的該長度。
  8. 如請求項1所述之機器人控制方法,進一步 包含:使用該處理電路根據該機器人與一目標之間的一第一向量取得一引力參數;以及使用該處理電路根據該機器人與該障礙物參數之間的一第二向量取得一斥力參數,其中在使用該處理電路根據該工具參數、該障礙物參數以及該虛擬力矩輸出該控制訊號至該機器人的流程中,該處理電路根據該引力參數、該斥力參數與該虛擬力矩輸出該控制訊號至該機器人,以驅動該機器人移動與轉動該工具至該目標。
  9. 如請求項8所述之機器人控制方法,進一步包含:使用該處理電路將該引力參數和該斥力參數相加並轉換成一速度命令,其中該速度命令用以控制該機器人驅動該工具移動;使用該處理電路將該虛擬力矩轉換成一角速度命令,其中該角速度命令用以控制該機器人驅動該工具轉動;使用該處理電路將一限制參數轉換成一束縛命令,其中該限制參數有關於該機器人的一關鍵控制點與該障礙物參數之間的一第三向量,該限制參數設置以限制該關鍵控制點的一速度;以及使用該處理電路根據該速度命令、該角速度命令和該束縛命令取得該控制訊號。
  10. 如請求項2所述之機器人控制方法,其中該障礙物參數包含一障礙物點,當該工具的相對二端點相對該終端不等距時,使用該處理電路跟據該二端點建立與該終端等距的相對二虛擬端點作為該工具參數,該處理電路建立該機器人的該終端與該障礙物點之間的該距離向量,該處理電路根據該二虛擬端點以及該障礙物參數的該障礙物點分別建立該第一端點向量以及該第二端點向量。
  11. 一種動作計算裝置,包含:一處理電路;一記憶體,電性連接該處理電路;以及一或多個程式,其中該一或多個程式儲存於該記憶體中,並用以被該處理電路所執行,該一或多個程式包含以下指令:接收一深度攝影機拍攝一機器人取得的一深度影像,其中一工具設置於該機器人的一終端;根據該深度影像取得該工具的一工具參數以及一障礙物的一障礙物參數;獲取該終端與該障礙物參數之間的一距離向量;根據該工具參數與該障礙物參數建立一第一端點向量以及一第二端點向量;根據該距離向量、該第一端點向量與該第二端點向量建立一虛擬力矩;以及 根據該工具參數、該障礙物參數以及該虛擬力矩輸出一控制訊號至該機器人,以驅動該機器人移動與轉動該工具至一目標。
  12. 一種機器人系統,包含:一機器人,包含一終端,其中該終端上設置有一工具;一深度攝影機,設置以取得一深度影像;以及一動作計算裝置,用以接收並根據該深度影像輸出一控制訊號以驅動該機器人,該動作計算裝置包含:一處理電路;一記憶體,電性連接該處理電路;以及一或多個程式,其中該一或多個程式儲存於該記憶體中,並用以被該處理電路所執行,該一或多個程式包含以下指令:接收一深度攝影機拍攝一機器人取得的一深度影像,其中一工具設置於該機器人的一終端;根據該深度影像取得該工具的一工具參數與一障礙物的一障礙物參數;獲取該終端與該障礙物參數之間的一距離向量;根據該工具參數與該障礙物參數建立的一第一端點向量以及一第二端點向量;根據該距離向量、該第一端點向量與該第二端點向量建立一虛擬力矩;以及根據該工具參數、該障礙物參數以及該虛擬力矩 輸出一控制訊號至該機器人,以驅動該機器人移動與轉動該工具至一目標。
  13. 如請求項12所述之機器人系統,其中該一或多個程式更包含以下指令:根據該深度影像產生一物體點雲;根據該物體點雲建立該障礙物的一障礙物點雲;根據該物體點雲建立該工具的一當前工具點雲;以及從該當前工具點雲以及該障礙物點雲分別獲取該工具參數以及該障礙物參數。
  14. 如請求項13所述之機器人系統,其中在根據該物體點雲建立該工具的該當前工具點雲的指令更包含:根據該歷史工具點雲資訊從該物體點雲中分割出一觀測工具點雲;根據該觀測工具點雲建立一歷史工具點雲資訊;根據該歷史工具點雲資訊與該機器人的一機器人姿態計算一預測工具點雲;以及疊合該觀測工具點雲以及該預測工具點雲來建立該當前工具點雲。
  15. 如請求項13所述之機器人系統,其中該一或多個程式更包含以下指令: 根據一歷史背景資訊從該物體點雲分離出一背景點雲;根據該機器人的一機器人姿態資訊從該物體點雲分離出一機器人點雲,其中在根據該物體點雲建立該工具的該當前工具點雲以及該障礙物的該障礙物點雲的指令之前,將該背景點雲以及該機器人點雲從該物體點雲排除。
  16. 如請求項13所述之機器人系統,其中該工具參數包含該工具的相對二端點,該障礙物參數包含一障礙物點,該處理電路建立該機器人的該終端與該障礙物點之間的該距離向量,該處理電路根據該工具的該二端點以及該障礙物參數的該障礙物點分別建立該第一端點向量以及該第二端點向量。
  17. 如請求項16所述之機器人系統,其中該第一端點向量與該第二端點向量的該二起點分別對應該工具的相對二端點,該第一端點向量與該第二端點向量的二終點同為該障礙物參數中的一障礙物點,在建立該虛擬力矩的指令更包含:根據該第一端點向量與該第二端點向量計算該虛擬力矩的大小;以及根據該距離向量以及該第一端點向量或該第二端點向量計算該虛擬力矩的方向。
  18. 如請求項17所述之機器人系統,其中當該第一端點向量的一長度大於該第二端點向量的一長度,該虛擬力矩使該控制訊號驅動該機器人,使該機器人旋轉該工具來減少該第一端點向量的該長度。
  19. 如請求項12所述之機器人系統,其中該一或多個程式更包含以下指令:根據該機器人與一目標之間的一第一向量取得一引力參數;根據該機器人與該障礙物參數之間的一第二向量取得一斥力參數;以及根據該工具參數該障礙物參數之間的一第一端點向量以及一第二端點向量獲得一虛擬力矩,其中在根據該工具參數、該障礙物參數以及該虛擬力矩輸出該控制訊號至該機器人的指令中,該處理電路根據該引力參數、該斥力參數與該虛擬力矩輸出該控制訊號至該機器人,以驅動該機器人移動與轉動該工具至該目標。
  20. 如請求項19所述之機器人系統,其中該一或多個程式更包含以下指令:將該引力參數和該斥力參數相加並轉換成一速度命令,其中該速度命令用以控制該機器人驅動該工具移動;將該虛擬力矩轉換成一角速度命令,其中該角速度命令用以控制該機器人驅動該工具轉動; 將一限制參數轉換成一束縛命令,其中該限制參數有關於該機器人的一關鍵控制點與該障礙物參數之間的一第三向量,該限制參數設置以限制該關鍵控制點的一速度;以及根據該速度命令、該角速度命令和該束縛命令取得該控制訊號。
TW110104082A 2021-02-03 2021-02-03 機器人控制方法、動作計算裝置及機器人系統 TWI741943B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW110104082A TWI741943B (zh) 2021-02-03 2021-02-03 機器人控制方法、動作計算裝置及機器人系統
US17/306,951 US11951628B2 (en) 2021-02-03 2021-05-04 Robot controlling method, motion computing device and robot system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110104082A TWI741943B (zh) 2021-02-03 2021-02-03 機器人控制方法、動作計算裝置及機器人系統

Publications (2)

Publication Number Publication Date
TWI741943B true TWI741943B (zh) 2021-10-01
TW202231426A TW202231426A (zh) 2022-08-16

Family

ID=80782419

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110104082A TWI741943B (zh) 2021-02-03 2021-02-03 機器人控制方法、動作計算裝置及機器人系統

Country Status (2)

Country Link
US (1) US11951628B2 (zh)
TW (1) TWI741943B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11675329B2 (en) * 2021-06-21 2023-06-13 Rockwell Automation Technologies, Inc. Functional safety system using three dimensional sensing and dynamic digital twin
CN116224367A (zh) * 2022-10-12 2023-06-06 深圳市速腾聚创科技有限公司 障碍物的检测方法及装置、介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160107313A1 (en) * 2014-10-17 2016-04-21 GM Global Technology Operations LLC Dynamic obstacle avoidance in a robotic system
CN110503040A (zh) * 2019-08-23 2019-11-26 斯坦德机器人(深圳)有限公司 障碍物检测方法及装置
CN111958590A (zh) * 2020-07-20 2020-11-20 佛山科学技术学院 一种复杂三维环境中机械臂防碰撞方法及系统
CN112060079A (zh) * 2020-07-30 2020-12-11 深圳市优必选科技股份有限公司 机器人及其碰撞检测方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5006988A (en) * 1989-04-28 1991-04-09 University Of Michigan Obstacle-avoiding navigation system
WO2009055707A1 (en) 2007-10-26 2009-04-30 Honda Motor Co., Ltd. Real-time self collision and obstacle avoidance
JP5173958B2 (ja) * 2009-07-29 2013-04-03 株式会社東芝 移動体姿勢生成方法および移動体姿勢生成装置
DE102010007458A1 (de) 2010-02-10 2011-08-11 KUKA Laboratories GmbH, 86165 Verfahren für eine kollisionsfreie Bahnplanung eines Industrieroboters
JP2012011498A (ja) * 2010-06-30 2012-01-19 Toshiba Corp ロボットアーム操作システムおよびその操作方法
WO2014036549A2 (en) 2012-08-31 2014-03-06 Rethink Robotics, Inc. Systems and methods for safe robot operation
JP2014124734A (ja) * 2012-12-27 2014-07-07 Seiko Epson Corp ロボットおよび動作軌道制御システム
US9475195B2 (en) * 2014-09-12 2016-10-25 Toyota Jidosha Kabushiki Kaisha Anticipatory robot navigation
KR101941147B1 (ko) * 2014-12-25 2019-04-12 카와사키 주코교 카부시키 카이샤 암형 로봇의 장애물 자동 회피방법 및 제어장치
TWI664573B (zh) * 2018-05-11 2019-07-01 國立交通大學 動作計算裝置、機器人系統及機器人控制方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160107313A1 (en) * 2014-10-17 2016-04-21 GM Global Technology Operations LLC Dynamic obstacle avoidance in a robotic system
CN110503040A (zh) * 2019-08-23 2019-11-26 斯坦德机器人(深圳)有限公司 障碍物检测方法及装置
CN111958590A (zh) * 2020-07-20 2020-11-20 佛山科学技术学院 一种复杂三维环境中机械臂防碰撞方法及系统
CN112060079A (zh) * 2020-07-30 2020-12-11 深圳市优必选科技股份有限公司 机器人及其碰撞检测方法和装置

Also Published As

Publication number Publication date
US11951628B2 (en) 2024-04-09
TW202231426A (zh) 2022-08-16
US20220250244A1 (en) 2022-08-11

Similar Documents

Publication Publication Date Title
TWI741943B (zh) 機器人控制方法、動作計算裝置及機器人系統
US11580724B2 (en) Virtual teach and repeat mobile manipulation system
US9089971B2 (en) Information processing apparatus, control method thereof and storage medium
Bagnell et al. An integrated system for autonomous robotics manipulation
CN111462154A (zh) 基于深度视觉传感器的目标定位方法、装置及自动抓取机器人
CN111882610B (zh) 基于椭圆锥人工势场的服务机器人抓取目标物体的方法
CN111085997A (zh) 基于点云获取和处理的抓取训练方法及系统
Han et al. Model-based reinforcement learning approach for deformable linear object manipulation
Tokuda et al. Convolutional neural network-based visual servoing for eye-to-hand manipulator
CN107220601B (zh) 一种基于在线置信度判别的目标抓捕点预测方法
CN114905508A (zh) 基于异构特征融合的机器人抓取方法
CN115070781B (zh) 一种物体抓取方法及双机械臂协作系统
CN117841041B (zh) 基于多臂协同的机械臂组合装置
CN112975939A (zh) 一种协作型机械臂的动态轨迹规划方法
Rogelio et al. Alignment control using visual servoing and mobilenet single-shot multi-box detection (SSD): A review
Xue et al. Gesture-and vision-based automatic grasping and flexible placement in teleoperation
Naik et al. Multi-view object pose distribution tracking for pre-grasp planning on mobile robots
Chandra et al. Garbage detection and path-planning in autonomous robots
Schnaubelt et al. Autonomous assistance for versatile grasping with rescue robots
Tokuda et al. Neural Network based Visual Servoing for Eye-to-Hand Manipulator
Wang et al. Recognition and grasping of target position and pose of manipulator based on vision
Quan et al. Simulation Platform for Autonomous Aerial Manipulation in Dynamic Environments
US20240316762A1 (en) Environmental feature-specific actions for robot navigation
Liu et al. A novel and efficient distance detection based on monocular images for grasp and handover
Iwasaki Solvi Arnold,∗ and Kimitoshi Yamazaki