最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

《ROS機器人編程》第十章_移動機器人

2023-06-27 11:33 作者:京天博特  | 我要投稿

更新!整理出《ROS機器人編程》第十章ppt講義版,請對照書籍P278-311頁學(xué)習(xí)。

聽課不停學(xué),每周二,周五更新,歡迎追更!

【說明】ROS支持的機器人可以在相關(guān)wiki(http://robots.ros.org/)上找到。有大約180 種。其中一些包括由個人開發(fā)者公開發(fā)布的自制機器人,但是如果考慮到這是由單一系統(tǒng)支持的機器人的話,卻是不少的數(shù)量。

其中最著名的是Willow garage開發(fā)的PR2和 TurtleBot。兩者都是Willow garage或Open Robotics(前稱OSRF)參與開發(fā)的機器人,也是ROS的標(biāo)準(zhǔn)平臺。在本章中,我們將重點討論這兩者中以普及型為目的開發(fā)的 TurtleBot3機器人。

【說明】TurtleBot是ROS的標(biāo)準(zhǔn)平臺機器人。這里的turtle來源于1967年開發(fā)的烏龜機器人。這款機器人是為了用教育計算機編程語言Logo控制實際機器人而開發(fā)的。另外,在 ROS基礎(chǔ)教程中首先出現(xiàn)的turtlesim節(jié)點是一個模仿Logo turtle程序的命令體系而制作的程序。如圖所示,烏龜圖標(biāo)甚至成為了ROS的象征。不僅如此,ROS標(biāo)志中使用的9個點也來自龜背殼。源于Logo的烏龜?shù)腡urtlebot,旨在通過TurtleBot向ROS新手輕松教授ROS的用法(這與Logo的目的類似,Logo的目的是利用Logo語言輕松教授計算 機編程語言)。從第一代TurtleBot開始,近10年來,TurtleBot已經(jīng)成為開發(fā)者和學(xué)生使用最多的ROS標(biāo)準(zhǔn)平臺。購買Turtlebot請咨詢:027-87522899,027-87522877


【說明】為了普及ROS,以iRobot公司的基于Roombar的研究機器人Create為基礎(chǔ)而開發(fā)。它于2010年開發(fā),自2011年起開始銷售。然后在2012年,Yujin Robot公司開發(fā)出了以基于 iCLEBO的研究機器人Kobuki為基礎(chǔ)的TurtleBot2。在2017年開發(fā)的TurtleBot3彌補了TurtleBot1和TurtleBot2中的不足點,且采納了用戶們的新的需求。TurtleBot3的驅(qū)動部分采用了ROBOTIS公司的智能舵機Dynamixel。

【說明】TurtleBot3是一個小型、低成本、可編程的基于ROS的移動機器人,其目的是用于教育、科研、愛好者作品和產(chǎn)品原型。TurtleBot3的目標(biāo)是在不犧牲功能和品質(zhì)的前提下大幅縮小平臺的尺寸且降低價格,同時將機器人組件根據(jù)用戶的需求更改或擴展。根據(jù)用戶如何選擇部件,如機械部件、計算機和傳感器,TurtleBot3可以通過各種方法進(jìn)行定制。此外,TurtleBot3采用了比現(xiàn)有的PC更經(jīng)濟、更小巧,并且適合嵌入式系統(tǒng)的SBC(單 板計算機),還應(yīng)用了距離傳感器和3D打印等最新技術(shù)。

【說明】TurtleBot3的基本組件有:用于驅(qū)動的舵機、用于運行ROS的SBC、用于SLAM和 導(dǎo)航(Navigation)的傳感器、可變形的結(jié)構(gòu)件、用作中層控制器的嵌入式控制器 OpenCR、兼容輪胎和履帶的鏈輪,最后還有11.1V的鋰聚合物電池。

【說明】Waffle-PI型號的特點是:其形狀更易于裝載物體、采用扭矩更大的舵機、使用360度距離傳感器LDS(Laser Distance Sensor),Waffle Pi的單板機采用了與Burger相同的Raspberry Pi,并且相機采用了Raspberry Pi Camera,因此大大提高了性價比。


【說明】此外,TurtleBot的所有硬件結(jié)構(gòu)信息都已在云共享三維CAD Onshape中公開, Onshape可供多人同時使用智能手機、平板電腦以及網(wǎng)頁瀏覽器查看 。您可以在網(wǎng)頁瀏覽器中查看TurtleBot3的每個組件,也可以把想修改的零件下載到您的資源庫,通過修改設(shè)計出自己想要的零件。也可以下載相關(guān)的STL文件后, 用3D打印機打出零件。每個型號的公開文件可以在TurtleBot3的官方wiki的附錄提供的Open Source項目中找到。

