機器人技術(shù)是發(fā)展最快的工程領(lǐng)域之一,也是最具有挑戰(zhàn)性的一個領(lǐng)域。幾乎所有的機器人,都有不同的操作環(huán)境,行為或任務(wù)也不同,連接的傳感器和執(zhí)行器也不同。因此,人們經(jīng)常在不同的硬件平臺上使用不同的開發(fā)工具來開發(fā)機器人。一個工程師開發(fā)的成功用于某個機器人的可用控制系統(tǒng)很難再用于另一個機器人,因為應(yīng)用于傳感、自治和電機控制的應(yīng)用程序接口(API)在語法上是不同的。
在設(shè)計、原型開發(fā)和部署機器人應(yīng)用時,面臨三個最大的挑戰(zhàn):集成傳感器和執(zhí)行器,實現(xiàn)自治以及部署確定性的控制算法至嵌入式硬件。為了應(yīng)對這些挑戰(zhàn), LabVIEW RoboTIcs提供了一整套全新的機器人專用傳感器和執(zhí)行器驅(qū)動,以及實現(xiàn)復(fù)雜導(dǎo)航運算的新代碼庫。而且,有了LabVIEW,開發(fā)人員只需要使用一個軟件開發(fā)環(huán)境就可以設(shè)計控制算法,連接實際I/O,以及部署至確定性硬件目標(biāo)。
1. 集成傳感器和執(zhí)行器
如果設(shè)計者可以得到實際的傳感器輸入以及控制實際執(zhí)行器,比如馬達(dá)的能力,那么他們就能加快機器人的原型開發(fā)。LabVIEW RoboTIcs包含新的VI選版來配置、控制和獲取自主車輛中的一些最常用的傳感器的數(shù)據(jù),其接收到的數(shù)據(jù)可以使用。無論是低成本的紅外線傳感器還是高分辨率的光定向和測距(LIDAR)傳感器,LabVIEW RoboTIcs都可以讓使用者快速地檢索傳感器數(shù)據(jù),從而使他們能更加關(guān)注于高級智能和控制的實現(xiàn)。另外,無論是無刷馬達(dá),有刷直流馬達(dá),還是步進馬達(dá),LabVIEW RoboTIcs都提供了多種連接、控制馬達(dá)的方法。
圖1. LabVIEW Robotics包括一整套針對自治系統(tǒng)中最常用的傳感器的新驅(qū)動。
美國弗吉尼亞理工大學(xué)設(shè)計的盲人駕駛車輛是一個典型的依賴于傳感器的反饋和執(zhí)行器的控制的機器人例子。這個半自動車輛有一個基于觸覺的人機界面,可以讓盲人駕駛員做出駕駛決定。傳感器根據(jù)車輛的狀態(tài)來采集重要信息,比如通過霍爾效應(yīng)傳感器采集速度信息,通過弦絲電位計采集轉(zhuǎn)向角。光定向和測距(LIDAR)傳感器掃描駕駛環(huán)境,然后確定障礙或者交通路標(biāo)。學(xué)生們可以快速采集這些傳感器獲得的數(shù)據(jù),然后在LabVIEW中使用NI CompactRIO內(nèi)嵌式平臺的高速現(xiàn)場可編程門陣列(FPGA)進行直接處理。
處理完這些傳感器數(shù)據(jù)后,學(xué)生們使用LabVIEW和CompactRIO來控制大量的晶體管和繼電器,以不同強度開動駕駛員身上穿的馬甲中的馬達(dá)。駕駛員可以使用觸感式馬甲對速度進行調(diào)節(jié),從而自如的駕駛直至到達(dá)速度上限,速度達(dá)到上限時,馬甲會提示駕駛員需要多大的剎車力度來使車輛回到安全速度。學(xué)生們在FPGA上使用LabVIEW實現(xiàn)這種電機控制,從而極大地縮短了從探測到障礙,到馬達(dá)全速振動之間的時間,對于駕駛員來說,這在緊急情況下是至關(guān)重要的。
圖2. 弗吉尼亞理工大學(xué)的盲人駕駛車輛使用LabVIEW和CompactRIO完成與傳感器、執(zhí)行器的通信,算法開發(fā)以及部署。阿迪•哈根,16歲,駕駛盲人汽車,帶著弗吉尼亞理工大學(xué)的設(shè)計師格雷格•加納曼(乘客座)出去兜風(fēng)。
僅僅用了兩個學(xué)期,9名大學(xué)生就完成了設(shè)計,盲人駕駛員可以安全地實現(xiàn)基本的駕駛?cè)蝿?wù)。
“LabVIEW具有直觀的圖形化操作界面,LIDAR等傳感器的驅(qū)動也是現(xiàn)成的,這對由機械工程專業(yè)大學(xué)生組成的團隊來說,可以讓我們快速、有效的搭建定制的嵌入式軟件。”——格雷格•加納曼,弗吉尼亞理工大學(xué)的學(xué)生,團隊隊長。
2. 自治代碼庫實現(xiàn)機器人的自治是一個既有挑戰(zhàn),又非常重要的任務(wù)。對于像導(dǎo)航這樣的任務(wù),算法越來越復(fù)雜,這往往需要軟件開發(fā)人員具有計算機科學(xué)方面的背景知識。另外,如果不能實現(xiàn)代碼的重復(fù)利用,每開始一個新項目,工程師總要從底層對算法進行開發(fā)。