機(jī)器人的學(xué)習(xí)記憶模式
機(jī)器人是人類所創(chuàng)造出來的,人們一直努力地讓這些機(jī)器人可以達(dá)到像人類一樣的能力,可以記憶、可以思考,可以執(zhí)行像人一樣的工作;當(dāng)機(jī)器人頭腦累積了大量的資料之后,人們又開始鉆研人工智慧或類神經(jīng)網(wǎng)路等科學(xué),讓機(jī)器人有機(jī)會可以迅速地在各個(gè)資料儲存區(qū)域找到相關(guān)的資訊,而且將這些資訊有邏輯地連結(jié)起來,作為智慧型判斷的參考基礎(chǔ),經(jīng)過了機(jī)器人大腦的思考、判斷后,機(jī)器人就能將動作命令傳送到各個(gè)運(yùn)動部位,產(chǎn)生有意義的動作。 換個(gè)角度來看,機(jī)器人記憶的能力,是機(jī)器人達(dá)到像人類一樣的能力時(shí)的基礎(chǔ)之一;究竟實(shí)現(xiàn)機(jī)器人記憶能力的方法為何? 本文將就記憶相關(guān)的技術(shù)逐一說明。 規(guī)則記憶的基石-陣列陣列可以算是最簡單的資料存放格式,可以用于機(jī)器人模仿人類的記憶能力所用,而且依照維度分類,陣列可以被分為一維(如圖1所示)、二維、三維…n維陣列。 程式人員常應(yīng)用陣列的資料存放,讓機(jī)器人記憶一些較為固定不變的資訊,如圖2之具有被教導(dǎo)與學(xué)習(xí)能力功能的機(jī)器手臂操作程式,從這個(gè)操作程式介面我們可以看到紅色圈選處的方格,就是教導(dǎo)機(jī)器手臂時(shí),程式會紀(jì)錄教導(dǎo)過程中,完成每一道動作各軸馬達(dá)的位置以及速度,運(yùn)用這種陣列型態(tài)資料結(jié)構(gòu)的機(jī)器手臂常應(yīng)用于生產(chǎn)線上,于某固定位置上取放物品。 實(shí)際應(yīng)用上,只要拉著機(jī)器手臂作動,并且讓機(jī)器手臂紀(jì)錄所有時(shí)間點(diǎn)應(yīng)執(zhí)行的動作及定位座標(biāo),再搭配上合適的狀態(tài)控制機(jī)及路徑規(guī)畫,之后就可以利用機(jī)器手臂替我們執(zhí)行重覆性的工作。 記憶體位置A[0]A[1]A[2]…A…A[k]內(nèi)容abc…@#&…#%$ 圖1 一維陣列示意圖
SCARA機(jī)器手臂操作程式
圖2 SCARA機(jī)器手臂操作程式 在實(shí)際應(yīng)用上,生產(chǎn)線上機(jī)器手臂可能需要記憶多元的資訊,如各軸馬達(dá)需要運(yùn)動的程度與位置;為了使得資料結(jié)構(gòu)可以靈活應(yīng)用,陣列型態(tài)的資料結(jié)構(gòu)常常會有下列幾個(gè)重要的操作模式︰ 1. 取出陣列中的某個(gè)元素。 (這當(dāng)然是最基本不過了,若無此操作模式,就等于是存了一堆資料而不能看也不能用)。 2. 從陣列的頭到尾或是從陣列的尾到頭讀取陣列內(nèi)容,這樣對于可逆性的動作,才可以節(jié)省機(jī)器人的記憶空間。 3. 計(jì)算陣列的長度,便利于分析整個(gè)陣列內(nèi)容。 4. 將一筆新的資料新增至陣列中,如此才能讓人們臨時(shí)增加教導(dǎo)機(jī)器人從事更多的工作或動作。 5. 將陣列中的一筆資料刪除,有時(shí)候要刪減工作或動作使用,但也常常因?yàn)榉稿e(cuò)乃人之常情,給個(gè)機(jī)會改過向善,才是人性化的機(jī)器人系統(tǒng)。 上面的兩個(gè)圖例僅僅針對一維的陣列結(jié)構(gòu),至于二維陣列、三維陣列…乃至于n維陣列,其使用上大致如同一維陣列之方法,只是要再加上分群的觀念;至于多維陣列的操作模式亦同于一維陣列之方法,要處理這些不同大小、維度的陣列,其關(guān)鍵均為陣列的位址,而位址又與陣列的群組息息相關(guān),所以要制作可教導(dǎo)式的機(jī)器人,對于陣列的資料結(jié)構(gòu)以及分群的概念必須更加清楚,才可以制造出精準(zhǔn)且高效率的機(jī)器人。 另外值得一提的是,機(jī)器人的控制系統(tǒng),幾乎都是由微處理器所構(gòu)成的,而矩陣是極為適合微處理器做數(shù)學(xué)或邏輯運(yùn)算的結(jié)構(gòu),藉由矩陣的格式,微處理器可以做大量資料的快速運(yùn)算或批次處理,而陣列與矩陣的格式又是極為相像,所以讓機(jī)器人的運(yùn)動控制由陣列的方式表達(dá),那是最合適不過了,如此才能結(jié)合更行各業(yè)之所長,進(jìn)而將機(jī)器人的功能、運(yùn)作速度、精準(zhǔn)度及多工性發(fā)展到極致。 佇列式資料存取結(jié)構(gòu)當(dāng)我們在教導(dǎo)機(jī)器人或機(jī)器手臂動作時(shí),若是非常確定地都是依照順序的教導(dǎo),不會臨時(shí)穿插任何突發(fā)奇想的動作,其實(shí)還可以使用另一種類似陣列結(jié)構(gòu),但是不利用相對位置資訊的資料結(jié)構(gòu)-佇列,如同圖3之佇列結(jié)構(gòu)概念圖所示(每一顏色均代表一筆資料)。 這種佇列資料結(jié)構(gòu)是可以在后端將資料一筆一筆做加入的動作,而在佇列的前端則是可以執(zhí)行依序取出并刪除該資料的操作,藉由以上的操作描述便可以知道,佇列的資料流處理是具有先進(jìn)先出的特性,佇列的最大優(yōu)勢就是處理符合需要先來先服務(wù)特性的事件。
線性佇列資料結(jié)構(gòu)示意圖
圖3 線性佇列資料結(jié)構(gòu)示意圖 機(jī)器手臂或機(jī)器人在使用佇列資料結(jié)構(gòu)時(shí),難免會遇到一些特例或是不方便的地方,特例就如一些生產(chǎn)線中,機(jī)器手臂不一定是每個(gè)步驟都會參與動作,因?yàn)橛行┕S關(guān)卡像是影像檢測、對位或是比較復(fù)雜的制程動作等,常常都會需要較多步驟與時(shí)間來完成,此時(shí)單純的機(jī)器手臂取放相對地顯得比較容易,在程序上的安排也會使用較少的步驟與時(shí)間就可以完成,若是以步驟排程為主的控制方式而言,就有需要在機(jī)器手臂不需要動作的時(shí)候,安插適當(dāng)數(shù)量的空佇列資料,但是這些空佇列資料將造成整個(gè)佇列無法做刪除的工作。 不方便處,就如生產(chǎn)線上常使用轉(zhuǎn)盤,借以作出管線式的設(shè)計(jì),讓整條生產(chǎn)線可以滿載,不浪費(fèi)任何產(chǎn)線上的空間與生產(chǎn)力,而目前我們所采用的皆為線性佇列,若要配合環(huán)型之生產(chǎn)線,就必須多出許多控制法則以及感測器,借以了解是否已經(jīng)轉(zhuǎn)過一輪了。 類似以上這兩種例子的狀況發(fā)生時(shí),就必須將一般常用的線性佇列調(diào)整成環(huán)狀佇列,這些惱人的問題便可迎刃而解,而環(huán)狀佇列之概念圖如圖4所示(每一顏色均代表一筆資料)。
環(huán)狀佇列資料結(jié)構(gòu)示意圖
圖4 環(huán)狀佇列資料結(jié)構(gòu)示意圖 堆疊式資料存取如圖2所示的機(jī)器手臂系統(tǒng),經(jīng)常出現(xiàn)在固定步驟組裝的生產(chǎn)線上,主要是因?yàn)檫@種機(jī)器手臂的運(yùn)動范圍足夠?qū)拸V,穩(wěn)定度也夠高,而且僅由三到五個(gè)軸向馬達(dá)所組成,可以用簡易的教導(dǎo)式運(yùn)動控制讓此種SCARA做出某些重復(fù)性的動作,對于教導(dǎo)的動作就如剛剛所提及的陣列與佇列方式,只要做恰當(dāng)?shù)某绦蚩刂婆c資料管理,都可以讓SCARA依照我們所教導(dǎo)的位置與速度依序完成動作,周而復(fù)始地工作。 以下將簡單地描述堆疊的加入操作與刪除操作,藉由這兩種簡單的操作模式,將可以完成堆疊的所有運(yùn)作。 堆疊的觀念有如一唯一開口的容器,此容器有它最大的容量限制,每次加入的元素都會往上堆積,有如堆書本一般,因此,可以推論而知堆疊結(jié)構(gòu)加入資料與刪除資料都是在同一端點(diǎn)進(jìn)行的,如圖5所示(紅色為堆疊之開口處,常常被稱為頂端,堆疊的加入與刪除資料操作均發(fā)生在此處,而其他方形色塊則為資料存放區(qū)) 。 堆疊的資料加入操作必須特別注意加入的元素是否會造成堆疊超出其最大容量,而將資料從堆疊中刪除時(shí),則必須注意堆疊是否為空。
堆疊資料結(jié)構(gòu)及其取放資料
圖5 堆疊資料結(jié)構(gòu)及其取放資料 鏈結(jié)串列產(chǎn)業(yè)機(jī)器人在使用過程中,常常會因?yàn)樯a(chǎn)制造上的制程不同,而必須多次修改教導(dǎo)或編程的內(nèi)容以符合所需,雖然制程有所不同,但還不至于是全然不同而要將整個(gè)調(diào)校機(jī)器人的過程重頭來過一次,倘若如此,每次都要重頭調(diào)整產(chǎn)業(yè)機(jī)器人,那將是一件浩大的工程,既費(fèi)時(shí)又費(fèi)工,恐怕會有許多企業(yè)家不敢使用機(jī)器人大軍從事生產(chǎn)了,而這種可以隨時(shí)隨地修改產(chǎn)業(yè)機(jī)器人動作或流程的操作方式,不就是前面不斷提到的增加資料、插入資料與刪除資料嗎? 但從上述的內(nèi)容看來,以陣列、佇列、環(huán)狀佇列或堆疊存放資料時(shí),若要將資料在一個(gè)非頭部、非尾部的特定位置做插入操作或刪除操作,就會倍感困難了,因此,我們利用鏈結(jié)串列來解決需要做特殊位置的插入與刪除操作。 此外,利用陣列的方式存放資料時(shí),我們一般會配置比實(shí)際所需要的空間更多的記憶體,因此會造成記憶空間的浪費(fèi),而鏈結(jié)串列就不會,因?yàn)殒溄Y(jié)串列會視實(shí)際的需求才配置合適的記憶空間。 鏈結(jié)串列的任意位置之資料加入操作與刪除操作,因資料結(jié)構(gòu)上的關(guān)系,比陣列、佇列及堆疊等結(jié)構(gòu)都來的容易許多,因?yàn)殒溄Y(jié)串列僅需利用節(jié)點(diǎn)與指標(biāo)加以處理就可以了。 但無可否認(rèn),在資料搜尋上,使用陣列結(jié)構(gòu)之速度確實(shí)比鏈結(jié)串列來得快,因?yàn)槲覀儚年嚵械乃饕蚴亲?biāo)就可以得到想要的資料;然而鏈結(jié)串列需要花較多的時(shí)間去比較,才可以找到正確的資料。 在鏈結(jié)串列中一筆資料的基本資料型態(tài)通常會包含資料欄以及鏈結(jié)點(diǎn)欄,其概念如圖6所示,而資料欄顧名思義當(dāng)然是存放資料的地方,鏈結(jié)點(diǎn)欄是串列用來連結(jié)與下一筆資料之關(guān)系,如圖7之所示(黃色欄位即資料欄,而紅色欄中之黑點(diǎn)代表鏈結(jié)點(diǎn),最后的卷曲線則是代表鏈結(jié)串列之尾端)。
鏈結(jié)串列之資料欄位與鏈結(jié)欄位
圖6 鏈結(jié)串列之資料欄位與鏈結(jié)欄位
具有四個(gè)節(jié)點(diǎn)(或者說四筆資料)的鏈結(jié)串列
圖7 具有四個(gè)節(jié)點(diǎn)(或者說四筆資料)的鏈結(jié)串列 由于鏈結(jié)串列的結(jié)構(gòu)可以讓資料的操作非常的多樣化,也帶來許多便利性,所以在機(jī)器人應(yīng)用領(lǐng)域中經(jīng)常被大量使用,除了上面已經(jīng)提到的加入資料與刪除資料操作之外,兩個(gè)鏈結(jié)串列之相連接也是非常值得一提的,若是可以達(dá)成串列連接的操作,那么教導(dǎo)機(jī)器人的工作就可以分段進(jìn)行,可由不同人教導(dǎo)不同部分的動作,然后再做動作連結(jié),也可以將不同時(shí)間片段教導(dǎo)的動作整合起來,使得人們的行事效率可以提升,也不用一次就要把冗長的教導(dǎo)工作一次完成,甚至還可以將各種不同的動作集合做成模組,然后再視任務(wù)需求選取適當(dāng)?shù)膭幼髂=M組合,由此可知串列的結(jié)合功能不僅提升了人們工作時(shí)間的靈活度,也可讓機(jī)器人動作得以模組化,大幅縮減了調(diào)校機(jī)器人的時(shí)間。 結(jié)論如果用技術(shù)的角度來看機(jī)器人的記憶是怎么一回事,事實(shí)上,記憶能力與資料庫處理的原理技術(shù)幾乎完全相同。 機(jī)器人的運(yùn)動控制系統(tǒng)及控制器,經(jīng)常需要處理許多的資料,而要讓這些資料可以處理的有效率且正確,多是要靠著優(yōu)良的資料結(jié)構(gòu)規(guī)劃才可以做到,因此選對資料結(jié)構(gòu)來處理機(jī)器人的資料是非常重要的一件事,當(dāng)然資料結(jié)構(gòu)的型態(tài)不只有這些爾爾,本文所提及的方法多是一般常見的,有些時(shí)候還得變化一下才能符合實(shí)際使用的狀況,例如以串列搭配堆疊,這樣才可以實(shí)現(xiàn)正排序方向?qū)⒋匈Y料輸出,而也可以將串列資料以逆排序方向輸出;也有些時(shí)候?yàn)榱艘営洃涹w的使用,也會以雙邊都有節(jié)點(diǎn)的雙向鏈結(jié)串列來取代串列搭配堆疊的狀況。 更重要的是,機(jī)器人便是用資料結(jié)構(gòu)來模仿人腦的記憶,而人腦在記憶時(shí),常常都需要將要記憶的資料特性做分析,然后有效的歸類,這樣人們才可以有邏輯地思考及找尋腦內(nèi)記憶的資訊;當(dāng)然若是想要有聰明的機(jī)器人,規(guī)劃資料結(jié)構(gòu)時(shí),就得針對資料的特性做更詳細(xì)的分析及歸類。
提交
2025中歐綠色建筑工業(yè)化論壇9月北京啟幕 全球智慧共推建筑產(chǎn)業(yè)“雙碳”轉(zhuǎn)型
喜訊!華強(qiáng)電子網(wǎng)榮獲“2025年中國產(chǎn)業(yè)互聯(lián)網(wǎng)創(chuàng)新企業(yè)”
深入實(shí)施“人工智能+”行動 浪潮軟件集團(tuán)看好人工智能+工業(yè)質(zhì)檢廣闊前景,持續(xù)布局線纜行業(yè)智能質(zhì)檢
海爾新增2家卓越級智能工廠,總數(shù)品類行業(yè)雙第一
深度剖析格力打破磁懸浮壓縮機(jī)國外壟斷,底氣來自對自主創(chuàng)新的堅(jiān)守!

投訴建議