【說明】TurtleBot3的軟件由OpenCR控制板的固件(FW)和4個ROS功能包組成。正如在第 9章嵌入式系統(tǒng)中的說明,作為TurtleBot3的核心,OpenCR的固件還被稱為turtlebot3_ core。固件將OpenCR作為中間控制器,讀取TurtleBot3的驅(qū)動舵機Dynamixel的編碼器值來估算機器人的位置,或者根據(jù)上位軟件的命令來控制速度。另外,固件還從安裝在 OpenCR上的3軸加速度和3軸陀螺儀傳感器獲得加速度和角加速度,以此估計機器人的方向,此外還測量電池電壓并將其以話題傳輸。

TurtleBot3的ROS功能包包括turtlebot3、turtlebot3_msgs、turtlebot3_simulations 和turtlebot3_applications。其中,turtlebot3功能包包括TurtleBot3的機器人模型、 SLAM和導(dǎo)航功能包、遙控功能包以及與行駛相關(guān)的bringup功能包。另外,TurtleBot3的消息文件的集合turtlebot3_msgs、仿真功能包的集合turtlebot3_simulations以及應(yīng)用程序的集合turtlebot3_applications構(gòu)成了TurtleBot3的ROS功能包。

【說明】如圖所示,TurtleBot3的開發(fā)環(huán)境可以分為遠(yuǎn)程PC(運行遠(yuǎn)程控制、SLAM和導(dǎo)航功能包)和TurtleBot PC(控制實際機器人且搜集傳感器信息)。這兩種PC在開發(fā)環(huán)境上都非常相似,但是它們使用的功能包根據(jù)PC的性能和用途進(jìn)行了不同的配置。為了搭建一個基本的開發(fā)環(huán)境,兩臺PC都要安裝Linux(Ubuntu 16.04兼容的Linux Mint和 Ubuntu MATE)作為基本操作系統(tǒng),且ROS安裝Kinetic Kame版本即可。有關(guān)詳細(xì)信息,請參閱第3章“搭建ROS開發(fā)環(huán)境”。有關(guān)PC、TurtleBot和OpenCR的信息,請參閱以下地址。

■?http://turtlebot3.robotis.com

如果已經(jīng)安裝了Linux和ROS,則可以安裝與TurtleBot3相關(guān)的軟件。所有這些安裝方法都在上面提到的維基地址中描述,但是這里我們簡單地總結(jié)一下,只解釋一下安裝方 法。在控制TurtleBot3機器人的用戶PC(在這里我們稱為遠(yuǎn)程PC)上,如下所示安裝相關(guān)的依賴包和TurtleBot3功能包。但是,我們已經(jīng)排除了包含本書中沒有提到的多種示例 的turtlebot3_applications功能包。

【說明】如果已經(jīng)安裝了所有軟件,則下一個最重要的配置是如圖所示的網(wǎng)絡(luò)設(shè)置。有關(guān)如何更改ROS_HOSTNAME和ROS_MASTER_URI設(shè)置的詳細(xì)說明,請參閱第3.2節(jié)和第 8.3節(jié),本節(jié)中只了解設(shè)置的順序。作為參考,TurtleBot3將用戶的個人臺式機和筆記本電腦稱為遠(yuǎn)程PC,這臺PC將擔(dān)任運行roscore的主節(jié)點,會負(fù)責(zé)遠(yuǎn)程控制、SLAM、導(dǎo)航等上層控制。與此PC配對的TurtleBot3配備了SBC,負(fù)責(zé)機器人行駛和傳感器信息采集。以下遠(yuǎn)程控制設(shè)置示例是在遠(yuǎn)程PC上運行ROS Master時的示例。

【說明】讓我們來看一看Turtlebot的遠(yuǎn)程控制。幾乎所有可連接到PC的設(shè)備,如鍵盤、藍(lán)牙遙控器RC-100B、PS3游戲桿、XBOX 360游戲桿、Wii遙控器、Nunchuk、Android應(yīng)用程序、LEAP Motion, 和Myo等都可以用于遠(yuǎn)程遙控TurtleBot3。更多信息可以在 “http://turtlebot3.robotis.com/”的teleoperation項目中查看。在本節(jié)中,我們將以最易于使用的鍵盤和通常用于機器人控制的PS3操縱桿進(jìn)行說明。

【說明】我們將利用RViz來可視化機器人的狀態(tài)。為了確定要使用的模型,先使用export命令將當(dāng)前的TurtleBot3的型號指定為Burger。如果是Waffle Pi,您可以將其指定為’waffle_pi’,而不是’burger’。然后運行turtlebot3_model. launch啟動文件,則RViz將會被運行。

