《鴻蒙機(jī)器人編程》2-實(shí)踐課 - 運(yùn)行第一個(gè)ROS程序-實(shí)訓(xùn)指南_第1頁
《鴻蒙機(jī)器人編程》2-實(shí)踐課 - 運(yùn)行第一個(gè)ROS程序-實(shí)訓(xùn)指南_第2頁
《鴻蒙機(jī)器人編程》2-實(shí)踐課 - 運(yùn)行第一個(gè)ROS程序-實(shí)訓(xùn)指南_第3頁
《鴻蒙機(jī)器人編程》2-實(shí)踐課 - 運(yùn)行第一個(gè)ROS程序-實(shí)訓(xùn)指南_第4頁
《鴻蒙機(jī)器人編程》2-實(shí)踐課 - 運(yùn)行第一個(gè)ROS程序-實(shí)訓(xùn)指南_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

ROS星火計(jì)劃 實(shí)踐課-運(yùn)行第一個(gè)ROS程式 NXROBO運(yùn)行第一個(gè)ROS程序課程內(nèi)容: 本節(jié)將啟動(dòng)turtlesim小烏龜程序,通過本章內(nèi)容,可了解啟動(dòng)ROS程序的命令,以及熟悉啟動(dòng)ROS程序的流程。教學(xué)目標(biāo):熟悉啟動(dòng)ROS程序流程掌握ROS常用命令掌握rqt工具的使用一.turtlesim小烏龜仿真程序這是一個(gè)經(jīng)常被用來展示ROS程序特點(diǎn)的小例子。安裝ROS通常就已經(jīng)自帶了turtlesim這個(gè)程序,如果沒有,可通過下面的命令進(jìn)行安裝:$sudoapt-getinstallros-noetic-turtlesim啟動(dòng)ROS管理器:roscore打開一個(gè)終端,輸入以下命令:$roscoreroscore將啟動(dòng):aROS

MasteraROS

ParameterServera

rosout

loggingnode運(yùn)行功能包:rosrun打開一個(gè)新的終端,并輸入以下命令啟動(dòng)turtlesimdemo。$rosrunturtlesimturtlesim_node(語法:rosrun<package><executable>)turtlesim就是一個(gè)功能包,這個(gè)功能包下面會(huì)有一個(gè)可執(zhí)行的程序就是這個(gè)可執(zhí)行程序的名字??蓤?zhí)行程序的文件名就是turtlesimnode。所以這句話的意思就是rosrun就是說我要啟動(dòng)啟動(dòng)turtlesim這個(gè)包下面的node節(jié)點(diǎn)。查看話題:rostopiclist顯示ROS節(jié)點(diǎn)所發(fā)布的所有話題。$rostopiclist我們把這個(gè)當(dāng)前啟動(dòng)起來機(jī)械系統(tǒng)的這個(gè)話題用rostopiclist這樣一個(gè)命令列出來。發(fā)送單個(gè)話題:rostopicpubpub就是要用這個(gè)工具來去發(fā)送消息,所以這個(gè)pub就是publish的縮寫,就是發(fā)送消息。目的:讓海龜以0.2m/s爬行。方法:發(fā)布cmd_velmessage給/turtle1/cmd_vel的x:完整命令$rostopicpub/turtle1/cmd_velgeometry_msgs/Twist'{linear:{x:0.2,y:0,z:0},angular:{x:0,y:0,z:0}}'簡(jiǎn)化命令$rostopicpub/turtle1/cmd_velgeometry_msgs/Twist'{linear:{x:0.2}}'速度消息分成兩部分一部分是線速度,就是linear;angular是角速度。我們用xyz這三個(gè)軸上的向量來去描述速度。x這個(gè)朝向的話,就是他正前方速度是0.2米每秒。在他側(cè)向沒有速度。在z軸就是在垂直方向也是沒有速度的。那么這樣的話就描述了線速度。角速度同樣就是說繞著這個(gè)小烏龜?shù)哪膫€(gè)軸來去轉(zhuǎn)動(dòng)的這個(gè)角速度。通過這樣一個(gè)命令就可以讓這個(gè)小烏龜以0.2米每秒這個(gè)速度來去爬行了。這個(gè)命令實(shí)際上是可以簡(jiǎn)化成下面的msgs。連續(xù)自動(dòng)發(fā)送給話題:rostopicpub如果我想循環(huán)的發(fā)送同樣的這個(gè)消息,比如說我想讓他這個(gè)持續(xù)的發(fā)送這個(gè)消息就用到了下面的這個(gè)參數(shù)。參量:-r單位Hz(defaultis10Hz)。例如讓海龜連續(xù)轉(zhuǎn)圈圈:$rostopicpub/turtle1/cmd_vel-r10geometry_msgs/Twist'{linear:{x:0.2,y:0,z:0},angular:{x:0,y:0,z:0.5}}'發(fā)送一個(gè)既有線速度也有角速度的這樣一個(gè)速度,他就轉(zhuǎn)圈圈了。我們速度消息的這個(gè)軟件總線上發(fā)。以10赫茲的頻率來發(fā)送這個(gè)消息。這個(gè)消息類型跟前面的這個(gè)消息類型一致,linear跟前面這個(gè)是一樣的。這里面多了一個(gè)角速度就是繞著Z軸0.5弧度每秒這樣一個(gè)速度來去做角速度,那么這樣話他就會(huì)就會(huì)轉(zhuǎn)圈圈了。讓海龜轉(zhuǎn)起來消息格式定義:rosmsg使用rosmsg工具查看geometry_msgs/Twist消息格式定義$rosmsgshowgeometry_msgs/Twist這個(gè)消息分成兩部分:一部分是linear,一部分是這個(gè)angular。linear是一個(gè)向量,這個(gè)向量的每一個(gè)分量是三個(gè)浮點(diǎn)數(shù);angular這個(gè)向量也是3個(gè)浮點(diǎn)數(shù)。記錄ROSTopic:rosbagrecord記錄所有topic(-a):$rosbagrecord-a-Ocmd_vel_record-a是把所有的topic都給記錄下來,-O是把數(shù)據(jù)都記錄下來,存儲(chǔ)到cmd_velrecord這樣一個(gè)文件里面。在同一終端按Ctrl+C結(jié)束記錄?;胤與md_vel_record.bag(先Ctrl+C停止原來轉(zhuǎn)圈命令的topic發(fā)布)。$rosbagplaycmd_vel_record.bag你會(huì)發(fā)現(xiàn)海龜會(huì)像先前的記錄裝態(tài)重新轉(zhuǎn)起來!使用rqt_graph打開rqt_graph:$rqt_graph剛才我們說了rosrun啟動(dòng)個(gè)turtlesim這個(gè)程序之后,實(shí)際上就是啟動(dòng)了一個(gè)機(jī)器人系統(tǒng)。相當(dāng)于啟動(dòng)了機(jī)械系統(tǒng)。那么這個(gè)機(jī)械系統(tǒng)他都有哪些節(jié)點(diǎn),這些節(jié)點(diǎn)之間是通過哪些話題來去通信的。我們可以用rqtgraph可以看到數(shù)據(jù)在幾個(gè)node之間的傳遞。用rqtgraph就可以把前面說這個(gè)計(jì)算圖給呈現(xiàn)出來使用ROSservice可使用rosservice命令調(diào)用一只新的海龜:$rosservicecall/spawn'{x:1.0,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論