vscode开发ROS(13)-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相关,公-众-号搜索 ”机器人小站"。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章