基于CAN總線的仿人機器人力信息檢測系統(tǒng)
在國家863計劃支持下,國防科技大學(xué)機器人實驗室于2003年研制出一臺新型仿人機器人;同時與合肥智能機械研究所合作,在該機器人腳掌上安裝了可檢測地面反力信息的集成五維力/力矩傳感器。本文通過對仿人機器人運動控制系統(tǒng)結(jié)構(gòu)和傳感器電路結(jié)構(gòu)的分析,提出了一種基于CAN總線的力信息檢測系統(tǒng);通過實驗表明,該力信息檢測系統(tǒng)能夠滿足力信息采集的基本要求,為其他外部環(huán)境信息的采集建立了一定基礎(chǔ)。
仿人機器人控制結(jié)構(gòu)分析與外部傳感信息采集結(jié)構(gòu)
將仿人機器人控制系統(tǒng)的大開環(huán)變成大閉環(huán)對控制系統(tǒng)的上位計算機處理能力、上下位機與傳感器信息之間的傳輸通道結(jié)構(gòu)以及傳感器信息采集與處理提出了挑戰(zhàn)。它要求上位計算機具備實時多任務(wù)處理能力,控制系統(tǒng)具有便于擴展的多傳感器信息采集與處理通道。增加外部信息傳感器是控制結(jié)構(gòu)改進的最基本條件。
增加外部信息傳感器,首先要在現(xiàn)有控制系統(tǒng)硬件結(jié)構(gòu)的基礎(chǔ)上,擴展外部信息采集與處理模塊,形成開放的分層信息采集與處理結(jié)構(gòu)。結(jié)構(gòu)的底層節(jié)點由多個傳感器信息采集和預(yù)處理模塊(包括解耦和濾波等)構(gòu)成,得到的處理信息通過合適的物理通道傳送到?jīng)Q策層計算機,形成一個從環(huán)境信息到機器人動作序列產(chǎn)生的過程。
選擇實時性強且易于擴展的物理通道,可以增強控制系統(tǒng)的外部傳感擴展能力。在仿人機器人運動控制系統(tǒng)中,上下位機之間通過PC/104總線和RS232串行總線交換信息。當(dāng)系統(tǒng)需要擴展外部傳感器時,由于PC/104總線的有限驅(qū)動能力,通過PC/104總線只能擴展相當(dāng)有限的外部信息傳感器且擴展不便(涉及到地址的重新分配等問題);RS232串行總線不能滿足高速實時信息傳輸與處理要求,因此考慮采用現(xiàn)場總線方式,如CAN總線,作為外部信息傳輸通道,同時設(shè)計其與上位機的通信接口。理想信息采集結(jié)構(gòu)如圖1所示。
圖1 理想的信息采集網(wǎng)絡(luò)
圖1所示的信息采集結(jié)構(gòu),具有較強的易擴展性和較高容錯性能。每一個外部信息傳感器都可以獨立設(shè)計;在整個信息采集結(jié)構(gòu)中,每個模塊都是對等的,之間可以點對點通信;上位機可對各個傳感器信息處理模塊的廣播,信息處理模塊的增減不會對整個信息傳輸通道產(chǎn)生影響,有利于傳感器及其處理模塊的擴展和維護。另外,從底層通信協(xié)議角度而言,這種采集結(jié)構(gòu)亦具有較高容錯性能。
力/力矩傳感器的電路結(jié)構(gòu)及工作原理
五維力/力矩傳感器的電路結(jié)構(gòu)如圖2所示。傳感器基本采集處理原理:當(dāng)傳感器受到外力或外力矩作用時,彈性體產(chǎn)生形變,導(dǎo)致全橋橋路中的應(yīng)變片阻值發(fā)生改變,改變橋路輸出電壓;橋路輸出電壓通過前置濾波與放大進入SoC,通過A/D變換得到的數(shù)字信號通過CAN總線或
RS232傳輸?shù)缴衔粰C。
力/力矩傳感器與控制系統(tǒng)的電路接口設(shè)計方法
接口電路的基本功能
仿人機器人底層控制器與上位機接口采用PC/104總線方式,力/力矩傳感器信息傳輸采用CAN總線結(jié)構(gòu),因此需設(shè)計CAN總線與PC/104總線之間的接口,實現(xiàn)已有控制系統(tǒng)與傳感器之間的通信及對力/力矩信息的預(yù)處理,如圖3所示。
圖2 傳感器電路原理
圖3 接口電路基本功能和結(jié)構(gòu)
接口電路的硬件結(jié)構(gòu)與基本設(shè)計原理
綜合考慮接口電路對主處理器的要求,如對力/力矩信息的實時處理能力、外設(shè)擴展能力等,選用TMS320LF2407作為主處理器,通過對CAN總線和雙端口RAM的讀寫控制,實現(xiàn)力信息的讀取、預(yù)處理和上傳。接口電路基本原理如圖4所示。
選用TMS320LF2407作為主處理器。它采用實時信號處理體系結(jié)構(gòu),可達(dá)到30×106條指令/s的執(zhí)行速度,供電電壓為3.3V,功耗低,片內(nèi)外設(shè)中集成有控制器局域網(wǎng)絡(luò)(CAN)2.0B模塊和SCI模塊。
傳輸數(shù)據(jù)主要包括兩個力/力矩傳感器的五維力信息和經(jīng)過預(yù)處理得到的數(shù)據(jù),因此雙端口RAM選用IDT7132(2K×8bit)。一個端口接PC/104總線的數(shù)據(jù)線、低位地址線、高位地址譯碼產(chǎn)生的選通信號以及讀寫信號,譯碼通過MAX7032,根據(jù)上位機的空閑地址分配RAM地址;另一個端口接經(jīng)過電平轉(zhuǎn)換的DSP數(shù)據(jù)線低位地址線、高位地址譯碼產(chǎn)生的選通信號以及讀寫信號,通過SN74LV08A譯碼,分配的地址為F800~FFFF,通過SN74LV245A完成總線驅(qū)動和電平轉(zhuǎn)換。
圖4 接口電路原理圖
圖5 力信息采集與預(yù)處理基本流程
選取PCA82C250T作為驅(qū)動CAN控制器和物理總線間的接口,提供對總線的差動發(fā)送和接收功能。同時利用DSP的SCI模塊擴展了一路RS232串口,選用3.3V供電的RS232驅(qū)動器MAX3320作為串口驅(qū)動器,與PC機進行通信。
接口電路的軟件流程
接口電路驅(qū)動程序中,首先對DSP進行初始化設(shè)置,包括定時器初始化和CAN模塊初始化以及在IDT7132中設(shè)置平滑數(shù)據(jù)隊列等;然后向發(fā)送郵箱中寫入0或1,即對傳感器清零或者請求發(fā)送數(shù)據(jù);接收到數(shù)據(jù)之后,將數(shù)據(jù)從接收郵箱中讀入平滑數(shù)據(jù)隊列中,進行平滑數(shù)據(jù)處理,供上位機查詢和讀取。
在DSP的初始化設(shè)置中,首先通過設(shè)置MCR寄存器來配置CAN引腳;初始化位定時器主要是設(shè)置寄存器BCR1和BCR2,決定CAN控制器的通信波特率、同步跳轉(zhuǎn)寬度、采樣次數(shù)和重同步方式。對郵箱的初始化主要是設(shè)置郵箱的標(biāo)識符;對發(fā)送的數(shù)據(jù)區(qū)賦初值,需要清零傳感器返回值時,數(shù)據(jù)區(qū)賦值0,需要讀取數(shù)據(jù)時,數(shù)據(jù)區(qū)賦值1。發(fā)送信息首先要使能發(fā)送郵箱,然后設(shè)置發(fā)送請求位,等待發(fā)送中斷標(biāo)志位置位,若為1,則發(fā)送成功,最后清除發(fā)送中斷標(biāo)志位和發(fā)送應(yīng)答位。接受信息時,要對接收郵箱進行初始化,設(shè)置標(biāo)識符以及與標(biāo)識符相關(guān)的局部屏蔽寄存器(LAM);然后等待接收中斷標(biāo)志位MIFn置位,若MIFn=1則接收成功,最后清除接收中斷標(biāo)志位和接收信息懸掛位。接收數(shù)據(jù)后,根據(jù)傳感器解耦矩陣完成數(shù)據(jù)解耦及平滑濾波。
根據(jù)文中提出的設(shè)計方法,已設(shè)計相應(yīng)的電路,實現(xiàn)了對力信息的實時采集和傳送。所設(shè)計的系統(tǒng)能夠完成力信息采集和平滑預(yù)處理工作,但還沒有加入對力信息的數(shù)字濾波設(shè)計。通過對所采集的力信息數(shù)據(jù)的特性分析,下一步將在軟件流程中增加數(shù)字濾波部分,使獲取的力信息能夠更加真實地反映機器人所受到的地面反力信息,使力信息能夠應(yīng)用于仿人機器人的大回路控制。