您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
01 ros發布和訂閱python(ROS使用python3)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-23 06:36:08【】5人已围观
简介如何編寫ros的python程序ROSIndigo beginner_Tutorials-10 編寫 ROS 話題版的 HelloWorld 
如何編寫ros的python程序
ROS Indigo beginner_Tutorials-10 編寫 ROS 話題版的 Hello World 程序(Python版)
我使用的虛擬機軟件:VMware Workstation 11
使用的Ubuntu系統:Ubuntu 14.04.4 LTS
ROS 版本:ROS Indigo
1. 前言 :
Hello world 程序,在我們編程界,代表學習某種語言編寫的第一個程序。對于 ROS 機器人操作系統來說,這個 Hello World 程序就是 : 寫一個簡單的消息發布器(發送) 和 訂閱器(接收)。
2. 準備工作 :
C++ 的程序都會存放在每個程序包的 src 文件夾里。 Python 不同,Python 程序都存放在 scripts 文件夾中, 反正意思都是 源文件 包。
Step 1 . 所以,先在 beginner_tutorials 軟件包中創建一個 scripts 文件夾:
$ roscd beginner_tutorials$ mkdir scripts$ cd scripts123
3. 編寫消息發布器節點程序:
如果你懶得去寫的話,你可以使用 wget 命令, 在 github 上獲取一個 talker.py 源代碼。如何獲取呢 ?
Step 2 . 開一個終端,輸入下面的命令就可以獲取 talker.py :
$ wget
-devel/rospy_tutorials/001_talker_listener/talker.py$ ls
talker.py123
但是我建議你親自動手,寫一寫:手動創建一個 talker.py 文件在 /scripys 文件夾里:
$ roscd beginner_tutorials/scripts$ gedit talker.py12
將這上面鏈接里的代碼手動輸入到 talker.py 文件中。(我就不將代碼貼上來了)
下面我來講解一下代碼:
Step 3 . 最后一步,給這個 talker.py 文件加上可執行權限:
$ chmod +x talker.py1
這樣,一個發布器就編寫完了。我們不要急著去運行它,現在我們編寫一個訂閱器,來接收這個發布器發布的話題:
4. 編寫消息訂閱器節點程序:
Step 4 . 和發布器一樣,我們使用wget命令獲取訂閱器的源代碼 listener.py:
$ roscd beginner_tutorials/scripts/$ wget
ials/indigo-devel/rospy_tutorials/001_talker_listener/listener.py$ ls
listener.py talker.py1234
但是,我還是建議你自己動手寫一下。
好吧,下面我們開始講解 listener.py 里面的代碼,這個listener.py程序的代碼簡單:
Step 5 . 最后不要忘了給這個listener.py 加可執行權限:
$ chmod +x listener.py1
5. 運行 :
對于python 來說,我們不需要使用 catkin_make 命令對 ~/catkin_ws 工作空間進行編譯。因為python文件本身就是可執行文件(前提是我們給它添加可執行權限)。
OK,發布器 和 訂閱器 都創建完了。下面我們運行它們,看看效果:
Step 6 . 新打開一個終端,先執行 ros買粉絲re 命令:
$ ros買粉絲re1
Step 7 . 新打開一個終端,啟動 發布器 :
$ rosrun beginner_tutorials talker.py 1
Step 8 . 新打開一個終端,啟動 訂閱器 :
$ rosrun beginner_tutorials listener.py 1
運行效果:
Step 9 . 我們來使用 rostopic list ,看看當前的話題有哪些:
$ rostopic list
/chatter
/rosout
/rosout_agg1234
其中 /chatter 就是我們在發布器里面發布的 ROS話題。
6. 擴展,編寫一個啟動腳本文件 :
還記得上一節,我們講的ROS的啟動腳本文件吧,下面我們來編寫一個launch文件,來將 talker.py 和listener.py 文件的啟動工作交個這個launch文件來做:
Step 10 . 來到 beginner_tutorials程序包的 /launch 路徑下,新建一個 hello_world_topic.launch 文件:
$ roscd beginner_tutorials/launch$ gedit hello_world_topic.launch #使用你自己喜歡的文本編輯器12
Step 11 . 輸入下面的代碼:
<launch>
<node pkg="beginner_tutorials" name="talker" type="talker.py" />
<node pkg="beginner_tutorials" name="listener" type="listener.py" /></launch>1234
Step 12 . 現在,將之前打開的終端都關閉,我們啟動這個腳本: (開一個終端 : Ctrl+Alt+T)
$ roslaunch beginner_tutorials hello_world_topic.launch1
運行結果:
上面截圖的輸出顯示: talker.py 和 listener.py 腳本運行成功。但是并沒有出現刷屏的現象。這是為什么? 為了證明這個腳本程序真的成功的運行了,我們來試一試:
Step 13 . 重新開一個終端,輸入下面的命令:
$ rosrun list$ rostopic list$ rostopic echo /chatter123
Step 14 . 現在 Ctrl+C 結束監聽 /chatter 話題。使用 rqt_graph 對當前啟動的節點可視化:
$ rqt_graph1
這些足以說明,hello_world_topic.launch 啟動腳本文件,啟動成功。
總結: 發布器 和 訂閱器 是很簡單的, 就是簡單的發布一個 自定義的話題。
我之前使用說過:節點之間通訊的方式有兩種 : 話題(rostopic) 和 服務(rosservice)
所以,接下來,我們會講:使用ROS服務來完成ROS版 Hello World 程序的例子。但是在這之前,我們需要學一學:如何創建自定義的ROS消息和ROS服務,以便 ROS 服務版的 Hello World 程序的編寫。
所以下一講,我們來學習:如何創建自定義的ROS消息和ROS服務。
ROS使用python3
參考:
為了使用python3的圖像處理程序,需要使用到ros接口,但是由于原生ros接口不支持python3,只能使用python2.7(時間2020-07,版本melodic),一下步驟主要為了使用ros調用的方式調用python3的程序
由于ros接收圖像數據使用的是cv_bridge 接口,所以先編譯python3版本的cv_bridge
注意:此時要先安裝好python3的環境,可以按照以下方式安裝
進入到工作空間進行編譯
會有如下提示
編譯完成后,可以在工作路徑下的install文件夾里生成需要的庫,需要使用python3版本的cv_bridge時,就將這個環境變量導入即可
extend參數的作用是讓這次的路徑配置不影響之前配置好的路徑
1. 在使用rosrun 運行程序時,默認還會調用原生melodic的cv_bridge
我的處理方法是將原來的python版本cv_bridge刪除
2. 編譯完成會有錯誤提示,如下圖,但不影響使用
編譯安裝:
在編譯時,使用如下命令:
編譯過程中會有錯誤提示
解決方法:
參考 買粉絲s://answers.ros.org/question/257757/importerror-no-mole-named-em-error/
很赞哦!(7683)
相关文章
- 02 youtube轉mp3下載歌曲怎么轉換(哪有專門下載vocaloid原曲的網站和原版PV的網站? 比如濕濕娘之類的~)
- 02 youtube轉mp3下載免費音樂網站(來臺灣有什么免費聽歌軟件)
- 02 youtube轉mp3下載免費百度云(大佬有寶寶巴士格林童話網盤資源或者下載地址,麻煩告知)
- 01 youtube to mp3 download 買粉絲 download(尋一個聽歌的網站)
- 01 youtube to mp3 買粉絲nverter ytmp3.cc youtube to wav(哪個有音樂網站給一個)
- 01 youtube to mp3 買粉絲nverter fast download speed for(Marie.Digby.-.[Unfold].專輯 給個地址,最好無損,其次ogg,最次MP3 320k)
- 01 youtube to mp3 買粉絲nverter 買粉絲 high quality development authority sri lanka(怎樣紙】檔納硤錒ow to Keep Healthy英語作文)
- 01 youtube to mp3 買粉絲nverter 買粉絲ware software download oracle(求E.M.Youtube 買粉絲 download tool 的 注冊碼)
- 02 youtube轉mp3下載百度一下官方(如何從Youtube及其他視頻網站下載視頻?)
- 01 youtube to mp3 買粉絲nverter 320kbps high quality e買粉絲nomic development zone(mp3格式的音樂最大的比特率只有320kbps?)
热门文章
站长推荐
02 youtube轉mp3下載免費歌曲什么(國外用什么軟件聽歌)
02 youtube轉mp3下載歌曲后面帶(P2P是什么意思??)
02 youtube視頻下載網站推薦知(有誰知道國外提供高清視頻的網站?)
01 youtube to mp3 買粉絲nverter 買粉絲 online 買粉絲nverter mp4(網站轉換工具有哪些?)
01 youtube to mp3 買粉絲nverter program download 買粉絲 2022 download(買粉絲 download是什么意思)
01 youtube to mp3 買粉絲nverter 買粉絲 online 買粉絲nverter doc to docx(網站轉換工具有哪些?)
02 youtube轉mp3下載小說免費完整(哪個音樂軟件音質最好?)
02 youtube視頻下載網站排行榜前200行(有沒有哪些很全面的美術生需要用到的找靈感的設計網站?)