国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ROS的救援船體機器人控制系統(tǒng)設(shè)計

2018-02-26 07:34吳志鵬廖志青冼嘉媚曾奕雄
裝備制造技術(shù) 2018年12期
關(guān)鍵詞:救生圈下位串口

吳志鵬,廖志青,冼嘉媚,曾奕雄,何 威

(華南理工大學(xué)廣州學(xué)院,廣東 廣州 515000)

0 前言

中國南方地區(qū)夏季多雨,特別是長江流域容易發(fā)生洪災(zāi);東南沿海地區(qū)還會受到臺風(fēng)的影響,容易引發(fā)洪水、泥石流等次生災(zāi)害;夏季城市容易發(fā)生內(nèi)澇。由于洪澇災(zāi)害的危害性很大,它不僅對經(jīng)濟造成嚴(yán)重的損失,而且還奪取了人類的生命。為了解決這個問題,設(shè)計了救援船體機器人,由第一代清潔船體機器人(圖1)迭代升級,將垃圾清潔裝置改為機械臂、拋射器和收繩器,由拋射器加機械臂的結(jié)構(gòu)精準(zhǔn)拋射出救生圈,對溺水人員實施救援。

本救援船體機器人中的控制系統(tǒng)有效地解決了救援船體的控制問題,致力于更好的后期算法開發(fā)。系統(tǒng)使用基于Linux操作系統(tǒng)上的ROS機器人操作系統(tǒng),下位機使用基于Cortex-M3內(nèi)核的32位高性能微控制器STM32F103ZET6為主控制芯片,為底層電機等運動原件提供控制[1]。救援船體機器人所要求的功能為救援動作的實施,如救生圈拋置、機器手拋擲、船體運動、圖像傳輸、路徑處理等功能,通過對各項功能進行分析得出將ROS機器人操作系統(tǒng)移植到救援船體機器人上的方案是可以實施的,并且將大大降低對執(zhí)行機構(gòu)信息處理的要求,轉(zhuǎn)為對微型電腦的要求。

對于救援船體機器人使用ROS機器人操作系統(tǒng),一是便于搭建框架整體,二是便于日后升級迭代產(chǎn)品[2],使救援船體機器人可以與時俱進,增添不同模塊,適用于不同水域不同情況。下面對設(shè)計過程進行闡述。

圖1 初代清潔船

1 救援船硬件系統(tǒng)設(shè)計

為了救援船實現(xiàn)圖片傳輸、路徑規(guī)劃、船體控制和機械臂控制等功能,下位機芯片使用STM32F103ZET6控制芯片??刂品绞绞峭ㄟ^上位機PC端發(fā)出協(xié)議擬定的命令到下位機STM32串口,下位機STM32已經(jīng)寫好指定動作,如收到0x7F010X120103BCC的串口數(shù)據(jù)則螺旋槳正轉(zhuǎn)等,同過上位機發(fā)送不同的指令,實現(xiàn)對清潔船體控制。

1.1 下位機芯片STM32F103ZET6的開發(fā)

圖2所示為STM32F103ZET6開發(fā)系統(tǒng)圖,該芯片具有64KB SRAM、512KB FLASH、2個基本定時器、4個通用定時器、2個高級定時器、2個DMA控制器(共 12個通道)、3個 SPI、2個 IIC、5個串口、1個USB、1個 CAN、3個 12位 ADC、1個 12位 DAC、1個SDIO接口、1個FSMC接口以及112個通用IO口[3]。

STM32特點:外設(shè)豐富,STM32擁有包括FSMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、ADC、DAC、RTC、DMA等眾多外設(shè)及功能,具有極高的集成度;優(yōu)異的實時性能,84個中斷,16級可編程優(yōu)先級,并且所有的引腳都可以作為中斷輸入;杰出的功耗控制。STM32各個外設(shè)都有自己的獨立時鐘開關(guān),可以通過關(guān)閉相應(yīng)外設(shè)的時鐘來降低功耗;支持SWD和JTAG兩種調(diào)試口。SWD調(diào)試可以為你的設(shè)計帶來跟多的方便,只需要2個IO口,即可實現(xiàn)仿真調(diào)試。該開發(fā)板的部分參數(shù)如下:

