隨著(zhù)人工智能技術(shù)與機器人關(guān)鍵技術(shù)的發(fā)展[1,2],智能機器人的發(fā)展也隨之加快,同時(shí)機器人的發(fā)展減少了企業(yè)在人工方面的投入,提高了企業(yè)生產(chǎn)效率與產(chǎn)品質(zhì)量。在智能制造、智能物流、智慧農業(yè)、智能交通等領(lǐng)域都大量應用了機器人,在日常生活中也可見(jiàn)服務(wù)型機器人,如在超市、醫院、警用、機場(chǎng)、火車(chē)站、銀行等所使用的服務(wù)型機器人。
基于ROS(Robot Operating System)系統的倉庫巡邏機器人以工控機為核心,驅動(dòng)一體控制器為上位機控制中心,通過(guò)激光雷達采集外部環(huán)境信息來(lái)繪制地圖,并結合各類(lèi)傳感器進(jìn)行巡邏,如溫度傳感器、濕度傳感器、煙霧傳感器和火焰傳感器獲取外界環(huán)境參數。該倉庫巡邏機器人通過(guò)激光雷達構建倉庫巡邏地圖,同時(shí)對倉庫內的溫度、濕度、煙霧、火情及外人進(jìn)入進(jìn)行判斷,實(shí)現報警的功能。
機器人操作系統ROS具有點(diǎn)對點(diǎn)、免費的開(kāi)源軟件包等特點(diǎn),同時(shí)機器人操作系統ROS作為機器人軟件開(kāi)發(fā)平臺可以提供不同機器人的軟件包,使開(kāi)發(fā)者可將原有的軟件包進(jìn)行改寫(xiě)、修改參數和直接引用;將原本松散的框架進(jìn)行耦合,為他們提供通信框架。ROS操作系統中適用的編程語(yǔ)言也非常豐富,如C++、python和java等,為消息之間的相互交互提供高效的支持。而在機器人編程中主要采用的是C++和python語(yǔ)言編程。ROS是通信機制、工具軟件包、機器人技能和機器人生態(tài)系統的集合體。而現在ROS已被多種機器人在研究開(kāi)發(fā)中使用,如服務(wù)型機器人、無(wú)人機、移動(dòng)機器人等相關(guān)機器人。
倉庫巡邏機器人系統其上位機為工控機,且以工控機為核心控制器的卡片式電腦作為控制核心平臺,在ROS的軟件開(kāi)發(fā)框架下可通過(guò)激光雷達采集外部環(huán)境信息,實(shí)現可以集掃描、SLAM和最優(yōu)路徑規劃為一體的導航功能,通過(guò)其他傳感器對倉庫內外環(huán)境進(jìn)行掃描與檢測,將信息傳輸到驅動(dòng)一體控制器,最后通過(guò)驅動(dòng)一體控制器將數據傳輸到工控機后,通過(guò)工控機再傳輸給監控界面,進(jìn)而實(shí)現倉庫巡邏機器人的巡邏、監控、報警等相關(guān)功能,同時(shí)對自身防撞與防跌進(jìn)行防范。倉庫巡邏機器人硬件系統框架圖如圖1所示。
機器人定位導航、物體環(huán)境建模均建立在激光雷達所采集的信息的基礎上[3,4]。本設計的倉庫巡邏機器人采用思嵐RPLIDAR A1激光雷達。測距范圍為15 cm~600 cm,掃描角度為0~360°,掃描頻率為5 Hz~15 Hz。發(fā)送指令控制機器人電機驅動(dòng),通過(guò)激光雷達360°發(fā)射激光并接收激光信息,將激光雷達數據和機器人運動(dòng)的坐標變換關(guān)系TF再以串口的形式傳遞給上位機,通過(guò)上位機來(lái)發(fā)布地圖信息。激光雷達是通過(guò)發(fā)射器發(fā)射激光束并接收目標反射的激光束來(lái)對目標進(jìn)行測量距離的,并利用三角測距的原理,推算出目標或被測物體的距離并生成平面點(diǎn)云地圖信息,進(jìn)而建立巡邏地圖。激光雷達對環(huán)境的要求比較低,基本不受外界環(huán)境的影響,同時(shí)激光雷達測量精確,可以比較精準地提供角度信息和測量距離信息,使測量角度達到小于1°的精準度和厘米級的距離測量精度。
人機交互在早期經(jīng)歷了命令行交互階段和圖形用戶(hù)階段,而現在人機交互在各方面有著(zhù)廣泛應用,如可以用在人體測溫中。本設計中倉庫巡邏機器人所采用的深度相機為orbbec深度相機,它的視場(chǎng)為水平70°、垂直60°,工作范圍為80 cm~400 cm,它對倉庫物品的溫度、人員溫度測量起著(zhù)重要作用,同時(shí)機器人可通過(guò)深度相機掃描對人員信息進(jìn)行存儲,當外來(lái)人員入侵時(shí)對其進(jìn)行掃描并與庫中人員信息進(jìn)行對比,以防范盜竊等情況的發(fā)生。
倉庫巡邏機器人在移動(dòng)底盤(pán)上裝有三組超聲波傳感器。超聲波傳感器工作電源為5 V、工作電流小于20 mA、有效測距為4 cm~500 cm、分辨率為1 cm,并且內置溫度補償電路。通過(guò)超聲波傳感器可測量機器人與物體之間的距離。
碰撞防跌傳感器是由碰撞機械傳感器和紅外燈防跌傳感器組合在一塊構建而成的,其主要是起到使機器人在運動(dòng)過(guò)程中達到一個(gè)輔助避障的作用,防止機器人在走到路坑時(shí)發(fā)生跌倒的情況。機械碰撞傳感器適用電源為3.3 V~5 V,觸點(diǎn)耐壓值為交流125 V,觸點(diǎn)壽命可達到10萬(wàn)次。紅外防跌傳感器的檢測距離為0.1 cm~60 cm可調,距離越近性能越穩定,白色反射距離最遠,其工作溫度范圍為-10 ℃~50 ℃,工作電流為1 A以上的電源供電。并且,紅外防跌傳感器可直接與單片機I/O連接,碰撞防跌傳感器可以防止機器人在運動(dòng)過(guò)程中跌落。
倉庫巡邏機器人也可以添加一些其他的傳感器來(lái)實(shí)現其巡邏的功能[5]。例如,煙霧傳感器,對于機器人在發(fā)現火災時(shí)起著(zhù)檢測與防范的作用并對煙霧濃度進(jìn)行檢測;溫濕度傳感器對倉庫內環(huán)境進(jìn)行溫度檢測,檢測溫度的同時(shí)將相關(guān)數據上傳到上位機與監控界面;攝像頭獲取圖像信息等。同時(shí),倉庫巡邏機器人包括里程計、陀螺儀和加速度計來(lái)獲取機器人的角速度和加速度。將數據傳輸到工控機,由工控機結合二者將其姿態(tài)數求出,同時(shí)在TF坐標變換中進(jìn)行計算。
ROS Master是ROS的調度中樞,可以看作一個(gè)服務(wù)器,其余的節點(diǎn)是發(fā)布者(tallker)或訂閱者(listener)。在軟件系統設計方面可以將其分為兩層:1)監控操作層。通過(guò)裝有的Ubuntu系統來(lái)連接巡邏機器人,同時(shí)在監控操作層獲取機器人的相關(guān)信息。2)感知執行層。通過(guò)傳感器獲取外部數據,通過(guò)監控界面,使巡邏機器人按既定線(xiàn)路巡邏;通過(guò)圖像傳輸節點(diǎn)將圖像信息進(jìn)行保存,通過(guò)運動(dòng)控制節點(diǎn)使機器人運動(dòng),通過(guò)激光雷達數據建立地圖信息。巡邏機器人通過(guò)已保存的地圖信息實(shí)現最優(yōu)路徑規劃、自主導航、自主定位的功能,最終完成倉庫巡邏機器人的巡邏監控。倉庫巡邏機器人軟件設計框架圖如圖2所示,通過(guò)人機交互節點(diǎn)將Unbtun系統與ROS Master進(jìn)行連接,再通過(guò)姿態(tài)、自主導航、運動(dòng)控制、圖像控制、環(huán)境感知和報警節點(diǎn)將信息傳輸到ROS Master。
SLAM(Simultaneous Localization And Mapping)也稱(chēng)同步定位與地圖構建[6,7]。SLAM地圖構建離不開(kāi)TF坐標變換和激光雷達數據。機器人從未知環(huán)境的未知地點(diǎn)運動(dòng),通過(guò)運動(dòng)過(guò)程觀(guān)測地圖目標、特征定位、自身位置和姿態(tài)。倉庫巡邏機器人巡邏地圖是基于激光雷達來(lái)建立SLAM地圖的。機器人操作系統ROS首先通過(guò)map的消息格式來(lái)定義地圖的原點(diǎn)和地圖長(cháng)寬等相關(guān)信息,再將自行填充的map數據進(jìn)行數據發(fā)布;通過(guò)mappub實(shí)現地圖數據初始化填充和地圖數據發(fā)布,其初始化主要包括地圖原點(diǎn)、長(cháng)度、寬度及各點(diǎn)的狀態(tài)值,再通過(guò)創(chuàng )建發(fā)布者,并在map上發(fā)布地圖數據;通過(guò)TF從外部接收消息,并確定base_link與map的坐標變換關(guān)系,通過(guò)tfbrd來(lái)發(fā)布坐標變換關(guān)系。創(chuàng )建類(lèi)用于控制建圖,對其進(jìn)行初始化發(fā)布者并創(chuàng )建激光雷達接收數據,利用bresenham算法存儲激光雷達掃描過(guò)的地圖柵格點(diǎn)。最后通過(guò)機器人操作系統ROS的可視化工具Rviz便可看到地圖信息。SLAM地圖如圖3所示。
通過(guò)對機器人SLAM地圖的構建,可實(shí)現機器人巡邏、自主導航和運動(dòng)控制的功能。機器人SLAM的搭建,可以將機器人所獲得的信息與實(shí)際情況進(jìn)行有效結合。同時(shí),工程師可以更加方便地更改機器人的路徑并實(shí)時(shí)監控機器人的自身定位。
路徑規劃主要是建立在可靠的柵格地圖基礎上,機器人通過(guò)路徑規劃來(lái)完成自主導航的功能,而機器人巡邏則是通過(guò)全局路徑規劃和局部路徑規劃來(lái)實(shí)現最優(yōu)路徑的選擇,使機器人可以更加高效地完成相關(guān)功能。本設計中全局路徑規劃主要采用A*算法來(lái)實(shí)現,而相對于傳統的Dijkstra算法而言,A*算法更加高效,并且使機器人獲得了全局最優(yōu)路徑,通過(guò)局部路徑規劃進(jìn)而完善全局路徑規劃,A*算法綜合了最良優(yōu)先搜索和Dijkstra算法的優(yōu)點(diǎn),在進(jìn)行啟發(fā)式搜索提高算法效率的同時(shí),保證找到一條最優(yōu)路徑(基于評估函數)。A*算法核心公式就是F值的計算:F=G+H(F代表方塊總移動(dòng)代價(jià),G表示開(kāi)始點(diǎn)到當前方塊的移動(dòng)代價(jià),H表示當前方塊到結束點(diǎn)的預估移動(dòng)代價(jià)),而對于局部路徑規劃常用的方法為動(dòng)態(tài)窗口法(dwa算法),此算法主要在速度空間中采樣多組速度值,并模擬機器人在下一個(gè)時(shí)間的軌跡。通過(guò)對采樣結果的評價(jià)后選擇一條最優(yōu)的路徑,實(shí)現使機器人具有自主避開(kāi)障礙物和自主移動(dòng)的能力與功能。通過(guò)python編程實(shí)現A*算法路徑規劃圖和dwa算法路徑規劃圖,分別如圖4、圖5所示。
機器人仿真地圖通過(guò)gazebo仿真來(lái)對機器人和地圖進(jìn)行搭建。1)首先通過(guò)URDF創(chuàng )建機器人模型,然后對機器人的攝像頭、激光雷達、深度相機、紅外傳感器和碰撞傳感器進(jìn)行仿真配置,并通過(guò)命令將機器人模型啟動(dòng),通過(guò)gazebo功能包調用激光仿真器插件,通過(guò)對機器人模型的更新并啟動(dòng),最后可以通過(guò)rostopic echo命令來(lái)查看仿真傳感器數據。2)通過(guò)gazebo里的模型搭建機器人運行環(huán)境,在gazebo中將機器人仿真環(huán)境搭建完成后進(jìn)行保存,保存完成后可生成.sqt文件。3)通過(guò)launch文件將機器人導入到搭建的仿真環(huán)境。通過(guò)機器人仿真對機器人的相關(guān)性能進(jìn)行模擬,可以有效地解決機器人在實(shí)際情況中出現的問(wèn)題,而機器人仿真環(huán)境提高了建立真實(shí)機器人的效率,可以使開(kāi)發(fā)者和工程師能夠更好地配置機器人,同時(shí)使開(kāi)發(fā)者和工程師更加快捷和有效地解決問(wèn)題,進(jìn)而提高效率。經(jīng)過(guò)多次建立仿真環(huán)境,生成的倉庫巡邏機器人仿真環(huán)境圖如圖6所示。
在室內環(huán)境中機器人的自主移動(dòng)導航是機器人對環(huán)境進(jìn)行監控的前提,為實(shí)現機器人自主導航,該虛擬機器人搭載激光雷達對機器人實(shí)時(shí)環(huán)境進(jìn)行更新,攝像頭對機器人在運動(dòng)過(guò)程中的實(shí)時(shí)環(huán)境進(jìn)行可視化。
自主導航是由acml、odom以及路徑規劃算法構成的。amcl是一個(gè)機器人在二維地圖中移動(dòng)的定位系統;odom原點(diǎn)就是機器人啟動(dòng)時(shí)候的點(diǎn),通過(guò)粒子濾波可以將odom的位置在map上估算出來(lái),在tf中發(fā)布。
配置機器人,導航功能包集將使其運動(dòng)。使用導航功能包集的先決條件:1)TF坐標變換的配置。導航功能包集需要機器人一直發(fā)布坐標系之間的關(guān)系信息。2)傳感器相關(guān)信息。導航功能包集通過(guò)調用來(lái)自傳感器的信息避開(kāi)實(shí)際環(huán)境中的障礙物,它假定這些傳感器在ROS上不斷發(fā)布消息來(lái)躲避障礙物。3)里程信息。導航功能包集需要使用和nav_msgs消息發(fā)布的里程信息。4)底盤(pán)控制器。導航功能包集假定它可以通過(guò)話(huà)題“cmd_vel”來(lái)發(fā)布geometry_msgs/Twist類(lèi)型的消息,這個(gè)消息是基于機器人的底座坐標系,它傳遞的是運動(dòng)命令。5)地圖服務(wù)器。將代價(jià)地圖作為ROS的服務(wù)器參數發(fā)布,提供了map_saver節點(diǎn),可以通過(guò)命令進(jìn)行存儲地圖[8,9]。
在以上相關(guān)條件下,通過(guò)激光雷達來(lái)獲取相關(guān)數據,acml粒子估算機器人自身定位,這就將底層數據完整地概括,通過(guò)地圖服務(wù)器將地圖數據加載出來(lái),然后根據地圖的目標位置,做一個(gè)全局路徑規劃,在機器人行駛過(guò)程中,若出現障礙物時(shí),再通過(guò)局部路徑規劃重新規劃一條路徑。自主導航圖示如圖7所示。
通過(guò)gazebo來(lái)對機器人攝像頭傳感器進(jìn)行仿真實(shí)現,在創(chuàng )建好機器人模型的前提下,編寫(xiě)一個(gè)攝像頭傳感器單獨的xacro文件,來(lái)對機器人攝像頭傳感器進(jìn)行配置。將此文件集成到xacro文件中,再通過(guò)gazebo仿真并且通過(guò)rviz來(lái)對機器人攝像頭傳感器的數據進(jìn)行顯示。通過(guò)機器人攝像頭的仿真模擬,對于機器人在自主移動(dòng)過(guò)程中,可以使得機器人對外部環(huán)境的實(shí)時(shí)畫(huà)面進(jìn)行顯示與檢測。機器人在仿真環(huán)境中的攝像頭配置以及攝像頭在仿真環(huán)境中的實(shí)時(shí)圖像顯示如圖8所示。
智能機器人攝像頭檢測異常情況的方法為差影法[10]。倉庫巡邏機器人通過(guò)對某一場(chǎng)景進(jìn)行學(xué)習,再將所學(xué)習到的場(chǎng)景保存為圖片或者視頻,當有外來(lái)物體進(jìn)入到機器人所保存的場(chǎng)景下時(shí),將機器人所保存的場(chǎng)景與外來(lái)物體所產(chǎn)生的場(chǎng)景進(jìn)行場(chǎng)景抵消,最后產(chǎn)生此外來(lái)物體的影子圖像,以達到機器人對外來(lái)物體的檢測。
智能機器人深度相機通過(guò)掃描將人體信息進(jìn)行保存后,再次進(jìn)行掃描后對其閾值進(jìn)行對比以達到檢測的效果。通過(guò)機器人的跟隨節點(diǎn),編寫(xiě)launch文件,當打開(kāi)launch文件時(shí)出現圖像,當人物進(jìn)入時(shí)做出動(dòng)作后,深度圖像上則會(huì )有15個(gè)骨骼點(diǎn),構成人的骨骼特征是目標到機器人實(shí)際距離與默認距離的差值,其反映機器人應該運動(dòng)的距離與方向。通過(guò)機器人掃描的人體信息與保存的人體信息不同時(shí),則機器人對其進(jìn)行跟隨報警提示。
智能機器人通過(guò)煙霧報警器來(lái)對機器人場(chǎng)景中的火災進(jìn)行檢測,并結合紅外傳感器、碰撞傳感器來(lái)判斷火情,以達到多傳感器融合巡邏的效果,進(jìn)而實(shí)現倉庫巡邏機器人巡邏和巡視的功能。
本研究基于ROS系統的倉庫巡邏機器人,是以工控機為核心控制器,通過(guò)激光雷達來(lái)采集倉庫內部環(huán)境信息來(lái)建立實(shí)時(shí)地圖,完成并實(shí)現SLAM的相關(guān)功能。其他傳感器通過(guò)獲取外界環(huán)境信息與存儲信息對比以達到巡邏警戒的目的。機器人操作系統ROS使機器人在編程方面簡(jiǎn)便化、系統化,提高了機器人在二次開(kāi)發(fā)時(shí)的效率。相對于ROS機器人而言,其最為重要的技術(shù)是SLAM地圖構建和自主定位導航。而對于倉庫巡邏機器人而言,其關(guān)鍵技術(shù)不僅要達到ROS機器人關(guān)鍵技術(shù),同時(shí)也要達到巡邏的目的,通過(guò)攝像頭對外界環(huán)境的特定位置進(jìn)行拍攝后與在原有庫中的信息進(jìn)行對比來(lái)初步實(shí)現監控、巡邏及報警的目的,最終實(shí)現基于ROS系統的倉庫巡邏機器人。
友情鏈接 :圖書(shū)管理軟件 飛機 軟件測試 保溫材料 灑水車(chē)廠(chǎng)家 裝修中式別墅 電鍋爐 國際貨代 明泰鋁業(yè) 集成吊頂 成都活動(dòng)策劃公司 貨代管理軟件 進(jìn)出口代理清關(guān)公司 模具鋼 煙霧凈化器 工作服價(jià)格 工業(yè)設計公司 激光打標機 電子簽章 植發(fā)多少錢(qián) 上海展臺搭建 網(wǎng)頁(yè)設計公司 網(wǎng)上商城 電磁流量計 鋼制暖氣片
上海貨代 定制禮品 香港服務(wù)器租用 精品資源網(wǎng) 餐飲項目 紡織品檢測
磁性過(guò)濾器 上海物流公司
膏藥OEM 爬架網(wǎng) 遠程工作 污水提升器
防爆配電箱 網(wǎng)店轉讓 加速器
滬公網(wǎng)安備31010702002684號 滬ICP備14036201號-29