




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
智能網聯創新實驗室無人駕駛系統編成目錄1ROS編成2ROSCPP3ROSPY4ROSLISP目錄1ROS編成2ROSCPP3ROSPY4ROSLISPPage.
4ROS編成Page.
5ROS編程Page.
6ROS概述roscpp:ROS中的C++客戶端庫,執行效率高,在ROS中使用最廣泛。rospy:ROS中的python客戶端庫,使得ROS可以享有面向對象的腳本語言所帶來的便利。rospy注重開發效率而不是運行效率,master,roslaunch和很多工具都是采用rospy開發的。roslisp:用于LISP的客戶端庫,它目前用于開發規劃庫。其他實驗庫:rosjava,roslua目錄1ROS編成2ROSCPP3ROSPY4ROSLISPPage.
8ROSCPP簡單的主題發布者和主題訂閱者:編寫主題發布者節點需要:初始化ROS系統廣播消息:在foo主題上發布Foo_type_msg類型的消息已指定頻率發布消息到foo主題編寫主題訂閱者需要:初始化ROS從foo主題訂閱消息Spin,然后等待消息到達當消息到達時,Msg_Callback()函數被調用Page.
9ROSCPPPage.
10ROSCPP簡單的服務器端和客戶端:服務器端客戶端如何使用參數提取參數boolgetParam(conststd::string&key,parameter_type
&output_value)constparameter_typeparam(conststd::string&
param_name,parameter_type&
default_val)設置參數voidsetParam(conststd::string&key,parameter_type&v)
const刪除參數booldeleteParam(conststd::string&key)
const檢查存在性boolhasParam(conststd::string&key)
constPage.
11ROSCPPPage.
12ROSCPPPage.
13ROSCPPPage.
14ROSCPPHello
World程序節點:
2個節點talker
(talker.cpp)
:
包含一個發布者節點listener
(listener.cpp)
:
包含一個接收者節點間的通訊:Topic(話題的名稱):“chatter”Message(傳遞的數據類型):std_msgs::StringString為
ROS自定義的數據類型String中包含唯一變量為
std::string
dataPage.
15ROSCPPHelloWorld程序Page.
16ROSCPPHello
World程序Page.
17ROSCPPHelloWorld程序目錄1ROS編成2ROSCPP3ROSPY4ROSLISPPage.
19ROSPYrospy是ROS的純Python客戶端庫。rospy客戶端API使Python程序員能夠快速與ROS
主題,服務和參數進行交互。rospy的設計有利于運行時性能的實現速度(即開發者時間),以便可以在ROS內快速對原型和測試進行算法測試。它也非常適合非關鍵路徑代碼,例如配置和初始化代碼。許多ROS工具都是用rospy編寫的,以利用類型內省功能。許多ROS工具,例如rostopic
和rosservice,都建立在rospy之上。Page.
20ROSPY編寫發布節點“Node”(節點)是ROS術語,表示被連接到ROS網絡的可執行文件。在這里,我們將創建發布者("talker")節點,這將持續的廣播一個消息。目錄更改為beginner_tutorials包,你在前面的教程中創建一個package(包):$roscd
beginner_tutorials我們創建一個“腳本”文件夾來存儲我們的Python腳本:$mkdir
scripts$cd
scripts那么示例腳本下載talker.py到新的腳本,目錄,使其可執行:$wget/ros/ros_t...
_listener/talker.py$chmod+x
talker.py您可以查看和編輯文件
$
rosed
beginner_tutorials
talker.py
或者看下面。Page.
21ROSPY//
切換行號顯示#!/usr/bin/env
python#licenseremovedfor
brevityimport
rospy//每個Python
ROS
節點都會有這樣的聲明在頂部from
std_msgs.msg
import
String
//
std_msgs.msg導入,使我們可以重新使用std_msgs
/String消息類型發布。def
talker():pub
=
rospy.Publisher('chatter',
String,
queue_size=10)
//聲明節點發布到話題使用消息類型是String。String這里實際上是std_msgs.msg.String類。該queue_size參數是在新的ROS
hydro中,
若subscriber
(訂閱者)接收并不是足夠的快的情況下
,限制隊列消息的數量。rospy.init_node('talker',
anonymous=True)
//是非常重要的,因為它會告訴rospy節點的名稱—直到rospy有這方面的信息,就不能開始與ROS
Master(ROS控制器)通信。在這種情況下,您的節點將命名為talker.
。rate=rospy.Rate(10)
#
10hz //該行創建了一個Rate的對象。其為了方便實現sleep()方法,它提供了一個便捷的途徑在所需的速度下循環。隨著它的參數10,我們應該預料到每秒10次經過一個循環while
not
rospy.is_shutdown():
//這個循環是一個很標準的rospy結構:檢查rospy.is_shutdown()標志位,然后進入while循環。你必須察看is_shutdown()來檢查你的程序應該退出rospy.get_time() rospy.loginfo(hello_str)hello_str
=
"hello
world
s"pub.publish(hello_str)rate.sleep()if__name
=='__main
':try:talker() //除了標準的
Python
__main
check之外,還將獲得一個rospy.ROSInterruptException.except
rospy.ROSInterruptException:pass //當按下Ctrl-C鍵被按下或當節點關閉時,可以通過rospy.sleep()和rospy.Rate.sleep()方法關閉節點。這引發異常的原因是為了在執行代碼
sleep()
后繼續執行。目錄1ROS編成2ROSCPP3
ROSPY 4ROSLISPPage.
23ROSLISPRoslisp是用于在慣用Common
Lisp中編寫ROS節點的客戶端庫。該庫的編寫是為了支持易用性,快速編寫節點腳本以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 郵政快遞賠償標準調整補充協議
- 長期承租設備協議書
- 贍養問題調解協議書
- 隧道支護承包協議書
- 鄰居快遞賠償協議書
- 車廂買賣合同協議書
- 酒店雙方諒解協議書
- 資產收購居間協議書
- 道路清洗保潔協議書
- 寫字樓合同解除協議書
- 密封條范文模板(A4打印版)
- 西方文明史導論智慧樹知到期末考試答案2024年
- JBT 11699-2013 高處作業吊籃安裝、拆卸、使用技術規程
- IATF16949質量管理體系過程風險和機遇評估分析表
- 知識星球行業報告
- 【課件】第15課+權力與理性-17、18世紀西方美術+課件-高中美術人教版(2019)美術鑒賞
- 光電技術(第5版) 習題解答 王慶有
- 倉庫貨物先進先出管理培訓教程培訓課件
- 什么是數學:對思想和方法的基本研究
- 家長會課件:初三迎接中考家長會課件
- 金屬非金屬地下礦山安全避險“六大系統”課件
評論
0/150
提交評論