(1)板子外形 10 mm×8 mm;

(2)主芯片 STM32F103RCT6(64腳);

(3)電源RTC后備電池座;

(4)2個USB取電口;

(5)5 V電源接口;

(6)3.3 V電源接口;

外擴8MB SPI FLASH(W25Q65)和外擴EEPROM 24CO2 SPI;

主芯片 STM32F103RCT6(64腳);

芯片 FLASH:256K和芯片SRAM:48K.

圖2 STM32 F103開發(fā)系統(tǒng)圖

1.2 硬件總體框圖設(shè)計

為了更好地闡述救援船硬件部分內(nèi)容,將救援船系統(tǒng)劃分為幾大系統(tǒng)。救援船體系統(tǒng)由上位機系統(tǒng)、下位機主控系統(tǒng)、機械臂控制器、船體運動控制器組成的控制系統(tǒng),系統(tǒng)總體框圖如圖3所示。在下位機各個系統(tǒng)配置了多種編碼器、傳感器,用于船體、機械臂等。并且設(shè)置遠(yuǎn)程遙控器和圖傳模塊,以便進行人機交互的功能。

圖3 硬件總框架

2 機械結(jié)構(gòu)設(shè)計

在對機器人的設(shè)計研究的過程中,主要是根據(jù)機器人所要實現(xiàn)的三個功能進行設(shè)計,分別是:拋射救生圈功能、回收救生圈、遠(yuǎn)程遙控功能。

在初代清潔船的基礎(chǔ)上將傳送帶等清潔功能移除,改為一個三軸機械臂,再在機械臂上安裝一個拋射器,拋射器安裝有一個氣壓發(fā)射裝置,通過觸動開關(guān),拋射一個帶有繩子的救生圈,通過機械臂關(guān)節(jié)的移動來改變拋射器的拋射角度,從而達到精準(zhǔn)救援,再在救援船底部安裝一個由直流無刷電機組成的收繩器,通過電機正轉(zhuǎn),達到收繩的功能。

船體左右對稱分布,船架則為支撐整個船體,船架通過六個定點連接兩側(cè)浮筒,限制多個自由度,防止上下左右出現(xiàn)松動情況,更加穩(wěn)固。對于受力負(fù)荷過強的部分船架(如:傳動機構(gòu)板塊、調(diào)節(jié)機構(gòu)板塊)采用三角形定理,增加支架,使得承受負(fù)載增大不易變形。船架材料采用硬鋁為主,合金鋼為輔(部分高強度部位),用以減輕整體船重,同時長時間在水中作業(yè)要避免被腐蝕。螺旋槳動力部分負(fù)責(zé)驅(qū)動機器人前進(如圖4),螺旋槳的轉(zhuǎn)向由另一個直流無刷電機負(fù)責(zé),動力部分安裝有伺服驅(qū)動、16位絕對式編碼器、霍爾傳感器來確保轉(zhuǎn)向準(zhǔn)確。

圖4 動力系統(tǒng)

3 控制系統(tǒng)軟件設(shè)計

在操作者控制下,操作者通過遠(yuǎn)程攝像頭了解方位與救援需求,通過遠(yuǎn)程遙控器發(fā)射指定信號到PC端,經(jīng)過ROS信號觸發(fā),發(fā)布消息到串口節(jié)點,再由串口節(jié)點發(fā)送指令到STM32控制板中,實現(xiàn)控制精準(zhǔn)拋投器拋射救生圈。通過攝像頭判斷出溺水人員已經(jīng)成功抓牢救生圈時,通過遠(yuǎn)程遙控器發(fā)送指令到PC端,再由PC端發(fā)布消息到串口節(jié)點,由串口節(jié)點發(fā)送電機回收指令,使收繩器啟動,回收救生圈。

3.1 控制系統(tǒng)初始化

