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

?

基于ROS和Gazebo的Hector四旋翼仿真

2020-05-13 14:15:23滕步煒
電腦知識(shí)與技術(shù) 2020年8期

摘要:本項(xiàng)目重點(diǎn)研究依賴于開(kāi)源機(jī)器人操作系統(tǒng)ROS平臺(tái),在3D動(dòng)態(tài)模擬器軟件Gazebo中,通過(guò)鍵盤或Xbox360控制模擬UAV Hector Quadrotor從而實(shí)現(xiàn)四旋翼室內(nèi)與室外的仿真飛行。

關(guān)鍵詞:ROS; Gazebo;Hector;Quadrotor

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2020)08-0259-02

新手在練習(xí)四旋翼飛行器控制飛行時(shí),經(jīng)常會(huì)因技術(shù)不夠熟練而出現(xiàn)炸機(jī)的現(xiàn)象,損壞飛行器硬件造成不必要的損失。通過(guò)采用實(shí)時(shí)仿真的形式,降低練習(xí)時(shí)的損耗。本項(xiàng)目重點(diǎn)研究hector_quadrotor飛行器自主導(dǎo)航,避障和路徑規(guī)劃。軟件依賴于機(jī)器人操作系統(tǒng)(ROS)軟件。ROS提供硬件抽象,設(shè)備驅(qū)動(dòng),庫(kù),可視化工具,消息傳遞,包管理等。Gazebo提供精確和高效地模擬復(fù)雜室內(nèi)和室外環(huán)境中飛行器的能力[1]。

在ROS環(huán)境下,無(wú)人機(jī)的仿真有三種實(shí)現(xiàn)方式,一種是mav-ros配合sitl的仿真,其次是hector_quadrotor ros package,第三種是ETH新出的一個(gè)gazebo環(huán)境仿真包。在上述三種方式中,sitl的設(shè)置比較煩瑣,無(wú)人機(jī)的控制主要通過(guò)指令實(shí)現(xiàn)。hec-tor_quadrotor開(kāi)發(fā)比較完善,不僅可以使用xbox作為飛機(jī)的遙控器,而且還可以使用鍵盤對(duì)無(wú)人機(jī)進(jìn)行控制。rotorS是新出的包,里邊給}H了幾種商用的飛機(jī)模型,控制指令是ros meassage[2]。本文重點(diǎn)介紹Hector Quadrotor四旋翼控制模擬的實(shí)現(xiàn)方法。

Hector Quadrotor是用于ROS Gazebo環(huán)境中的模擬四旋翼UAV ,Hector Quadrotor綜合功能包里包含了UAV的URDF描述建模、飛行控制以及在Gazebo中運(yùn)行四旋翼飛行器仿真的啟動(dòng)文件等。

Hector Quadrotor有兩個(gè)仿真應(yīng)用場(chǎng)景,分別為室內(nèi)和室外,本文以此分為兩部分闡述在Gazebo中模擬Hector四旋翼飛行器。

1 準(zhǔn)備工作

仿真之前需要安裝Hector Quadrotor功能包,以安裝Hector Quadroter的ROS Indigo版本,執(zhí)行命令

$ sudo apt-get update

$sudo apt-get install ros-indigo-hector-quadrotor-demo

大量的ROS功能包被下載并且安裝,hector_quadrotor_demo就是下載的主要hector_quadrotor包。其中包與四旋翼無(wú)人機(jī)系統(tǒng)建模,控制及仿真相關(guān)的包。Hector_quadrotor_description提供了通用的四旋翼URDF模型以及各種各樣的傳感器。Hector_quadrotor_gazebo包含了在Gazebo中運(yùn)行四旋翼模型所需要的launch file以及依賴信息。Hector_quadrotor_teleop包含一個(gè)允許使用gamepad控制旋翼的節(jié)點(diǎn)。Hector_quadrotor_gazebo_plugins提供在Gazebo仿真環(huán)境中進(jìn)行四旋翼仿真的所需的特定的plugins。[3]

2 在Gazebo中啟動(dòng)Hector四旋翼飛行器

在仿真之前,首先在終端窗口執(zhí)行$ roscore命令啟動(dòng)ros-master。

2.1 室外飛行Hector

室外飛行的軟件已經(jīng)包含在Hector_quadrotor中,鍵入以下命令啟動(dòng)室外仿真:

$ roslaunch hector_quadrotor_demo outdoor_flight_gazebo.launch

命令執(zhí)行完成后,會(huì)在Gazebo中加載一個(gè)滾動(dòng)景觀環(huán)境,并生成一個(gè)Hector Quadrotor模型。同時(shí)啟動(dòng)一個(gè)rvIz節(jié)點(diǎn),為四旋翼飛行器戶外飛行配置。大量的飛行坐標(biāo)和控制參數(shù)信息也會(huì)初始化并加載給Parameter Server。Quadrotor_propulsion插件的四旋翼推理模型參數(shù)和quadrotor_aerodvnamics插件的阻力模型參數(shù)會(huì)顯示出來(lái)。然后出現(xiàn)physics dynamic reconfig-ure ready。

2.2 室內(nèi)飛行Hector

在hector_quadrotor綜合功能包里包含四旋翼飛行器室內(nèi)的SLAM例程軟件,鍵入以下命令啟動(dòng)仿真:

$ roslaunch hector_quadrotor_demo indoor_slam_gazebo.launch

仿真啟動(dòng)之后,將在rviz和Gazebo中顯示W(wǎng)illow Garage辦公室,Hector開(kāi)始位于室內(nèi)房間的地板上。此時(shí)通過(guò)執(zhí)行hec-tor_quadrotor_teleop xbox_controller.launch控制Hector的飛行。

3 控制Hector四旋翼的飛行

在Gazeboo中啟動(dòng)HectorQuadrotor后,四旋翼飛行器出現(xiàn)在模擬場(chǎng)景的地面上,準(zhǔn)備起飛。在它的主電機(jī)座上有一個(gè)紅色標(biāo)記指示了它的前進(jìn)方向。要實(shí)現(xiàn)對(duì)Hec-tor Quadrotor的控制飛行,可以通過(guò)Xbox 360控制器或者計(jì)算機(jī)的鍵盤。

3.1 Xbox360控制四旋翼飛行

要將仿真四旋翼飛行器飛行起來(lái),必須啟動(dòng)Xbox 360控制器的操縱桿控制器軟件。打開(kāi)另一個(gè)終端窗口,通過(guò)hec-tor_quadrotor_teleop功能包中的啟動(dòng)文件來(lái)啟動(dòng)操縱桿控制器:

$ roslaunch hector_quadrotor_teleop xbox_controller.launch

這個(gè)過(guò)程會(huì)啟動(dòng)一個(gè)j oy_node節(jié)點(diǎn),用來(lái)處理Xbox 360控制器上左操縱桿和右操縱桿的操作輸入。此節(jié)點(diǎn)發(fā)布的消息包含操縱桿軸和按鈕的當(dāng)前狀態(tài)。而quadrotor_teleop節(jié)點(diǎn)會(huì)訂閱這些信息,然后在主題cmd_vel上發(fā)布提供了四旋翼飛行器飛行的速度和方向的消息。用操縱桿控制飛行器在模擬的戶外環(huán)境飛行。飛行員的視圖可以在rviz屏幕左下角的攝像頭圖像視圖中看到。

3.2 鍵盤控制四旋翼飛行

執(zhí)行命令git clone https://github.com/ros-teleop/teleop_twist_keyboardT載ROS Python包,放在建立的工作空間并編譯。使用命令

$ rosrun teleop_twist_keyboardteleop_twist_keyboard.py運(yùn)行該節(jié)點(diǎn)。注意首先按t建讓飛機(jī)飛起來(lái)才能進(jìn)行其他控制,否則現(xiàn)象是控制鍵飛機(jī)沒(méi)有反應(yīng)。鼠標(biāo)指針必須位于teleop_twist_keyboard終端窗口,否則鍵盤無(wú)法控制模擬四旋翼飛行。

3.3 rqt_graph工具查看節(jié)點(diǎn)和主題之間的交互關(guān)系

在終端窗口執(zhí)行命令$ros run rqt_graph rqt_graph,rqLgrph工具中顯示活動(dòng)節(jié)點(diǎn)和主題之間的交互關(guān)系。圖中橢圓形框表示當(dāng)前活動(dòng)的節(jié)點(diǎn),矩形框表示主題,節(jié)點(diǎn)發(fā)布消息到主題用箭頭指向表示。

4 結(jié)論

在實(shí)踐環(huán)節(jié)中引入Hector四旋翼仿真,從室內(nèi)和室外兩類不同環(huán)境下模擬四旋翼飛行器的飛行。極大限度降低了初學(xué)者對(duì)四旋翼硬件耗材的依賴,降低了新手訓(xùn)練時(shí)的經(jīng)濟(jì)成本。

參考文獻(xiàn):

[1] Wil Selby.ros integration[EB/OL].https://www.wilselby.com/re-search/ros-integration/,2017.

[2] Carol Fairchild and Thomas L.Harman.《ROS /robotics By Ex-ample》[M]。Making a Robot Fly[C].北京:機(jī)械工業(yè)出版社,2018.

【通聯(lián)編輯:光文玲】

基金項(xiàng)目:大學(xué)生創(chuàng)新、創(chuàng)業(yè)實(shí)踐項(xiàng)目(項(xiàng)目編號(hào):201911050032T)

作者簡(jiǎn)介:滕步煒(1974-),男,計(jì)算機(jī)網(wǎng)絡(luò)控制工程碩士,副教授,主要研究方向?yàn)橛?jì)算機(jī)技術(shù)領(lǐng)域的教學(xué)與科研工作。

尉氏县| 中牟县| 鸡泽县| 玉屏| 天水市| 甘孜县| 沐川县| 石台县| 且末县| 左云县| 井冈山市| 东乡族自治县| 大足县| 海晏县| 清水县| 浪卡子县| 高阳县| 黄浦区| 开封市| 济源市| 兴国县| 乌什县| 蓬安县| 德清县| 阿荣旗| 若羌县| 仁化县| 绥中县| 子长县| 白山市| 茂名市| 苗栗市| 铁岭县| 江陵县| 陇南市| 松滋市| 蓬溪县| 古浪县| 丁青县| 股票| 灵寿县|