ROS發佈訂閱 for Python
#1 環境
Ubuntu 16.04
ROS kinetic 1.12.14
GitHub代碼 :
https://github.com/Coxhuang/ros_pub_sub/
從ROS發佈以來,每版的Ubuntu系統版本都有與之對應ROS版本的
ROS版本 | Ubuntu版本 |
---|---|
ROS Melodic Morenia | Ubuntu 18.04(Bionic)/Ubuntu 17.04 Artful |
ROS Lunar Loggerhead | Ubuntu 17.04 (Zesty)/Ubuntu 16.10 Yakkety, Ubuntu LTS 16.04 Xenial |
ROS Kinetic Kame | Ubuntu 16.04 (Xenial) / Ubuntu 15.10 (Wily) |
ROS Jade Turtle | Ubuntu 15.04 (Wily) / Ubuntu LTS 14.04 (Trusty) |
ROS Indigo Igloo | Ubuntu 14.04 (Trusty) |
ROS Hydro Medusa | Ubuntu 12.04 LTS (Precise) |
ROS Groovy Galapagos | Ubuntu 12.04 |
#2 概述
四大步 :
- 創建工作空間
- 創建程序包
- 編寫節點
- 運行
#3 創建工作空間
在根目錄創建工作空間, 我創建的工作空間命名爲 myworkspace
trunk@trunk-ThinkPad-X270-W10DG:~$ mkdir -p ~/myworkspace/src
trunk@trunk-ThinkPad-X270-W10DG:~$ cd ~/myworkspace/
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ catkin_make
此時創建好工作空間及目錄,並且編譯好
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ source devel/setup.bash
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ echo $ROS_PACKAGE_PATH
輸出結果 : /opt/ros/kinetic/share
此時名爲myworkspace的工作空間已經創建完成
#4 創建程序包
創建名字爲 mypackage 的程序包,並且依賴 std_msgs rospy roscpp 三個庫
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ cd ~/myworkspace/src
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src$ catkin_create_pkg mypackage std_msgs rospy roscpp
source系統環境配置文件:
# 因爲我的是kinetic版本, 所以是在kinetic路徑下
source /opt/ros/kinetic/setup.bash
返回 myworkspace目錄並編譯
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src$ cd ~/myworkspace
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ catkin_make
程序包部分完成
#5 編寫節點
GitHub :
https://github.com/Coxhuang/ros_pub_sub
# 索引位置
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ cd src/mypackage/
# 創建文件夾
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src/mypackage$ mkdir scripts
發佈器源文件:
- 文件名 : talker.py
- 路徑 : /home/trunk/myworkspace/src/mypackage/scripts/talker.py
- 內容 :
拷貝GitHub內容, 也可以自己編寫發佈器文件
https://github.com/Coxhuang/ros_pub_sub/blob/master/talker.py
給文件權限
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src/mypackage/scripts$ chmod +x talker.py
接收器(訂閱)源文件 :
- 文件名 : listener.py
- 路徑 : /home/trunk/myworkspace/src/mypackage/scripts/listener.py
- 內容 :
拷貝GitHub內容, 也可以自己編寫發佈器文件
https://github.com/Coxhuang/ros_pub_sub/blob/master/listener.py
給文件權限
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src/mypackage/scripts$ chmod +x listener.py
退回工作空間目錄
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src/mypackage/scripts$ cd ~/myworkspace
編譯
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ catkin_make
#6 運行
- 打開一個終端
roscore
- 新開另一個終端
進入工作空間目錄
trunk@trunk-ThinkPad-X270-W10DG:~$ cd myworkspace/
source 配置文件
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ source ./devel/setup.bash
啓動 talker節點 rosrun+包名+節點名
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ rosrun mypackage talker.py
- 新開第三個終端
進入工作空間目錄
trunk@trunk-ThinkPad-X270-W10DG:~$ cd myworkspace/
source 配置文件
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ source ./devel/setup.bash
啓動 talker節點 rosrun+包名+節點名
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ rosrun mypackage listener.py
效果 :