當(dāng)PC機啟動時,預(yù)先寫好在Service文件中的launch文件會啟動,即ROS各個節(jié)點程序啟動,開始于下位機通訊,發(fā)送指令初始化下位機stm32,包括:時鐘、GPIO、串口、LCD、中斷及其分組、延時函數(shù)、定時器、字庫等的初始化。后等待遙控器的指令,啟動救援船體機器人。

3.2 串口通信

通信部分主要由USART利用STM32內(nèi)部串口的資源來實現(xiàn)PC端ROS操作系統(tǒng)和下位機的數(shù)據(jù)傳遞指令的下達,搖桿遙控帶接收器采用433通訊傳輸方式發(fā)送數(shù)據(jù)到PC端ROS操作系統(tǒng)。在linux系統(tǒng)上使用ROS平臺進行上層與下層通訊,使用編程語言C++為基礎(chǔ),調(diào)用serial庫與下位機STM32進行串口通訊。定義發(fā)送至下位機的信息,即x、y軸的速度以及方向角,從ROS中的cmd_vel主題獲取發(fā)布速度以及方向角,并將方向角轉(zhuǎn)化為四元數(shù),將以上所有信息加上兩個停止位存儲至列表。初始化串口信息,設(shè)置端口號、波特率、通信字節(jié)位數(shù)等。首先測試是否能成功連接串口,若成功則將存儲速度以、方向四元數(shù)以及停止位的列表發(fā)送至下位機,如不成功則拋出響應(yīng)問題。接收下位機傳輸至上位機的信息,對其信息進行解析,可以初略得出救援船體機器人當(dāng)前所在位置,使用其他傳感器更加精確定位。

3.3 圖傳模塊功能實現(xiàn)

圖傳模塊功能,通過5.8 G,200 mW圖傳發(fā)射器,發(fā)送攝像頭接收到的圖片數(shù)據(jù),該發(fā)射器有40個頻點,頻率范圍在5.645 GHz~5.945 GHz,電壓輸入范圍7~24 V.圖傳接收器4.3寸接收顯示一體機,內(nèi)置靈敏度5.8 G接收器,接收頻率范圍為5.645 GHz~5.945 GHz,32頻點與5.8 G圖傳發(fā)射器匹配,要求攝像頭的圖像制式為NTSC內(nèi)置天線電池。

3.4 船體控制功能、機械臂控制功能實現(xiàn)

船體控制功能,下位機已經(jīng)封裝好各個不同執(zhí)行機構(gòu)的動作,如螺旋槳正轉(zhuǎn)反轉(zhuǎn)、機械臂旋轉(zhuǎn)、拋射器發(fā)射等,通過遙控器和圖傳模塊進行遠(yuǎn)程人機交互操控,操控手柄選擇螺旋槳旋轉(zhuǎn)等不同動作,操控手柄發(fā)送信號到PC端ROS機器人操控系統(tǒng)通過USART通訊將人機交互結(jié)果發(fā)送至下位機STM32實現(xiàn)船體的位移。

STM32接收程序部分如下:

void USART1_IRQHandler(void)//′串口1中斷程序

