您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
01 ros發布和訂閱python(如何在ros 使用odometry python)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-07-12 06:09:41【】8人已围观
简介如何編寫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/
很赞哦!(767)
相关文章
- 05 download from youtube mp3 mp4(芭比動畫片的片尾曲叫什么名字?)
- 01 興隆湖華西醫院買粉絲關注(從新隆湖怎么坐地鐵到華西錦江院)
- 05 facebook登陸發生未知錯誤(如何應對未來15年的商業巨變)
- 05 facebook download apk android(手機文件哪些可以刪)
- 01 興隆湖華西醫院買粉絲(成都興隆湖華西醫院的電話?)
- 01 關注郵政儲蓄銀行買粉絲能收余額變更提醒嗎(中國郵政買粉絲買粉絲怎么提示到賬信息)
- 05 download youtube 買粉絲 on iphone(幫忙翻譯一段IPHONE廣告)
- 01 關注聯通買粉絲領取vip(開了聯通黃金會員,怎么領取權益?)
- 01 關注的個人買粉絲在哪里找(請問在買粉絲里如何查看自己已經關注的買粉絲)
- 05 download youtube 買粉絲s mac(macbook怎么刪除chrome的youtube)
热门文章
站长推荐
05 fast download youtube mp3(芭比動畫片的片尾曲叫什么名字?)
01 關閉買粉絲訂閱號里的看一看(買粉絲訂閱號如何取消看一看功能?)
01 關注百川燃氣買粉絲(如何查燃氣費每天使用明細?)
05 download youtube to mp3 player是什么已(P2P買粉絲怎么加速)
05 download youtube mp3 apk(root后哪些軟件可以刪除)
05 download youtube android app開發教程(怎樣才能學好python語言?)
01 關注移動買粉絲怎么領流量(移動關注買粉絲怎么領流量?)
01 關注老干部買粉絲買粉絲成果(上海老干部買粉絲買粉絲每周發布幾期)