版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
智能網(wǎng)聯(lián)創(chuàng)新實(shí)驗(yàn)室無(wú)人駕駛系統(tǒng)編成目錄1ROS編成2ROSCPP3ROSPY4ROSLISP目錄1ROS編成2ROSCPP3ROSPY4ROSLISPPage.
4ROS編成Page.
5ROS編程Page.
6ROS概述roscpp:ROS中的C++客戶端庫(kù),執(zhí)行效率高,在ROS中使用最廣泛。rospy:ROS中的python客戶端庫(kù),使得ROS可以享有面向?qū)ο蟮哪_本語(yǔ)言所帶來(lái)的便利。rospy注重開(kāi)發(fā)效率而不是運(yùn)行效率,master,roslaunch和很多工具都是采用rospy開(kāi)發(fā)的。roslisp:用于LISP的客戶端庫(kù),它目前用于開(kāi)發(fā)規(guī)劃庫(kù)。其他實(shí)驗(yàn)庫(kù):rosjava,roslua目錄1ROS編成2ROSCPP3ROSPY4ROSLISPPage.
8ROSCPP簡(jiǎn)單的主題發(fā)布者和主題訂閱者:編寫主題發(fā)布者節(jié)點(diǎn)需要:初始化ROS系統(tǒng)廣播消息:在foo主題上發(fā)布Foo_type_msg類型的消息已指定頻率發(fā)布消息到foo主題編寫主題訂閱者需要:初始化ROS從foo主題訂閱消息Spin,然后等待消息到達(dá)當(dāng)消息到達(dá)時(shí),Msg_Callback()函數(shù)被調(diào)用Page.
9ROSCPPPage.
10ROSCPP簡(jiǎn)單的服務(wù)器端和客戶端:服務(wù)器端客戶端如何使用參數(shù)提取參數(shù)boolgetParam(conststd::string&key,parameter_type
&output_value)constparameter_typeparam(conststd::string&
param_name,parameter_type&
default_val)設(shè)置參數(shù)voidsetParam(conststd::string&key,parameter_type&v)
const刪除參數(shù)booldeleteParam(conststd::string&key)
const檢查存在性boolhasParam(conststd::string&key)
constPage.
11ROSCPPPage.
12ROSCPPPage.
13ROSCPPPage.
14ROSCPPHello
World程序節(jié)點(diǎn):
2個(gè)節(jié)點(diǎn)talker
(talker.cpp)
:
包含一個(gè)發(fā)布者節(jié)點(diǎn)listener
(listener.cpp)
:
包含一個(gè)接收者節(jié)點(diǎn)間的通訊:Topic(話題的名稱):“chatter”Message(傳遞的數(shù)據(jù)類型):std_msgs::StringString為
ROS自定義的數(shù)據(jù)類型String中包含唯一變量為
std::string
dataPage.
15ROSCPPHelloWorld程序Page.
16ROSCPPHello
World程序Page.
17ROSCPPHelloWorld程序目錄1ROS編成2ROSCPP3ROSPY4ROSLISPPage.
19ROSPYrospy是ROS的純Python客戶端庫(kù)。rospy客戶端API使Python程序員能夠快速與ROS
主題,服務(wù)和參數(shù)進(jìn)行交互。rospy的設(shè)計(jì)有利于運(yùn)行時(shí)性能的實(shí)現(xiàn)速度(即開(kāi)發(fā)者時(shí)間),以便可以在ROS內(nèi)快速對(duì)原型和測(cè)試進(jìn)行算法測(cè)試。它也非常適合非關(guān)鍵路徑代碼,例如配置和初始化代碼。許多ROS工具都是用rospy編寫的,以利用類型內(nèi)省功能。許多ROS工具,例如rostopic
和rosservice,都建立在rospy之上。Page.
20ROSPY編寫發(fā)布節(jié)點(diǎn)“Node”(節(jié)點(diǎn))是ROS術(shù)語(yǔ),表示被連接到ROS網(wǎng)絡(luò)的可執(zhí)行文件。在這里,我們將創(chuàng)建發(fā)布者("talker")節(jié)點(diǎn),這將持續(xù)的廣播一個(gè)消息。目錄更改為beginner_tutorials包,你在前面的教程中創(chuàng)建一個(gè)package(包):$roscd
beginner_tutorials我們創(chuàng)建一個(gè)“腳本”文件夾來(lái)存儲(chǔ)我們的Python腳本:$mkdir
scripts$cd
scripts那么示例腳本下載talker.py到新的腳本,目錄,使其可執(zhí)行:$wget/ros/ros_t...
_listener/talker.py$chmod+x
talker.py您可以查看和編輯文件
$
rosed
beginner_tutorials
talker.py
或者看下面。Page.
21ROSPY//
切換行號(hào)顯示#!/usr/bin/env
python#licenseremovedfor
brevityimport
rospy//每個(gè)Python
ROS
節(jié)點(diǎn)都會(huì)有這樣的聲明在頂部from
std_msgs.msg
import
String
//
std_msgs.msg導(dǎo)入,使我們可以重新使用std_msgs
/String消息類型發(fā)布。def
talker():pub
=
rospy.Publisher('chatter',
String,
queue_size=10)
//聲明節(jié)點(diǎn)發(fā)布到話題使用消息類型是String。String這里實(shí)際上是std_msgs.msg.String類。該queue_size參數(shù)是在新的ROS
hydro中,
若subscriber
(訂閱者)接收并不是足夠的快的情況下
,限制隊(duì)列消息的數(shù)量。rospy.init_node('talker',
anonymous=True)
//是非常重要的,因?yàn)樗鼤?huì)告訴rospy節(jié)點(diǎn)的名稱—直到rospy有這方面的信息,就不能開(kāi)始與ROS
Master(ROS控制器)通信。在這種情況下,您的節(jié)點(diǎn)將命名為talker.
。rate=rospy.Rate(10)
#
10hz //該行創(chuàng)建了一個(gè)Rate的對(duì)象。其為了方便實(shí)現(xiàn)sleep()方法,它提供了一個(gè)便捷的途徑在所需的速度下循環(huán)。隨著它的參數(shù)10,我們應(yīng)該預(yù)料到每秒10次經(jīng)過(guò)一個(gè)循環(huán)while
not
rospy.is_shutdown():
//這個(gè)循環(huán)是一個(gè)很標(biāo)準(zhǔn)的rospy結(jié)構(gòu):檢查rospy.is_shutdown()標(biāo)志位,然后進(jìn)入while循環(huán)。你必須察看is_shutdown()來(lái)檢查你的程序應(yīng)該退出rospy.get_time() rospy.loginfo(hello_str)hello_str
=
"hello
world
s"pub.publish(hello_str)rate.sleep()if__name
=='__main
':try:talker() //除了標(biāo)準(zhǔn)的
Python
__main
check之外,還將獲得一個(gè)rospy.ROSInterruptException.except
rospy.ROSInterruptException:pass //當(dāng)按下Ctrl-C鍵被按下或當(dāng)節(jié)點(diǎn)關(guān)閉時(shí),可以通過(guò)rospy.sleep()和rospy.Rate.sleep()方法關(guān)閉節(jié)點(diǎn)。這引發(fā)異常的原因是為了在執(zhí)行代碼
sleep()
后繼續(xù)執(zhí)行。目錄1ROS編成2ROSCPP3
ROSPY 4ROSLISPPage.
23ROSLISPRoslisp是用于在慣用Common
Lisp中編寫ROS節(jié)點(diǎn)的客戶端庫(kù)。該庫(kù)的編寫是為了支持易用性,快速編寫節(jié)點(diǎn)腳本以
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《尊重他人是我的需要》課件
- 2024屆江蘇省興化市高三上學(xué)期期末考試歷史試題(解析版)
- 單位管理制度集粹匯編職工管理篇十篇
- 單位管理制度匯編大合集員工管理篇十篇
- 單位管理制度分享匯編【人員管理篇】
- 單位管理制度呈現(xiàn)合集【人員管理篇】
- 2017-2021年安徽專升本考試英語(yǔ)真題卷
- 《雨點(diǎn)兒》教案(15篇)
- 《行政職業(yè)能力測(cè)驗(yàn)》陜西省咸陽(yáng)市禮泉縣2023年公務(wù)員考試深度預(yù)測(cè)試卷含解析
- 《電工復(fù)習(xí)題》課件
- 博物館保安服務(wù)投標(biāo)方案(技術(shù)方案)
- 超星爾雅學(xué)習(xí)通《孫子兵法與執(zhí)政藝術(shù)(浙江大學(xué))》2024章節(jié)測(cè)試含答案
- 陜西省幼兒教師通識(shí)性知識(shí)大賽考試題庫(kù)(含答案)
- 2024年北京控股集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 海域租賃協(xié)議
- 私立學(xué)校招生工作總結(jié)
- (完整word版)體檢報(bào)告單模版
- 銑刨機(jī)操作規(guī)程范文
- 鋼鐵行業(yè)用電分析
- 考研的重要性和必要性
- 掘進(jìn)機(jī)維修培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論