版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
ROS-RobotOperatingSystemWhat&Why現(xiàn)狀How&Results幾個(gè)應(yīng)用例程Sum-mary綜合實(shí)例:體感遠(yuǎn)程控制1當(dāng)前1頁(yè),總共58頁(yè)。
應(yīng)用火爆的ROSROSRepositories(>50)Map:2當(dāng)前2頁(yè),總共58頁(yè)。
應(yīng)用火爆的ROSRobotics&AutomationMagazine,IEEE該雜志上設(shè)立了專(zhuān)題討論區(qū):ROSTopics下方圖片是在最新一期中ROSTopics的論文3當(dāng)前3頁(yè),總共58頁(yè)。
應(yīng)用火爆的ROS新加坡南洋理工大學(xué)(NTU)機(jī)器人相關(guān)實(shí)驗(yàn)室大家都在用,已經(jīng)形成了全民一起上的局面所見(jiàn)的應(yīng)用設(shè)備:Pioneer3AT/DXKinectAR.DroneTurtleBot4當(dāng)前4頁(yè),總共58頁(yè)。
ROS體系Main:由WillowGarage公式維護(hù)核心部分程序Universe:全球范圍的代碼,由其它個(gè)人/組織維護(hù)相關(guān)知識(shí)庫(kù)(Repository),即功能包(例如先鋒機(jī)器人的ROSARIA,Kinect的openni_tracker,語(yǔ)言識(shí)別pocketsphinx)5當(dāng)前5頁(yè),總共58頁(yè)。
幾點(diǎn)說(shuō)明雖然ROS的名字為“機(jī)器人操作系統(tǒng)”,但不是真正的操作系統(tǒng),只是說(shuō)它可以提供類(lèi)似于操作系統(tǒng)的一些服務(wù),比如底層通訊,分布式控制。對(duì)于機(jī)器人的相關(guān)功能,不使用ROS也能實(shí)現(xiàn).但ROS使得機(jī)器人軟件搭建的工作更方便,效率更高。6當(dāng)前6頁(yè),總共58頁(yè)。
ROS的程序的核心節(jié)點(diǎn)即可執(zhí)行文件由.cpp文件編譯生成而來(lái)(指C++)節(jié)點(diǎn)之間的通訊節(jié)點(diǎn)間信息的發(fā)布與接收PublishSubscribe7當(dāng)前7頁(yè),總共58頁(yè)。
節(jié)點(diǎn)將整個(gè)工程(Project)模塊化,每個(gè)節(jié)點(diǎn)即為一個(gè)模塊。每個(gè)節(jié)點(diǎn)都可以單獨(dú)維護(hù),比如現(xiàn)在有N個(gè)節(jié)點(diǎn)已經(jīng)在運(yùn)行了,用戶(hù)可以再編寫(xiě)第N+1個(gè)節(jié)點(diǎn),然后編譯,然后運(yùn)行,即有N+1個(gè)節(jié)點(diǎn)共同運(yùn)行。每個(gè)節(jié)點(diǎn)有唯一的名字節(jié)點(diǎn)之間可借助網(wǎng)絡(luò)跨主機(jī)共同運(yùn)行.8當(dāng)前8頁(yè),總共58頁(yè)。
節(jié)點(diǎn)之間的通訊發(fā)布者Publisher訂閱者Subscriber話題:發(fā)布者與訂閱者之間的通訊方式話題的名稱(chēng):Topic:發(fā)布者與訂閱者之間數(shù)據(jù)傳輸“管道”的名字,為一字符串消息:Message:傳輸數(shù)據(jù)的類(lèi)型,例如int,char,自定義類(lèi)型。9當(dāng)前9頁(yè),總共58頁(yè)。
ROS-RobotOperatingSystemWhat&Why現(xiàn)狀How&Results幾個(gè)應(yīng)用例程Sum-mary綜合實(shí)例:體感遠(yuǎn)程控制10當(dāng)前10頁(yè),總共58頁(yè)。
ROS的幾個(gè)例程Helloworld圖像先鋒機(jī)器人P3AT/P3DXKinectSkeletonVoiceNetwork通訊11當(dāng)前11頁(yè),總共58頁(yè)。
HelloWorld程序節(jié)點(diǎn):2個(gè)節(jié)點(diǎn)talker(talker.cpp):包含一個(gè)發(fā)布者節(jié)點(diǎn)listener(listener.cpp):包含一個(gè)接收者節(jié)點(diǎn)間的通訊:Topic(話題的名稱(chēng)):“chatter”Message(傳遞的數(shù)據(jù)類(lèi)型):std_msgs::StringString為ROS自定義的數(shù)據(jù)類(lèi)型String中包含唯一變量為std::string
data12當(dāng)前12頁(yè),總共58頁(yè)。
HelloWorld程序13當(dāng)前13頁(yè),總共58頁(yè)。
HelloWorld程序14當(dāng)前14頁(yè),總共58頁(yè)。
HelloWorld程序15當(dāng)前15頁(yè),總共58頁(yè)。
HelloWorld程序16當(dāng)前16頁(yè),總共58頁(yè)。
ROS的幾個(gè)例程Helloworld圖像先鋒機(jī)器人P3AT/P3DXKinectSkeletonVoiceNetwork通訊17當(dāng)前17頁(yè),總共58頁(yè)。
ROS的幾個(gè)例程:圖像圖像的發(fā)布:對(duì)應(yīng)ROS中的Publisher.以如下三個(gè)圖像源舉例:Kinect的RGB攝像頭筆記本內(nèi)置攝像頭外接USB攝像頭圖像的接收:對(duì)應(yīng)ROS中的Subscriber圖像的處理:可以與OpenCV相結(jié)合(OpenCV與ROS均屬于WillowGarage公司,所以….)用戶(hù)可以在該步驟中進(jìn)行任意的圖像處理操作(“soyoucandoeverythinginthisstep”)圖像的顯示:與OpenCV相結(jié)合18當(dāng)前18頁(yè),總共58頁(yè)。
圖像的發(fā)布:Kinect的RGB攝像頭首先對(duì)Kinect設(shè)備進(jìn)行配置,并進(jìn)行初始化由于Kinect與ROS相互支持,因此配置過(guò)程非常簡(jiǎn)便初始化Kinect的過(guò)程就是發(fā)布一些列Topic的過(guò)程,這些Topic包括:/camera/rgb/image_color:該話題即對(duì)應(yīng)于我們需要的RGB圖像數(shù)據(jù)至此圖像發(fā)布的任務(wù)完畢若想把圖像顯示出來(lái),需要進(jìn)行下一節(jié)“圖像的接收與顯示”/camera/rgb/image_raw:RGB圖像的原始數(shù)據(jù)/camera/grey:這是灰度圖像/camera/depth:這是場(chǎng)景深度圖像19當(dāng)前19頁(yè),總共58頁(yè)。
圖像的發(fā)布:Kinect的RGB攝像頭圖:Rviz中顯示出的Kinect發(fā)布的點(diǎn)云信息20當(dāng)前20頁(yè),總共58頁(yè)。
圖像的發(fā)布:筆記本內(nèi)置攝像頭對(duì)于筆記本內(nèi)置USB攝像頭的圖像獲取,要比Kinect復(fù)雜.這是由于ROS對(duì)Kinect的支持包括了圖像Topic的發(fā)布,而對(duì)于計(jì)算機(jī)的內(nèi)置/外置USB攝像頭,需要我們自己做些操作下載usb_cam包:/bosch-ros-pkg/usb_cam.git.包含如下3個(gè)文件//usb_cam.h//usb_cam.cpp:由于是在Ubuntu(12.04)系統(tǒng)下進(jìn)行的,因此里面用到了Linux的V4L2視頻驅(qū)動(dòng)與服務(wù)//usb_cam_node.cpp攝像頭的圖像在此節(jié)點(diǎn)中發(fā)布21當(dāng)前21頁(yè),總共58頁(yè)。
圖像的發(fā)布:筆記本內(nèi)置攝像頭22當(dāng)前22頁(yè),總共58頁(yè)。
圖像的發(fā)布:外置USB攝像頭也需要利用包usb_cam由于外接USB攝像頭的設(shè)備名為video1,因此將設(shè)備名的語(yǔ)句修改為除此之外,其它操作與上一節(jié)的內(nèi)置攝像頭圖像發(fā)布一致23當(dāng)前23頁(yè),總共58頁(yè)。
圖像的接收,處理與顯示ROS的圖像數(shù)據(jù)使用sensor_msgs/Image的消息格式CvBridge:屬于ROS的庫(kù),在vision_opencv(堆stack)/cv_bridge(包package)/image_geometry中.用以轉(zhuǎn)換sensor_msgs/Image至cv::Mat該部分功能:從相應(yīng)Topic中獲得sensor_msgs::Image圖像信息(接收者),并將其轉(zhuǎn)化為cv::Mat的形式,并顯示圖像。當(dāng)然,該部分首先需要圖像源來(lái)發(fā)布一個(gè)圖像Topic,例如上節(jié)的①Kinect,②內(nèi)置USB攝像頭,③外接USB攝像頭24當(dāng)前24頁(yè),總共58頁(yè)。
圖像的接收,處理與顯示25當(dāng)前25頁(yè),總共58頁(yè)。
圖像的接收,處理與顯示26當(dāng)前26頁(yè),總共58頁(yè)。
圖像的接收,處理與顯示上頁(yè)的image_converter節(jié)點(diǎn)對(duì)應(yīng)于圖像發(fā)布源為Kinect,若想要獲得外置/內(nèi)置攝像頭的圖像時(shí),將訂閱者的Topic改為“/image_raw”即可.改為因此將該節(jié)點(diǎn)修改后重新編譯并運(yùn)行,便可以繼續(xù)獲取另一個(gè)圖像源的圖像.這也體現(xiàn)了ROS的代碼維護(hù)非常靈活.27當(dāng)前27頁(yè),總共58頁(yè)。
圖像的接收,處理與顯示28當(dāng)前28頁(yè),總共58頁(yè)。
ROS的幾個(gè)例程Helloworld圖像先鋒機(jī)器人P3AT/P3DXKinectSkeletonVoiceNetwork通訊29當(dāng)前29頁(yè),總共58頁(yè)。
先鋒機(jī)器人P3AT/P3DXP3AT/P3DX的配置角速度和線速度控制量的發(fā)布控制量發(fā)布的節(jié)點(diǎn):對(duì)應(yīng)Publisher控制量的接收控制量接收的節(jié)點(diǎn):對(duì)應(yīng)Subscriber即控制機(jī)器人的運(yùn)動(dòng)30當(dāng)前30頁(yè),總共58頁(yè)。
P3AT/P3DX的配置由于P3AT是串口通訊,我的筆記本上僅有USB口,因此首先需要配置USB轉(zhuǎn)串口.安裝ROSARIAARIA是ActivMedia公司為先鋒機(jī)器人提供的驅(qū)動(dòng)與服務(wù)由于該公司也支持ROS,因此發(fā)布了ROSARIA版本31當(dāng)前31頁(yè),總共58頁(yè)。
角速度和線速度控制量的發(fā)布話題名稱(chēng)"/RosAria/cmd_vel“該話題名稱(chēng)要與下一節(jié)接收節(jié)點(diǎn)中的一致消息類(lèi)型為ROS自定義的:geometry_msgs::Twist在該Twist數(shù)據(jù)結(jié)構(gòu)中,包括了角速度控制量與線速度控制量32當(dāng)前32頁(yè),總共58頁(yè)。
角速度和線速度控制量的發(fā)布33當(dāng)前33頁(yè),總共58頁(yè)。
控制量的接收首先下載包rosaria:/amor-ros-pkg/rosaria.git該包中含有RosAria.cpp文件將該文件編譯為節(jié)點(diǎn)RosAria,并運(yùn)行該節(jié)點(diǎn)節(jié)點(diǎn)RosAria的功能:接收上節(jié)的Twist數(shù)據(jù)結(jié)構(gòu)(即訂閱者),Twist中含有角速度與線速度的數(shù)據(jù).將控制量發(fā)送給先鋒機(jī)器人,即讓機(jī)器人做相應(yīng)運(yùn)動(dòng).34當(dāng)前34頁(yè),總共58頁(yè)。
控制量的接收35當(dāng)前35頁(yè),總共58頁(yè)。
ROS的幾個(gè)例程Helloworld圖像先鋒機(jī)器人P3AT/P3DXKinectSkeleton(人體骨骼識(shí)別)VoiceNetwork通訊36當(dāng)前36頁(yè),總共58頁(yè)。
KinectSkeleton由于用到了Kinect的骨骼識(shí)別,因此首先需要安裝NiTE之后下載包openni_tracker:/ros-drivers/openni_tracker.gitopenni_tracker節(jié)點(diǎn)將用戶(hù)的骨骼位置發(fā)布(發(fā)布者)Topic為“/tf”Message為tf2_msgs::TFMessage,一個(gè)TFMessage的對(duì)象包括了一個(gè)關(guān)節(jié)的位置與姿態(tài)信息37當(dāng)前37頁(yè),總共58頁(yè)。
KinectSkeleton38當(dāng)前38頁(yè),總共58頁(yè)。
KinectSkeleton39當(dāng)前39頁(yè),總共58頁(yè)。
KinectSkeleton圖:Rviz顯示出的發(fā)布的tf的信息40當(dāng)前40頁(yè),總共58頁(yè)。
ROS的幾個(gè)例程Helloworld圖像先鋒機(jī)器人P3AT/P3DXKinectSkeletonVoiceNetwork通訊41當(dāng)前41頁(yè),總共58頁(yè)。
Voice語(yǔ)音識(shí)別語(yǔ)言發(fā)布綜合:聲音的接收與發(fā)聲42當(dāng)前42頁(yè),總共58頁(yè)。
Voice:語(yǔ)言識(shí)別包pocketsphinx的安裝與配置pocketsphinx用以語(yǔ)言識(shí)別,并發(fā)布(Publish)識(shí)別結(jié)果String識(shí)別結(jié)果的接收與顯示將pocketsphinx發(fā)布的String其獲取(Subscribe)后從屏幕上顯示43當(dāng)前43頁(yè),總共58頁(yè)。
Voice44當(dāng)前44頁(yè),總共58頁(yè)。
Voice:語(yǔ)言發(fā)布包sound_play的安裝與配置利用程序來(lái)控制發(fā)聲45當(dāng)前45頁(yè),總共58頁(yè)。
Voice:綜合:聲音的接收與發(fā)聲利用pocketsphinx對(duì)語(yǔ)言進(jìn)行識(shí)別,并以String的消息類(lèi)型來(lái)發(fā)布接收pocketsphinx發(fā)布的String將String顯示到屏幕上發(fā)聲:將String朗讀出來(lái)當(dāng)然也可以朗讀其它語(yǔ)句,即實(shí)現(xiàn)了人機(jī)之間的對(duì)話46當(dāng)前46頁(yè),總共58頁(yè)。
Voice:綜合:聲音的接收與發(fā)聲47當(dāng)前47頁(yè),總共58頁(yè)。
ROS的幾個(gè)例程Helloworld圖像先鋒機(jī)器人P3AT/P3DXKinectSkeletonVoiceNetwork通訊48當(dāng)前48頁(yè),總共58頁(yè)。
Network通訊(以?xún)芍鳈C(jī)為例)ROS的分布式特點(diǎn):對(duì)兩主機(jī)進(jìn)行簡(jiǎn)單配置后,若有相同的Topic,則節(jié)點(diǎn)之間即可跨主機(jī)利用網(wǎng)絡(luò)進(jìn)行通訊.因此網(wǎng)絡(luò)通訊/控制變?yōu)槭趾?jiǎn)單.實(shí)驗(yàn)場(chǎng)景:取名為”hal”的電腦上連接先鋒機(jī)器人P3AT,并連接Wifi取名為”marvin”的電腦(我的筆記本)沒(méi)有連接設(shè)備,但與”hal”連接了同一個(gè)Wifi目標(biāo):讓”marvin”將先鋒機(jī)器人的控制命令通過(guò)Wifi發(fā)送給”hal”,然后”hal”再把此命令發(fā)送給先鋒機(jī)器人49當(dāng)前49頁(yè),總共58頁(yè)。
Network通訊(以?xún)芍鳈C(jī)為例)50當(dāng)前50頁(yè),總共58頁(yè)。
ROS-RobotOperatingSystemWhat&Why現(xiàn)狀How&Results幾個(gè)應(yīng)用例程Sum-mary綜合實(shí)例:體感遠(yuǎn)程控制51當(dāng)前51頁(yè),總共58頁(yè)。
ROS綜合實(shí)例:實(shí)驗(yàn)?zāi)繕?biāo)通過(guò)網(wǎng)絡(luò),遠(yuǎn)程控制機(jī)器人的運(yùn)動(dòng)使用者在Kinect前移動(dòng),當(dāng)距離Kinect超過(guò)1米時(shí),讓遠(yuǎn)方的機(jī)器人做前進(jìn)運(yùn)動(dòng);當(dāng)距離Kinect小于1米時(shí),讓機(jī)器人后退;并且機(jī)器人的運(yùn)動(dòng)速度與使用著距Kinect1米的誤差成正比.將上一章“幾個(gè)應(yīng)用例程”結(jié)合在了一起.52當(dāng)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度集裝箱貨運(yùn)出口代理合同
- 2025年人教版PEP七年級(jí)科學(xué)下冊(cè)月考試卷含答案
- 二零二五年度智能家居租賃服務(wù)合同范本12篇
- 2025年牛津譯林版選擇性必修3地理下冊(cè)月考試卷含答案
- 2025年牛津上海版九年級(jí)物理下冊(cè)階段測(cè)試試卷含答案
- 浙江省永康市應(yīng)急綜合服務(wù)中心招考2名編制外人員高頻重點(diǎn)提升(共500題)附帶答案詳解
- 二零二五年度工業(yè)自動(dòng)化生產(chǎn)線安裝與培訓(xùn)合同
- 2025年粵教版七年級(jí)科學(xué)下冊(cè)月考試卷含答案
- 2025年度舞蹈學(xué)校舞蹈教師舞蹈心理輔導(dǎo)聘用合同3篇
- 2025年浙教版七年級(jí)科學(xué)下冊(cè)月考試卷含答案
- GB/T 16895.3-2024低壓電氣裝置第5-54部分:電氣設(shè)備的選擇和安裝接地配置和保護(hù)導(dǎo)體
- 2025湖北襄陽(yáng)市12345政府熱線話務(wù)員招聘5人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 電網(wǎng)調(diào)度自動(dòng)化系統(tǒng)調(diào)試報(bào)告模板
- 托福閱讀講義
- 輸電線路基礎(chǔ)知識(shí)輸電線路組成與型式
- 三年級(jí)數(shù)字加減法巧算
- GB/T 10609.3-1989技術(shù)制圖復(fù)制圖的折疊方法
- GB 4053.2-2009固定式鋼梯及平臺(tái)安全要求第2部分:鋼斜梯
- 通力電梯培訓(xùn)教材:《LCE控制系統(tǒng)課程》
- 品管圈PDCA持續(xù)質(zhì)量改進(jìn)提高靜脈血栓栓塞癥規(guī)范預(yù)防率
- 陜西省榆林市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
評(píng)論
0/150
提交評(píng)論