謝 靖
(南陽農(nóng)業(yè)職業(yè)學院,河南 南陽 473000)
在實際生活中,人們需要進行各種各樣的作業(yè),而對于某些作業(yè)來說,由于其工作環(huán)境的復雜性,可能會對人類的生命安全造成威脅,為了確保工作人員的生命安全,便需要利用機器人來代替人類從事這些工作。而相比于履帶式機器人與輪式機器人來說,六足機器人無疑更適用于各種復雜環(huán)境下的危險作業(yè),這也使其廣泛用于勘察、搶險等危險作業(yè)中。目前所使用的六足機器人多路舵機主要是通過分時控制算法或排序算法來達到自動避障目的,但這些算法的精度較低,而且數(shù)量也較為有限,這使六足機器人在某些情況下難以滿足避障要求。因此,需要進一步對六足機器人進行相應的改進。
在六足機器人中共包括6個足,各個足中具備3個關節(jié),而舵機便是分別安裝到足中的各個關節(jié)當中,通過驅(qū)動舵機來帶動關節(jié),進而使六足機器人實現(xiàn)旋轉(zhuǎn)運動。由于在各個足中分別安裝有3個舵機,通過對這些舵機進行旋轉(zhuǎn)控制,能夠使六足機器人中的每個足端部都能到達地面可達范圍中的任何一點。在步態(tài)設計中,六足機器人主要是以三角步態(tài)進行向前行走的,六足機器人在向前行走時,其右前足、左中足與右后足起到支撐地面的作用,可將這三足視為第一組,而右中足、左前足與左后足則抬起呈邁步姿態(tài),視為第二組,通過這兩組足之間的交替往復運動,便實現(xiàn)了六足機器人的向前行走。六足機器人在轉(zhuǎn)彎過程中時,主要包括兩種轉(zhuǎn)彎運動,分別是自轉(zhuǎn)與公轉(zhuǎn),六足機器人在自轉(zhuǎn)時,第一組足主要起到支撐地面的作用,而第二組足則沿著某一方向進行特定角度的旋轉(zhuǎn),在旋轉(zhuǎn)完畢后,該組足落于地面,并起到支撐地面作用,隨后第一組足抬起并重復第二組足的動作,此時旋轉(zhuǎn)方向是一致的,通過這兩組之間的動作交替來實現(xiàn)六足機器人的自轉(zhuǎn)動作。而六足機器人的公轉(zhuǎn)動作與自動動作基本相同,不過其在進行公轉(zhuǎn)動作時,六足機器人的左右兩側(cè)的足在邁步距離上不等。在六足機器人的自動避障動作中,主要是由舵機來對其足部關節(jié)進行驅(qū)動的,舵機的旋轉(zhuǎn)角度最大可以達到180度,舵機的工作額定電壓為3.6~6 V,其能夠為六足機器人提供1.6 kg每公分的力矩,舵機的角度則是由脈沖寬度調(diào)制(Pulse Width Modulation,PWM)信號進行控制的,該信號的周期間隔為20 ms,PWM信號的高電平范圍保持在0.5~2.5 ms,其高電平時間線性分別和舵機中的9-0度至90度相對應,各個舵機的角度控制都分別是由不同I/O中的PWM占空比來決定的,從而使六足機器人能夠得以正常向前行走[1]。
在基于單片機的六足機器人自動避障控制系統(tǒng)中,主要是通過模塊化設計方法來對其電路進行設計的,在電路系統(tǒng)中,其主控芯片為STC12C5A60S2,并通過51單片機的使用來作為其核心最小系統(tǒng)。在六足機器人中共設置有18個舵機,每個舵機中分別安裝有兩節(jié)的18650電池,該電池能夠為舵機提供3.7 V的電壓,并且各節(jié)電池能夠為9路舵機提供電源。在電路系統(tǒng)的51單機片中同時還擴展有18個I/O接口,這些I/O接口的一端均與各個舵機中的信號線進行連接,其中,無線遙控模塊與4個I/O接口進行連接,而紅外線避障傳感器中安裝有2個I/O接口。在基于單片機的六足機器人自動避障電路系統(tǒng)中,其串口通信模塊為PL2303,并與串口TXD/RXD進行連接。
在六足機器人的自動避障控制中,對舵機的控制主要是通過相應的控制算法來實現(xiàn)的,這也使控制算法的設計變得十分關鍵,其直接決定了六足機器人的自動避障能力。在舵機控制中,除了其自身的20 ms周期以外,還需要在信號線中注入一個0.5~2.5 ms時延的高電平,高電平的電壓為5 V,其他時間則是PWM信號中的低電平,對高電平時延進行控制與調(diào)節(jié),能夠使舵機的轉(zhuǎn)動角度得到相應控制。由于在該自動避障控制系統(tǒng)中采用了51單片機來作為最小系統(tǒng),而在該系統(tǒng)的外部則設置有相應的晶振體,而該晶振體是11.059 2 M,再加上機器自身的周期是1.085 07 μs,進而可知基于單片機的六足機器人自動避障控制系統(tǒng)對舵機轉(zhuǎn)動的控制精度最高能達到0.1度。一般來說,在控制系統(tǒng)中通過相應定時器的使用來對多路舵機信號進行生成的方法共有兩個,第一個方法是對舵機中的高電平時間進行排序,當六足機器人足中的某一舵機周期剛剛開始時,對全部舵機中的PWM信號電平進行提高,并對定時器中舵機的最少高電平時延時間進行設置。此時,單片機會在定時器中斷以后,會將高電平時延時間中的最長時間與第二長時間的差值設置給定時器,通過這種賦值方式,直至最后一組時間也同樣被賦值以后,則舵機信號中的最大電平時延會被拉低,此時再對定時器進行賦值,該賦值對應最長時間和20 ms之間的時間差。第二個方法是將舵機周期20 ms進行8個時間段的劃分,每個時間段均為2.5 ms,而在這8個時間段中便包含有舵機的高電平信號,此時再根據(jù)這8個時間段中高電平時間與2.5 ms之間的差對定時器進行依次賦值即可。
從理論上進行分析可以了解到,第一個方法能夠?qū)θ我舛嗦愤M行控制,不過通過對該方法進行實踐可以了解到,隨著舵機數(shù)量的不斷增加,排序后在同一足中相鄰位置的舵機在高電平時間差上也會相應減少,進而導致定時器的中斷時間減少,此時定時誤差也就隨之增大。因此,在采用這種方法時,必須要在確保精度的前提下來對PWM舵機信號進行生成。而第二個方法中,由于是將20 ms劃分成了8個時間段,這也使其只能對有限數(shù)量的舵機進行控制,不過該方法在控制精度上能夠得到保證。因此,要想在滿足舵機控制精度的前提下來對18個舵機進行同時控制,應將上述兩種方法進行結合應用,也就是所謂的3×6法。通過第二種方法進行6個時間段的劃分,每個時間段均為2.5 ms,然后在各個時間段中設置3段高電平,以此達到18個舵機的同時控制,而且也能使舵機中的PWM信號滿足相應的精度要求。
在基于單片機的六足機器人自動避障控制系統(tǒng)中,主要是通過模塊化設計方式來對其自動避障功能進行控制的,在該控制系統(tǒng)中共包括4個模塊,分別是避障模塊、無線遙控模塊、串口通信模塊以及數(shù)據(jù)接收模塊。在避障模塊中,主要使用了兩個E18-D50NK光電式傳感器,該傳感器分別安裝在六足機器人的左右前方,在各個傳感器中分別設置有VCC,OUT,GND 3個引腳,VCC引腳與4.5~5 V的電壓相連接,OUT引腳是輸出信號,其在正常狀態(tài)時為5 V的高電平,當六足機器人在遇到障礙時,則該引腳會生成低電平。避障模塊是利用51單片來對所有I/O口的狀態(tài)進行判定的,進而準確分析六足機器人的前方是否存在障礙物,然后根據(jù)分析結果來合理地選擇避開方式。在無線遙控模塊的設計中,該模塊主要為MX-J05V點動方式,無線遙控模塊由相應的遙控器進行控制,在遙控器中設置有4個按鈕,在該模塊中,數(shù)據(jù)位D1D2D3D4分別與51單片機中的I/O口相接,其在正常狀態(tài)時為低電平,當遙控器按鈕被按動時,則對應I/O口中的數(shù)據(jù)位會轉(zhuǎn)變成高電平。在串口通信模塊設計中集成有RS232接口,該接口能夠?qū)OM端口中的信號進行轉(zhuǎn)換,使其成為TTL電平,并利用51單片機對PC機中的控制命令進行接收。在數(shù)據(jù)接收模塊中,主要是以串口通信方式來實現(xiàn)51單片機和上位機之間的數(shù)據(jù)通信的。上位機會將報文傳輸?shù)较挛粰C中,該報文包含有5個字節(jié),這5個字節(jié)主要包括起止符#、舵機號、控制位、舵機角度以及終止符$,下位機會對數(shù)據(jù)進行存儲,并在接收到終止符時,對存儲的數(shù)據(jù)進行處理,然后做出反應[2]。
本文在基于單片機的六足機器人控制系統(tǒng)設計中,通過3×6法來對舵機進行控制,以此在確保PWM信號精度的同時,完成對18個舵機的同時控制,并通過上位機中三大模式的設計來達到舵機的多樣化控制,使六足機器人在自動避障中能夠進行許多復雜的動作。在該控制系統(tǒng)中,通過51單片機的使用來確保I/O端口、串口中端及定時器中斷等功能的實現(xiàn),進而為其他類型的智能機器人在自動避障控制系統(tǒng)的研發(fā)中起到一定的參考作用。
[參考文獻]
[1]梁美彥,薛太林,王昱,等.基于Android控制的智能六足機器人動力學建模及實現(xiàn)[J].測試技術學報,2017(6):498-504.
[2]魏春莉,李強.基于六足探測機器人的自動避障控制[J].機電工程,2008(1):40-43.