您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
01 ros訂閱話題python(ros下python文件怎么運行)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-20 23:35:14【】4人已围观
简介如何編寫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/
很赞哦!(8)
相关文章
- 安卓如何安裝油管(你的設備不支持google play服務,怎么解決)
- 安卓下載國外抖音tiktok下載(華為如何下載tiktok國際版)
- 04 youtube music student price(如何在youtubemusic中創建快捷指令)
- 04 youtube music uk official site uk(關于Cradle Of Filth 的一首Temptation)
- 04 youtube music 買粉絲s 2023 awards ceremony ideas(avril的英文簡介)
- 安卓安裝tiktok語言設置(國外版本的抖音tik tok怎么使用?)
- 安卓刷tiktok教程(TikTok怎么在國內使用?TIKTOK怎么下載?)
- 安卓如何上油管看視頻(youtobe視頻列表怎么調出來)
- 04 youtube music uk official site uk(關于Cradle Of Filth 的一首Temptation)
- 04 youtube my songs playlist download(好聽的英文歌)
热门文章
站长推荐
04 youtube music 買粉絲 download mp3 youtube(高分懸賞!求一首英文流行歌曲)
04 youtube music 買粉絲s 買粉絲untry 2020 playlist new artist grammy nominees(Apple Scheme URL Reference)
04 youtube music 買粉絲 download app store賬號(幫忙翻譯一段IPHONE廣告)
04 youtube music pc app設計說明怎么轉(備忘錄怎么轉到私密?)
安卓tiktok國際版下載教程(tiktok國際版怎么下載)
04 youtube music 買粉絲s 買粉絲untry 2020 playlist soul music 1970s(請懂西班牙語的翻譯下(要是再懂足球就更好了……))
04 youtube music of the 80's playlist(50分求5首最好聽的英文歌(最佳答案還會加分))
04 youtube music rock(推薦一些你們自己最喜歡的英文搖滾歌曲)