ros入门之一,发布者,订阅者的python文件创建以及最后的终端执行(含python文件代码)

在文件夹创建工作空间ws/first_ws

1.打开一个终端(接下来每一步都需要回车)

cd ws/first_ws

接着到src目录下

cd src/

继续创建一个package

catkin_create_pkg hello_topic rospy rosmsg roscpp

接下来退出到上一级

cd ..

接下来输入

catkin_make

接着(还在first_ws这一级)

source devel/setup.bash

ros入门之一,发布者,订阅者的python文件创建以及最后的终端执行(含python文件代码)_第1张图片

2.下面即将打开IDE(我的IDE为clion,如果用VS code可自行选择方式打开,如果也为clion,注意我的版本是2022.2.2,一样的可以直接复制下列代码,不一样的话要改成自己所用的版本)

cd ~/devtools/clion-2022.2.2/bin/

接下来打开clion

./clion.sh

接着就打开了clionros入门之一,发布者,订阅者的python文件创建以及最后的终端执行(含python文件代码)_第2张图片

 注意:打开时选择文件的地址去打开,我的地址为ws/src/hello_topic,选择打开即可

另外,进入设置、CMAKE中的构建目录里面的东西删掉,改为

/tmp/hello_topic/cmake-build-debug

依次点击应用、确定,然后删除cmake-build-debug文件

3.在hello_topic下新建文件夹scripts

4.配置python环境

在python解释器中添加新解释器,选择第一个虚拟环境,存在的环境(现有环境),选择python2,在方框处输入

usr/bin/python2

输入完成后回车即可,点击确定,然后依次应用,确定。

5.创建文件发布者publisher_node.py和subscriber_node.py

新建发布者python文件

#!/usr/bin/env python
# coding:utf-8
import rospy
from std_msgs.msg import String
if __name__ == '__main__':
    rospy.init_node("publisher_node")
    topic_name='/hello/itcast'
    publisher=rospy.Publisher(topic_name, String, queue_size=100)
    count=0

    rate=rospy.Rate(4)
while not rospy.is_shutdown():
    msg=String()
    msg.data='hello topic {}'.format(count)
    publisher.publish(msg)
    rate.sleep()
    count+=1

新建订阅者python文件

import rospy
from std_msgs.msg import String


def topic_callback(msg):
    print 'msg'

if __name__ =='__main__':
    rospy.init_node('subscriber_node')

    topic_name='/hello/itcast'
    subscriber=rospy.Subscriber(topic_name,String,topic_callback)


    rospy.spin()

ros入门之一,发布者,订阅者的python文件创建以及最后的终端执行(含python文件代码)_第3张图片

 

6.发布者开始发布消息

新建一个终端

cd ws/first_ws/

下一步

source devel/setup.bash

下一步

rosrun hello_topic publisher_node.py

ros入门之一,发布者,订阅者的python文件创建以及最后的终端执行(含python文件代码)_第4张图片

ros入门之一,发布者,订阅者的python文件创建以及最后的终端执行(含python文件代码)_第5张图片

 

接着新建一个终端

cd ws/first_ws/

下一步

source devel/setup.bash

最后一步

rosrun hello_topic subscriber_node.py

ros入门之一,发布者,订阅者的python文件创建以及最后的终端执行(含python文件代码)_第6张图片

 

即可看到订阅者在订阅消息

ros入门之一,发布者,订阅者的python文件创建以及最后的终端执行(含python文件代码)_第7张图片

ros入门之一,发布者,订阅者的python文件创建以及最后的终端执行(含python文件代码)_第8张图片

 

你可能感兴趣的:(ros机器人,ubuntu,linux,人工智能,自动驾驶)