• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于ROS的自主導(dǎo)航系統(tǒng)仿真設(shè)計(jì)

      2019-08-09 02:14:26胡思旺李春杰
      自動化與儀表 2019年7期
      關(guān)鍵詞:移動機(jī)器人代價插件

      胡思旺,李春杰

      (中國科學(xué)技術(shù)大學(xué) 軟件學(xué)院,蘇州 215000)

      移動機(jī)器人在陌生環(huán)境中自主避障與導(dǎo)航一直是機(jī)器人相關(guān)領(lǐng)域研究熱點(diǎn)。機(jī)器人自主導(dǎo)航技術(shù)的實(shí)現(xiàn)關(guān)鍵在于如何解決機(jī)器人在陌生環(huán)境中的定位與路徑規(guī)劃問題。一方面,基于里程計(jì)慣性導(dǎo)航[1]的實(shí)現(xiàn),往往因?yàn)閼T性傳感器長時間的累積誤差,極易造成機(jī)器人航跡計(jì)算偏差,無法滿足移動機(jī)器人定位與路徑規(guī)劃的精度要求。另一方面,采用GPS信號的衛(wèi)星導(dǎo)航[2]技術(shù),存在室內(nèi)信號弱,定位誤差大,且極易受到天氣與環(huán)境影響等問題。

      顯然,傳統(tǒng)上的自主導(dǎo)航技術(shù)難以勝任移動機(jī)器人自主導(dǎo)航的需求。同時定位與地圖構(gòu)建SLAM(simultaneous localization and mapping)技術(shù)的提出是解決傳統(tǒng)上導(dǎo)航技術(shù)缺陷的有效方法。SLAM是指機(jī)器人在陌生環(huán)境中通過獲取自身傳感器數(shù)據(jù),實(shí)現(xiàn)在陌生環(huán)境中的自主定位與環(huán)境地圖構(gòu)建,機(jī)器人依據(jù)SLAM構(gòu)建的室內(nèi)環(huán)境地圖進(jìn)行路徑規(guī)劃,同時利用自身傳感器數(shù)據(jù)自主避障到達(dá)目標(biāo)點(diǎn)。

      機(jī)器人操作系統(tǒng)ROS是基于Linux構(gòu)建的開源機(jī)器人操作系統(tǒng),其本質(zhì)上是運(yùn)行在Linux上的機(jī)器人軟件開發(fā)工具集,提供非常多的開源硬件驅(qū)動與算法功能包,極大方便機(jī)器人的設(shè)計(jì)與開發(fā)。在此基于ROS設(shè)計(jì)并實(shí)現(xiàn)了移動機(jī)器人的自主導(dǎo)航系統(tǒng),并在stdr_simulator仿真系統(tǒng)上測試與驗(yàn)證。

      1 ROS操作系統(tǒng)

      ROS是2010年由Willow Garage公司發(fā)布開源的次級操作系統(tǒng),最早基于Ubuntu操作系統(tǒng)設(shè)計(jì)。ROS的設(shè)計(jì)初衷是幫助實(shí)現(xiàn)機(jī)器人研發(fā)過程中的代碼復(fù)用,提高機(jī)器人開發(fā)人員的效率,因此ROS被設(shè)計(jì)成為一種分布式、松耦合的架構(gòu),不同的執(zhí)行程序被分散地獨(dú)立設(shè)計(jì),可以按需求將不同的執(zhí)行程序組合起來,實(shí)現(xiàn)機(jī)器人的功能。系統(tǒng)在運(yùn)行時,所有的可執(zhí)行程序及其所交互的數(shù)據(jù)都會通過ROS實(shí)現(xiàn)的點(diǎn)對點(diǎn)網(wǎng)絡(luò)組織與實(shí)現(xiàn)。

      ROS中把可執(zhí)行程序稱為節(jié)點(diǎn),節(jié)點(diǎn)與節(jié)點(diǎn)之間通過基于ROS主題的形式傳遞消息。ROS提供節(jié)點(diǎn)基于主題訂閱與發(fā)布的消息通訊模式,節(jié)點(diǎn)將消息發(fā)布到指定主題中,其它節(jié)點(diǎn)通過訂閱主題來獲取消息,通訊模式如圖1所示。

      圖1 ROS消息模型Fig.1 ROS messaging model

      ROS允許節(jié)點(diǎn)運(yùn)行在同一網(wǎng)絡(luò)下的不同計(jì)算機(jī)上,由ROS節(jié)點(diǎn)管理器ROS Master負(fù)責(zé)節(jié)點(diǎn)通訊的管理。ROS Master提供節(jié)點(diǎn)、主題等信息的注冊與查找,實(shí)現(xiàn)節(jié)點(diǎn)分布式、松耦合的通訊。ROS Master工作原理如圖2所示。

      ROS Master負(fù)責(zé)維護(hù)ROS中所有節(jié)點(diǎn)進(jìn)程之間的通訊,發(fā)布者節(jié)點(diǎn)在ROS Master中注冊主題與自身地址。訂閱者節(jié)點(diǎn)通過在ROS Master中依據(jù)訂閱的主題查找發(fā)布者節(jié)點(diǎn)通訊地址,依據(jù)ROS通訊協(xié)議,與發(fā)布者建立Socket通訊鏈路,最終實(shí)現(xiàn)發(fā)布者與訂閱者的消息通訊。

      圖2 ROS Master通訊模型Fig.2 ROS Master communication model

      2 自主導(dǎo)航系統(tǒng)設(shè)計(jì)

      ROS為機(jī)器人自主導(dǎo)航開發(fā)提供了大量的功能級軟件包。在此,利用了ROS提供的用于機(jī)器人SLAM的gmapping軟件包,以及用于自主避障與路徑規(guī)劃的navigation軟件包集,在stdr_simulator仿真器下仿真實(shí)現(xiàn)移動機(jī)器人的自主導(dǎo)航。ROS將提供的軟件功能包以封裝成節(jié)點(diǎn)的形式提供給開發(fā)者使用,通過組織不同節(jié)點(diǎn),極大方便自主導(dǎo)航系統(tǒng)的設(shè)計(jì)。

      gmapping軟件包基于RBPF粒子濾波算法[3],利用激光雷達(dá)傳感器與機(jī)器人里程計(jì)信息構(gòu)建室內(nèi)柵格地圖,其核心運(yùn)行的節(jié)點(diǎn)為slam_gmapping。在此通過配置navigation軟件包實(shí)現(xiàn)機(jī)器人的自主避障與路徑規(guī)劃,amcl軟件包實(shí)現(xiàn)機(jī)器人的移動定位。ROS提供navigation軟件包集配置如圖3所示。功能如下:

      1)amcl 是ROS提供實(shí)現(xiàn)在SLAM構(gòu)建的柵格地圖上定位軟件包,基于粒子濾波的蒙特卡洛定位算法實(shí)現(xiàn)。

      2)sensor transforms 負(fù)責(zé)實(shí)現(xiàn)機(jī)器人中不同傳感器與機(jī)器人本體之間復(fù)雜坐標(biāo)系統(tǒng)變換。

      3)Odometry 負(fù)責(zé)發(fā)布move_base運(yùn)行的里程計(jì)信息。

      4)base_controller 訂閱move_base路徑規(guī)劃的速度geometry_msgs/Twist消息,并轉(zhuǎn)換為機(jī)器人電機(jī)驅(qū)動指令,驅(qū)動機(jī)器人運(yùn)行。

      5)Laser sensor 為激光雷達(dá)節(jié)點(diǎn),提供激光掃描數(shù)據(jù)。

      6)map_server 是ROS提供的讀取柵格地圖的工具,為move_base提供自主導(dǎo)航需要的先驗(yàn)環(huán)境地圖。

      圖3 navigation導(dǎo)航功能包集配置Fig.3 Navigation package configuration

      7)move_base 是整個導(dǎo)航功能包集的核心運(yùn)行節(jié)點(diǎn),根據(jù)機(jī)器人外部傳感器數(shù)據(jù),負(fù)責(zé)實(shí)現(xiàn)移動機(jī)器人的自主避障和路徑規(guī)劃。

      8)global_planner 是全局路徑規(guī)劃插件,在此采用A*路徑規(guī)劃算法[4]。

      9)local_planner 是move_base中局部路徑規(guī)劃插件,基于DWA動態(tài)窗口法實(shí)現(xiàn)機(jī)器人的自主避障與局部路徑規(guī)劃。

      10)recovery_behaviors 是當(dāng)機(jī)器人導(dǎo)航失敗時執(zhí)行動作的配置。

      ROS基于代價地圖實(shí)現(xiàn)機(jī)器人的路徑規(guī)劃,global_costmap為全局代價地圖,local_costmap為局部代價地圖。

      3 自主導(dǎo)航系統(tǒng)配置

      ROS導(dǎo)航功能包集中核心配置為move_base軟件包配置。move_base軟件包實(shí)現(xiàn)移動機(jī)器人自主避障與路徑規(guī)劃。move_base在global_costmap全局代價地圖上實(shí)現(xiàn)全局路徑規(guī)劃,在local_costmap上實(shí)現(xiàn)局部路徑規(guī)劃。在配置文件中配置機(jī)器人運(yùn)行時的相關(guān)參數(shù)。move_base軟件包運(yùn)行時,通過加載編寫的配置文件,實(shí)現(xiàn)移動機(jī)器人的自主導(dǎo)航。相關(guān)的配置有:通用配置文件;全局代價地圖配置文件;局部代價地圖配置文件。

      3.1 通用參數(shù)配置

      通用參數(shù)配置文件,主要用于配置全局路徑規(guī)劃插件global_planner與局部路徑規(guī)劃插件local_planner的共同必要基本參數(shù)。在此配置如下:

      其中,robot_radius參數(shù)配置圓形機(jī)器人的半徑;obstacle_range代表傳感器最大的探測距離;raytrace_range:表示障礙物最小引入代價地圖的距離;observation_sources參數(shù)定義構(gòu)建代價地圖傳感器的來源。

      3.2 全局代價地圖參數(shù)配置

      全局代價地圖用于配置全局路徑規(guī)劃插件global_planner的工作行為。其配置如下:

      其中,global_frame與robot_base_frame定義全局地圖與機(jī)器人本體坐標(biāo)系統(tǒng);update_frequency定義全局路徑規(guī)劃插件global_planner的工作頻率。對于機(jī)器人在偏離原先的全局路徑時,全局路徑規(guī)劃插件將重新規(guī)劃全局路徑。

      3.3 局部代價地圖參數(shù)配置

      局部代價地圖用于配置局部規(guī)劃器在自主避障過程的DWA動態(tài)窗口算法的工作行為。在此配置如下:

      在局部路徑規(guī)劃配置中,主要配置global_frame,robot_base_frame機(jī)器人地圖坐標(biāo)系及機(jī)器人本體坐標(biāo)系。public_frequency配置局部路徑規(guī)劃器發(fā)布信息的頻率。controller_patience表示在代價地圖清理操作執(zhí)行前,控制器花多長時間等有效控制下發(fā)速度控制指令。接下來的width,height,resolution定義代價地圖的大小與分辨率。transform_tolerance參數(shù)定義轉(zhuǎn)換的允許延遲時間。之后的參數(shù)定義了機(jī)器人本體的最大速度、最小速度、最大加速度等速度屬性。

      在此所仿真的是兩輪差速運(yùn)動機(jī)器人,max_vel_y的方向速度定義0,速度屬性參數(shù)應(yīng)該根據(jù)機(jī)器人本體的特性進(jìn)行合理的配置。

      4 仿真驗(yàn)證

      move_base軟件包參數(shù)完成配置后,需要編寫launch啟動文件,啟動move_base節(jié)點(diǎn),launch文件的編寫規(guī)則可以參考文獻(xiàn)[6]。在此,仿真環(huán)境為ROS-indigo版本,操作系統(tǒng)為ubuntu14.04,仿真器選用stdr_simulator。

      首先需要啟動stdr_simulator仿真器。通過編寫launch文件啟動gmapping節(jié)點(diǎn),控制機(jī)器人在環(huán)境中移動以實(shí)現(xiàn)周圍環(huán)境地圖的構(gòu)建,使用ROS提供的map_server工具保存gmapping創(chuàng)建的地圖。

      模擬環(huán)境如圖4所示。使用gmapping所構(gòu)建的地圖如圖5所示。

      圖4 仿真環(huán)境Fig.4 Simulation environment

      圖5 室內(nèi)地圖Fig.5 Indoor map

      在自主導(dǎo)航仿真環(huán)境中,仿真的過程如下:先啟動stdr_simulator仿真器;通過編寫的launch文件啟動move_base節(jié)點(diǎn)與amcl節(jié)點(diǎn);打開ROS提供的可視化調(diào)試工具rviz,在rviz中點(diǎn)擊2D Nav Goal。此時,機(jī)器人便會在創(chuàng)建的地圖上進(jìn)行全局路徑規(guī)劃,并開啟自主導(dǎo)航。當(dāng)遇到障礙物時,機(jī)器人通過局部路徑規(guī)劃進(jìn)行局部避障。其仿真結(jié)果如圖6所示。

      圖6 仿真實(shí)現(xiàn)效果Fig.6 Simulation effect

      5 結(jié)語

      充分利用ROS提供的導(dǎo)航功能包集,設(shè)計(jì)并實(shí)現(xiàn)了移動機(jī)器人自主導(dǎo)航系統(tǒng),在stdr_simulator仿真環(huán)境下對自主導(dǎo)航系統(tǒng)進(jìn)行了仿真驗(yàn)證。試驗(yàn)結(jié)果表明,基于ROS的自主導(dǎo)航系統(tǒng),可以有效地滿足移動機(jī)器人在室內(nèi)自主導(dǎo)航的需求。針對ROS的特點(diǎn),后續(xù)工作通過設(shè)計(jì)機(jī)器人驅(qū)動節(jié)點(diǎn)與激光雷達(dá)驅(qū)動節(jié)點(diǎn),便可以實(shí)現(xiàn)將自主導(dǎo)航系統(tǒng)部署在真實(shí)的移動機(jī)器人。

      猜你喜歡
      移動機(jī)器人代價插件
      移動機(jī)器人自主動態(tài)避障方法
      自編插件完善App Inventor與樂高機(jī)器人通信
      電子制作(2019年22期)2020-01-14 03:16:34
      愛的代價
      海峽姐妹(2017年12期)2018-01-31 02:12:22
      基于Twincat的移動機(jī)器人制孔系統(tǒng)
      代價
      MapWindowGIS插件機(jī)制及應(yīng)用
      成熟的代價
      基于Revit MEP的插件制作探討
      極坐標(biāo)系下移動機(jī)器人的點(diǎn)鎮(zhèn)定
      基于引導(dǎo)角的非完整移動機(jī)器人軌跡跟蹤控制
      松原市| 苍山县| 博客| 茂名市| 武夷山市| 许昌市| 彰化市| 平果县| 涞源县| 西昌市| 留坝县| 时尚| 新郑市| 五台县| 鹰潭市| 江孜县| 华宁县| 定陶县| 禄丰县| 绵竹市| 瓮安县| 洛南县| 开远市| 清远市| 砚山县| 奉节县| 唐河县| 建始县| 邵阳市| 浦北县| 保山市| 济宁市| 株洲市| 常德市| 乐平市| 阿荣旗| 乌鲁木齐市| 邵阳市| 西林县| 琼结县| 青田县|