李建勇,趙 靜,劉雪梅,李雪霞
(西北工業(yè)大學(xué)明德學(xué)院,陜西 西安710124)
隨著經(jīng)濟(jì)發(fā)展和社會變革,越來越多的年輕人背井離鄉(xiāng)去較遠(yuǎn)的地方工作,留下了留守兒童、空巢老人以及那些行動不便之人等[1-3]。 這些人往往得不到充分的陪伴而感到孤獨(dú),長此以往將會對他們身體和心里造成很大影響,甚至出現(xiàn)個別自暴自棄以及自殺等情況[4-6]。雖然目前市場上已經(jīng)出現(xiàn)了形式多樣的陪伴機(jī)器人[7],但是大部分都是兒童陪伴機(jī)器人,如科大訊飛的阿爾法蛋機(jī)器人、優(yōu)必選的悟空機(jī)器人、物靈的盧卡機(jī)器人等,而且只有少部分功能比較強(qiáng),如本田Asimo 和軟銀Pepper 等仿人機(jī)器人。 這些機(jī)器人要么偏重于兒童早教方面,要么缺乏對老人的陪伴,要么價格比較昂貴等。針對這些問題,本文設(shè)計了一種自主家庭陪伴機(jī)器人。
由于家庭陪伴中最需要的就是溝通和交流,而溝通和交流的主要方式是語言溝通和肢體語言,因而本文所設(shè)計的家庭陪伴機(jī)器人采用仿人型結(jié)構(gòu),通過機(jī)器語言進(jìn)行人機(jī)自然語音交流以實(shí)現(xiàn)語言溝通,如語音聊天、語言互動、講故事和唱歌等;通過眼部表情和一雙仿人上肢進(jìn)行肢體交流,如再見、打招呼和抓取東西等;通過UI 并利用機(jī)器視覺和網(wǎng)絡(luò)等功能實(shí)現(xiàn)其他的人機(jī)互動功能。
為實(shí)現(xiàn)以上功能,家庭陪伴機(jī)器人基于ROS 架構(gòu)[8-11]進(jìn)行設(shè)計,其架構(gòu)如圖1 所示。 首先進(jìn)行機(jī)器人本體設(shè)計并在其上安裝實(shí)現(xiàn)上述功能的各種傳感器、控制器和語音交互模塊等設(shè)備,然后搭載嵌入式計算機(jī)系統(tǒng)并以其為核心構(gòu)建自主家庭陪伴機(jī)器人硬件系統(tǒng),最后在OS系統(tǒng)上按照ROS 架構(gòu)分層設(shè)計軟件以實(shí)現(xiàn)上述功能。
圖1 家庭陪伴機(jī)器人架構(gòu)
圖2 家庭陪伴機(jī)器人實(shí)物
家庭陪伴機(jī)器人本體由頭部、上肢、軀體、下肢和移動底盤等組成,其身高140 cm,自重30 kg,其實(shí)物如圖2所示。 機(jī)器人的頭部、軀體和下肢采用一體成型塑料外殼設(shè)計,其尺寸為:240 mm×460 mm×1 200 mm。 其頭部安裝了眼睛表情屏、攝像頭和語音交互模塊等設(shè)備,軀體上安裝嵌入式計算機(jī)系統(tǒng)、觸摸屏和體感攝像頭等設(shè)備,下肢內(nèi)部走線以使移動底盤和計算機(jī)系統(tǒng)相連接。機(jī)器人上肢參照人體上肢自由度分配和機(jī)器人軀體尺寸進(jìn)行設(shè)計,包括仿人手臂和仿人機(jī)械手兩部分,其長度為450 mm。 左右仿人手臂各有5 個自由度(其中肩部3 個、肘部1 個和腕部1 個)的旋轉(zhuǎn)關(guān)節(jié)并分別由5 個直流伺服電機(jī)進(jìn)行驅(qū)動,左右仿人機(jī)械手各采用1 個直流伺服電機(jī)進(jìn)行驅(qū)動以實(shí)現(xiàn)握拳到伸掌以及相反過程的動作。 移動底盤為鋁合金材質(zhì),采用兩輪差分驅(qū)動的輪式結(jié)構(gòu),按照驅(qū)動輪在中間并在底板前后各安裝1 個萬向輪的布置方式使機(jī)器人重心處于中心位置,其尺寸為φ400×200 mm(H),離地間隙35 mm,自重20 kg,最大有效載荷30 kg。
家庭陪伴機(jī)器人硬件系統(tǒng)由嵌入式計算機(jī)系統(tǒng)、語音交互模塊、人機(jī)交互模塊、上肢控制模塊、移動控制模塊和電源等組成,其框圖如圖3 所示。
圖3 家庭陪伴機(jī)器人硬件系統(tǒng)框圖
由于所設(shè)計家庭陪伴機(jī)器人為自主機(jī)器, 需要計算機(jī)具有強(qiáng)大的運(yùn)算和處理能力,因而嵌入式計算機(jī)系統(tǒng)采用NVIDIA 的嵌入式平臺開發(fā)者套件Jetson TX1。 Jetson TX1 是全球首款模塊化超級計算機(jī),以革命性的NVIDIA Maxwell GPU 架構(gòu)為基礎(chǔ)構(gòu)建,提供每秒超過一萬億次浮點(diǎn)運(yùn)算的性能,具有先進(jìn)的3D 圖形、視頻和圖像處理以及機(jī)器視覺等能力,適用于一切自主機(jī)器的AI 平臺[12],完全滿足家庭陪伴機(jī)器人的需要。雖然Jetson TX1 接口比較豐富,但只有1 個USB 3.0 和1 個USB 2.0 接口, 因此采用USB HUB 對USB 3.0 接口進(jìn)行擴(kuò)展以滿足搭建硬件系統(tǒng)的需要。 另外由于Jetson TX1 只集成了16 GB eMMC,故采用三星120 GB 的SSD硬盤進(jìn)行擴(kuò)展。
語音交互模塊用來實(shí)現(xiàn)自然語言溝通,但由于Jetson TX1 沒有提供音頻輸入和輸出接口,因而采用迷你小音箱和360°全指向高靈敏拾音器以及外置聲卡組成語音交互模塊,并通過USB 接口與Jetson TX1 進(jìn)行語音輸入和輸出。
人機(jī)交互模塊主要用來實(shí)現(xiàn)面部識別、體感交互和人機(jī)互動等功能。 在機(jī)器人頭部安裝1 個500 萬像素的高清攝像頭,不僅可用來實(shí)現(xiàn)面部識別,還可以當(dāng)網(wǎng)絡(luò)攝像頭使用。 體感交互主要靠在機(jī)器人胸前安裝的Intel RealSense ZR300 來實(shí)現(xiàn),其內(nèi)置3D 實(shí)感相機(jī)、魚眼鏡頭和6IMU 等設(shè)備[13],可以使機(jī)器人進(jìn)行SLAM 來創(chuàng)建室內(nèi)3D 地圖、跟蹤家人和捕獲家中物體,以及識別家人身體手勢來進(jìn)行肢體交流。人機(jī)互動除了語音交互和體感交互之外,還由安裝在頭部的5 英寸液晶屏和胸前的10.1 英寸觸摸屏來實(shí)現(xiàn)。 5 英寸液晶屏用來顯示機(jī)器人的眼睛表情,為其設(shè)計了15 種眼睛表情,如笑、哭、生氣和睡覺等,并由主機(jī)通過串口控制液晶屏來進(jìn)行眼睛表情的變換;10.1 英寸觸摸屏采用2K 畫質(zhì)帶電容觸摸的HDR 屏以滿足Jetson TX1 對顯示器的要求,通過它能為用戶提供非常美觀的UI 操作界面。
為了減少上肢各個關(guān)節(jié)與控制器之間的連線,各個關(guān)節(jié)都是采用ZX20D 串行總線舵機(jī)進(jìn)行設(shè)計。 左右上肢各有6 個舵機(jī),按順序串接在一起,并連接串行舵機(jī)控制器,然后經(jīng)USB 接口與Jetson TX1 通信。 每個舵機(jī)都有固定地址,能提供最大20 kg·cm 扭矩,并支持角度回讀,通過串口指令能被Jetson TX1 精確控制來實(shí)現(xiàn)仿人的多種動作以進(jìn)行肢體交流。
移動控制模塊主要由Arduino MEGA2560、12 V 大功率直流電機(jī)、直流電機(jī)驅(qū)動器、編碼器等構(gòu)成閉環(huán)系統(tǒng)[14],采用500 線編碼器測機(jī)器人左右輪的移動速度,通過Arduino 進(jìn)行PID 控制,使機(jī)器人不僅能精準(zhǔn)移動還能向主控制器輸出機(jī)器人左右輪移動的速度、角度和里程等信息以定位機(jī)器人,并能使用6 個成環(huán)形分布的超聲波傳感器進(jìn)行避障。 同時在底盤上安裝了RPLIDAR-A2激光雷達(dá),結(jié)合ZR300 進(jìn)行SLAM 和自主導(dǎo)航以及配合上肢實(shí)現(xiàn)肢體交流的動作。
整個家庭陪伴機(jī)器人采用裝在移動底盤內(nèi)的12 V 10 000 mAh 大電流鋰電池供電,經(jīng)12 V 轉(zhuǎn)19 V 大電流DC/DC 升壓模塊為Jetson TX1 供電,經(jīng)12 V 轉(zhuǎn)6 V 大電流DC/DC 降壓模塊為上肢控制器供電,經(jīng)12 V 轉(zhuǎn)5 V大電流DC/DC 降壓模塊為音箱、USB HUB、Arduino MEGA2560 等供電,同時分別經(jīng)12 V 穩(wěn)壓模塊為觸摸屏和電機(jī)驅(qū)動供電。
由于ROS 需要依托OS 系統(tǒng),首先在Jetson TX1 刷機(jī)安裝Ubuntu16.04 OS 系統(tǒng)和CUDA 8.0,然后再安裝Kinetic 版本的ROS,接著按照家庭陪伴機(jī)器人的架構(gòu),利用ROS 提供的一些共享資源結(jié)合硬件系統(tǒng)來進(jìn)行軟件分層設(shè)計。 ROS 是一個分布式框架,為用戶提供多節(jié)點(diǎn)(進(jìn)程)之間的通信服務(wù),所有軟件功能和工具都建立在這種分布式通信機(jī)制上[8-11]。 Jetson TX1 和外圍設(shè)備之間都是采用USB 進(jìn)行連接,在OS 上安裝對應(yīng)的驅(qū)動程序和ROS 需要的庫、功能包和相關(guān)依賴包之后,其所使用的通信機(jī)制、數(shù)據(jù)封裝和解析等都已確定,故中間層(通信層和接口層)幾乎不用改動,系統(tǒng)軟件設(shè)計的重點(diǎn)在于應(yīng)用層(規(guī)劃層和交互層)的設(shè)計。 交互層是實(shí)現(xiàn)人機(jī)交互的接口,規(guī)劃層則是家庭陪伴機(jī)器人實(shí)現(xiàn)各種功能的核心,這些都是通過ROS 提供的功能包按照家庭陪伴機(jī)器人的硬件參數(shù)進(jìn)行修改并以此開發(fā)來實(shí)現(xiàn)的。 交互應(yīng)用在實(shí)現(xiàn)時可能需要幾個獨(dú)立的功能包,也可能交叉使用一些相同功能包,而功能包的模塊都是以節(jié)點(diǎn)為單位運(yùn)行,并通過不同節(jié)點(diǎn)端對端的通信連接關(guān)系來實(shí)現(xiàn)功能。
語音交互是家庭陪伴機(jī)器人的必要技能,主要由語音識別、語義理解和語音合成等規(guī)劃層的節(jié)點(diǎn)來實(shí)現(xiàn),以使機(jī)器人能用中文語言和人進(jìn)行自然語言交流,其流程如圖4 所示。 在開機(jī)之后該功能就處于等待狀態(tài),當(dāng)通過麥克風(fēng)輸入語音關(guān)鍵詞喚醒機(jī)器人之后,首先使用在線的科大訊飛中文識別對語音進(jìn)行識別并轉(zhuǎn)成字符串文本輸出,然后調(diào)用圖靈機(jī)器人API進(jìn)行基于人工智能的在線語義分析后以文本方式回復(fù),最后根據(jù)文本內(nèi)容調(diào)用科大訊飛的語音合成將文本轉(zhuǎn)換為語音并經(jīng)音箱輸出,同時使機(jī)器人眼睛同步變換表情或發(fā)送使機(jī)器人進(jìn)行相應(yīng)動作的命令。 用戶通過圖靈機(jī)器人API 提供的智能工具、休閑娛樂和生活服務(wù)等技能滿足語音聊天、兒童娛樂和老人生活等方面的需求。
圖4 語音交互流程
肢體交互主要靠仿人上肢做出類人的肢體動作來實(shí)現(xiàn),并能結(jié)合語音和眼部表情以和人進(jìn)行交互,采用ROS 提供的MoveIt! 功能包進(jìn)行設(shè)計,其結(jié)構(gòu)框圖如圖5所示。首先根據(jù)機(jī)器人模型和視覺傳感器獲取的環(huán)境信息以及機(jī)器人的初始狀態(tài)等進(jìn)行規(guī)劃場景,然后通過運(yùn)動學(xué)求解和坐標(biāo)變換得到左右仿人上肢姿態(tài)和每個關(guān)節(jié)舵機(jī)轉(zhuǎn)動角度之間的關(guān)系,最后經(jīng)運(yùn)動規(guī)劃通過仿人上肢舵機(jī)控制器控制每個關(guān)節(jié)的舵機(jī)轉(zhuǎn)到相應(yīng)的角度來實(shí)現(xiàn)肢體動作。 在動作過程中,通過舵機(jī)反饋的轉(zhuǎn)動角度以及3D 實(shí)感相機(jī)檢測周圍環(huán)境的變化以避免碰撞。
圖5 肢體交互結(jié)構(gòu)框圖
自主移動使機(jī)器人不僅能夠在家里移動過程中避開各種障礙物,還能自動移動到主人面前并能跟隨主人。 移動控制模塊中控制器使用ros_arduino_bridge作為一個ROS 節(jié)點(diǎn),首先要把自主移動節(jié)點(diǎn)發(fā)送的移動方向、線速度和角速度等參數(shù)消息進(jìn)行解析,得到機(jī)器人左右輪需要移動的線速度、角速度和位移等參數(shù);然后與編碼器和IMU 所測得機(jī)器人左右輪實(shí)際移動線速度、角速度和位移等姿態(tài)參數(shù)進(jìn)行計算,得到機(jī)器人移動的速度和方向等誤差,通過PID 算法對左右輪電機(jī)轉(zhuǎn)速進(jìn)行精確控制,使機(jī)器人按路徑規(guī)劃的軌跡進(jìn)行移動以及通過超聲波傳感器避障,并把機(jī)器人的線速度、角速度和位移等姿態(tài)參數(shù)向里程節(jié)點(diǎn)發(fā)布消息; 最后經(jīng)自主導(dǎo)航節(jié)點(diǎn)調(diào)用的rgbdslam和move_base 等功能包進(jìn)行室內(nèi)三維地圖創(chuàng)建和自主導(dǎo)航。
家庭陪伴機(jī)器人除了與人進(jìn)行語音交互和肢體交互之外,還可以通過為觸摸屏開發(fā)的UI 與人實(shí)現(xiàn)互動,如兒童學(xué)習(xí)、兒童娛樂、老人娛樂和經(jīng)人臉識別的身份驗證等其他功能,其主界面如圖6 所示。 界面采用卡片式布局和子母界面設(shè)計,把這些功能的交互層接口節(jié)點(diǎn)封裝成圖標(biāo)形式進(jìn)行操作,不僅美觀而且操作簡單,便于兒童和老人使用。
圖6 UI 主界面
在家庭陪伴機(jī)器人實(shí)物搭建完畢之后,主要對機(jī)器人進(jìn)行校準(zhǔn)以及對語音交互和肢體交互等人機(jī)交互功能進(jìn)行測試,其他功能已在軟件系統(tǒng)開發(fā)過程中進(jìn)行了測試。
機(jī)器人校準(zhǔn)主要包括對移動底盤校準(zhǔn)和對仿人上肢運(yùn)動校準(zhǔn)以及對視覺傳感器標(biāo)定等,以保證機(jī)器人運(yùn)動的準(zhǔn)確度和精度。 對移動底盤進(jìn)行多次測量校準(zhǔn),使其直線移動線速度誤差在2 mm/s 之內(nèi),最大直線移動速度為1.2 m/s,原地旋轉(zhuǎn)一圈角度誤差低于2°且轉(zhuǎn)動朝向角偏離不超過2°。 仿人上肢運(yùn)動校準(zhǔn)主要是確定左右仿人上肢各關(guān)節(jié)轉(zhuǎn)動范圍,為肢體交互中的運(yùn)功規(guī)劃提供約束條件以避免碰撞,以圖1 中各關(guān)節(jié)位姿為初始位姿(即0°),各關(guān)節(jié)的動作及對應(yīng)轉(zhuǎn)動角度范圍如表1所示。 視覺傳感器標(biāo)定采用ROS 官方提供的camera_calibration 功能包通過打印的棋盤格標(biāo)定靶分別對頭部攝像頭和胸部ZR300 實(shí)感相機(jī)進(jìn)行了標(biāo)定并消除了圖像畸變現(xiàn)象。
表1 仿人上肢各關(guān)節(jié)動作及轉(zhuǎn)動范圍
人機(jī)交互功能測試按照家庭陪伴機(jī)器人的主要功能分別對語音喚醒、語音聊天、肢體交流、語音控制機(jī)器人移動和UI 互動等進(jìn)行10 次測試,測試結(jié)果如表2 所示。在使用語音對機(jī)器人進(jìn)行喚醒、控制機(jī)器人移動、為兒童講故事和為老人播天氣預(yù)報等較短語音交互時,機(jī)器人都能正確識別和語義理解,然而在與機(jī)器人進(jìn)行自然語言的語音聊天過程中,對較長的對話只有1 次理解錯誤,其他9 次都能給出比較滿意的回答,偶有因普通話不標(biāo)準(zhǔn)造成語音識別通不過需要重復(fù)才通過的情況,就語音交互整體而言成功率基本在90%左右,滿足實(shí)際需要。
表2 人機(jī)交互測試結(jié)果
在進(jìn)行語音交互過程中,都能順利觸發(fā)眼睛表情和仿人上肢進(jìn)行肢體交互,測試過程如圖7 所示。 圖7(a)為機(jī)器人打招呼,在人和機(jī)器人語音打招呼過程中,其右上臂向上抬起,右肘彎曲使小臂抬起,右手呈半握狀,通過小臂前后晃動實(shí)現(xiàn)打招呼,同時眼睛變換成微笑表情以及在觸摸屏?xí)@出語音圖標(biāo)和相應(yīng)的一些文字;圖7(b)和圖7(c)為和人說再見的肢體互動,與打招呼的區(qū)別在于右手指完全伸直和左右晃動小臂以及顯示文字不同;圖7(d)為機(jī)器人握球互動實(shí)驗,驗證機(jī)器人的抓取能力。 另外其他測試項目都是通過UI進(jìn)行操作,在10 次測試過程中都能順利完成。 通過這些測試,表明家庭陪伴機(jī)器人基本實(shí)現(xiàn)其主要功能,達(dá)到設(shè)計要求。
圖7 肢體交互測試過程
經(jīng)實(shí)物測試,本文基于ROS 框架設(shè)計的一種自主家庭陪伴機(jī)器人不僅實(shí)現(xiàn)了能和人進(jìn)行自然語音交流,還能肢體交流以及通過UI 交互,達(dá)到設(shè)計要求,驗證了該家庭陪伴機(jī)器人設(shè)計方案合理,能滿足日常家庭的陪伴工作。 但目前肢體交流和眼睛表情互動樣式有些少,同時UI 為兒童學(xué)習(xí)娛樂和老人娛樂提供內(nèi)容比較少,下一步將會在此基礎(chǔ)上繼續(xù)開發(fā)更多樣式和提供更多資源, 爭取做到使仿人機(jī)械手的每個手指能單獨(dú)動作,從而使該機(jī)器人具有自己獨(dú)特的性能以勝任更多家庭方面的工作。