{

u8 Res;

if(USART_GetITStatus(USART1 , USART_IT_RXNE)!=RESET) //接收中斷

{

Res=USART_ReceiveData(USART1); //讀取

if(Res==1)

{

ZX0=0;

ZX1=1;

}

else if(Res==2)

{

ZX0=1;

ZX1=0;

}

else if(Res==3)

{

}

else if(Res==4)

{

POWER=0;

OUT0=1;

YEL=0;

BLU=0;

OUT1=0;

YEL_K=1;

BLU_K=1;

OUT1_K=1;

POWER=1;

}

3.5 路徑規(guī)劃功能實現(xiàn)

路徑規(guī)劃功能,因為救援船體上安裝要激光雷達等多個傳感器,可以檢測出湖面礁石、障礙物等,通過傳感器下位機stm32串口返回的數(shù)據(jù),救援船體機器人傳感器模塊ROS節(jié)點,使用GPS、imu以及下位機傳輸上來的里程計能進行更加精確的位置定位,使用激光雷達可以進行躲避障礙物的功能。安裝GPS,imu相對應(yīng)的驅(qū)動,使用C++編寫ROS節(jié)點,發(fā)布節(jié)點消息,使用ekf算法對GPS、imu以及里程計發(fā)布的消息進行融合得到更加精確的位置定位。激光雷達進行避障,在確定目標(biāo)位置時使用global_costmap對總路徑進行規(guī)劃,并不斷更行,local_costmap本地路徑規(guī)劃,在救援船體機器人運行時出現(xiàn)障礙物的時候能及時規(guī)劃躲避路徑,完成躲避障礙物的功能。使用攝像頭進行圖像傳輸,安裝響應(yīng)節(jié)點,打開攝像頭,并且使用SSH遠(yuǎn)程連接,則可以進行遠(yuǎn)程圖像傳輸??梢詫崟r的對水面以及救援船體機器人進行實況轉(zhuǎn)播,能及時了解船體以及水面當(dāng)前情況。通過ROS節(jié)點處理,可以輕松避開障礙物等阻礙船體運行的物體,實現(xiàn)路徑規(guī)劃的功能。主要通過激光雷達實現(xiàn)即時的規(guī)劃躲避障礙物,防止救援船體與障礙物相撞,損壞船體。ROS有自帶navigation導(dǎo)航包,通過調(diào)用導(dǎo)航包,可以檢測出船體附件環(huán)境等,通過節(jié)點反饋,避開路障實現(xiàn)路徑規(guī)劃的功能如圖5所示。

圖5 避障測試

救援船體機器人平臺將運行ROS的PC作服務(wù)器端,主要負(fù)責(zé)復(fù)雜的計算和路徑規(guī)劃等復(fù)雜程度不一的任務(wù)。救援船體機器人由二級功能節(jié)點和任務(wù)控制等模塊組成,這樣系統(tǒng)可以在智能化和可靠性上都能滿足救援船體機器人的需求。ROS機器人操作系統(tǒng)平臺可用于開發(fā)一系列機器人系統(tǒng),也可用于開發(fā)多機器人系統(tǒng)和非工業(yè)機器人系統(tǒng),如足球機器人系統(tǒng)、服務(wù)類機器人系統(tǒng)、無人機系統(tǒng)等。

4 結(jié)束語

救援船體機器人用STM32下位機和機器人開源操作系統(tǒng)ROS設(shè)計了一個救援船體機器人系統(tǒng)。該系統(tǒng)首先由機器人平臺主控制器對多種傳感器進行信息采集和整合,通過STM32各傳感器采集數(shù)據(jù)向上位機發(fā)送當(dāng)前數(shù)據(jù)然后利用串口通信傳輸,并能遠(yuǎn)程控制救援船體機器人進行精確移動,最后對救援船體機器人進行了系統(tǒng)調(diào)試和測試,通過對救援船體機器人進行參數(shù)校核和完善程序等過程,使機器人系統(tǒng)達到了預(yù)期的設(shè)計要求。

猜你喜歡
救生圈下位串口
基于NPORT的地面綜合氣象觀測系統(tǒng)通信測試方法及故障處理
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
基于EM9000工控板高性能雙串口通信模型設(shè)計與實現(xiàn)
提高火力發(fā)電廠自動電壓控制系統(tǒng)投入率的措施
發(fā)射機房監(jiān)控系統(tǒng)之下位機
在海中
智能救生圈
朝代誰也不服誰
船舶電子設(shè)備串口數(shù)據(jù)的軟件共享方法
簡易野外救生圈
延吉市| 广河县| 涞水县| 海晏县| 廉江市| 宜春市| 离岛区| 尉氏县| 成都市| 富蕴县| 松原市| 嘉祥县| 兴业县| 赤水市| 体育| 扎鲁特旗| 临沭县| 丰都县| 通海县| 大宁县| 体育| 华亭县| 紫金县| 泰州市| 三都| 阆中市| 高淳县| 吴忠市| 贵港市| 伊春市| 额敏县| 屏南县| 青神县| 晋城| 五莲县| 潼关县| 句容市| 新宁县| 永泰县| 宣城市| 石台县|