python實現話題通信msg
寫在最前面
1, ros也是可以使用python進行編程的, 而且相比c++來說, ros更加簡單.
使用python創建第一個ROS程序
1, 在ros_test目錄下, 新建一個scripts文件夾.
2, 修改CMakeLists.txt文件, 在find_package
中添加rospy
find_package(catkin REQUIRED COMPONENTS
roscpp
... #其他的包
rospy
)
3, 在vscode的終端中執行catkin_make
.
4, 在scripts文件夾中, 新建pyTalker.py文件.
5, 粘貼以下代碼
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import rospy #導入rospy客戶端
from std_msgs.msg import String #導入std_msg/string這個數據類型
def talker():
pub = rospy.Publisher('chatter', String, queue_size=10) #話題的名稱chatter
rospy.init_node('talker', anonymous=True) #初始化節點,節點的名稱爲talker,名字要唯一
rate = rospy.Rate(10) # 10hz,創建rate對象,與sleep()函數結合使用,控制話題消息發佈的頻率
while not rospy.is_shutdown():
msg = "hello world "
rospy.loginfo(msg)#函數在屏幕輸出信息,這個信息存儲在hello_str當中
pub.publish(msg)
rate.sleep()#用於控制發佈的頻率
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
6, 具體介紹請看註釋, 這個比較簡單.
7, 使用vscode的終端中cd命令,定位到pyTalker.py文件
cd src/ros_test/scripts/
8, 執行指令, 這一步是爲了讓pyTalker.py文件具有可執行權限, 不可缺少
chmod 0777 pyTalker.py
運行talker和listener
1, 使用快捷鍵Ctrl + Shift + T 彈出系統終端,輸入roscore
,啓用整個ROS總節點。
2, 使用快捷鍵Ctrl + Shift + T 彈出系統終端,輸入rosrun ros_test pyTalker.py
,啓用talker節點。
3, 使用快捷鍵Ctrl + Shift + T 彈出系統終端,輸入rosrun ros_test listener
,啓用listener節點, 此處的listener節點爲c++節點。參照vscode開發ROS(3)-創建第一個ROS項目.
後記
更多機器人, ROS相關,公-衆-號搜索 ”機器人小站"。