如圖所示,當(dāng)RViz被運行時,TurtleBot3 Burger的模型和各關(guān)節(jié)的tf會以RGB 坐標(biāo)系的形式顯示在畫面中央。而且,可以看到安裝在機器人上的360度距離傳感器LDS 接收距離值,并將障礙物顯示為紅色。


如上面所述,對TurtleBot3的控制需要在遠(yuǎn)程PC和TurtleBot3 SBC的計算機上來回操作,是比較麻煩的方式。為了解決這個問題,我想建議一種使用SSH來遠(yuǎn)程訪問 TurtleBot3 SBC的方法。這使您可以在遠(yuǎn)程PC上執(zhí)行所有的命令。從遠(yuǎn)程PC遠(yuǎn)程連接到 TurtleBot3 SBC的操作如下。有關(guān)更多信息,請參閱有關(guān)SSH的說明。

【說明】TurtleBot3提供虛擬仿真開發(fā)環(huán)境,即使沒有機器人硬件,也可以通過仿真軟件里的虛擬機器人進(jìn)行編程和仿真。有兩種方法可以做到這一點,一種是使用ROS的3D可視化工具RViz,另一種是使用3D機器人仿真器Gazebo。

在本節(jié)中,我們將了解第一個方法RViz的用法。即使您沒有TurtleBot3的硬件,您也可以遙控TurtleBot3,還可以測試SLAM和導(dǎo)航,因此是非常有用的方法。具體方法是使用turtlebot3_simulations元功能包。要在這個元功能包中使用虛擬仿真,首先需要安裝 turtlebot3_fake功能包。這在“10.5. TurtleBot3開發(fā)環(huán)境”中做了說明。如果已經(jīng)安裝了它,請轉(zhuǎn)到下面的內(nèi)容。

【說明】現(xiàn)在,讓我們再次使用turtlebot3_teleop_keyboard節(jié)點移動虛擬TurtleBot3。如圖所示,與之前不同,可以看到紅色箭頭會沿著機器人的移動軌跡顯示。這個測位 (odometry)信息對于移動機器人來說是表示自身位置和方向的非常基本的信息。至此,我們簡單查看了測位(odometry)信息是否正確顯示。

TF話題包含TurtleBot3組件的相對坐標(biāo)信息,它可以像之前的操作一樣用rostopic命令確認(rèn),但是我們下面將用RViz進(jìn)行確認(rèn),就像查看odom的方式一樣。并用rqt_tf_tree 檢查層次結(jié)構(gòu)。

【說明】至此,我們介紹了TurtleBot3功能包中的兩種仿真工具。一種是使用ROS的3D可視化工具RViz,另一種是使用3D機器人仿真器Gazebo。仿真可以在逼近實際的機器人和場景中完成,而不需要實際的機器人,所以對于需要虛擬仿真的用戶來說,這將是一個很好的工具。

【說明】Turtlebot支持三種類型的仿真(stage、stdr、gazebo)。

當(dāng)希望用虛擬機器人進(jìn)行各種仿真時,請參考以下相關(guān)wiki。

http://wiki.ros.org /turtlebot_stdr?

http://wiki.ros.org /turtlebot_gazebo?

http://wiki.ros.org /turtlebot_stage

歡迎點擊關(guān)注京天機器人專營店https://item.jd.com/10055225794502.html#crumb-wrap


原創(chuàng)聲明:本篇文檔為原創(chuàng)文檔。歡迎轉(zhuǎn)發(fā)轉(zhuǎn)載,請注明出處。


本書中使用的開源代碼會根據(jù)讀者使用的時間,可能會有版本變化,因此在運行時可能會有相異的結(jié)果。


本次文稿編輯在原版上增加了開源軟件列表,開源硬件列表,開源資源以及相關(guān)社區(qū)等鏈接,希望大家在學(xué)習(xí)ppt的同時可以參考原版書籍配合電腦實戰(zhàn),會更有幫助。


微信搜一搜:京天機器人。獲取更多章節(jié)ppt講義


《ROS機器人編程》第十章_移動機器人的評論 (共 條)

分享到微博請遵守國家法律
那曲县| 洛阳市| 四子王旗| 霸州市| 灵璧县| 紫云| 南靖县| 左贡县| 育儿| 县级市| 永城市| 石河子市| 嘉善县| 桐乡市| 启东市| 康马县| 马尔康县| 杭锦后旗| 华蓥市| 云龙县| 兰西县| 茂名市| 富宁县| 始兴县| 崇左市| 莒南县| 河曲县| 恩施市| 乐安县| 镇巴县| 神木县| 谢通门县| 肃南| 达州市| 石首市| 安庆市| 武山县| 上犹县| 天气| 沅江市| 开化县|