ROS小练习(话题发布与订阅)

本文详细介绍了如何在ROS(RobotOperatingSystem)环境中设置并实现一个简单的发布者(pub)和订阅者(sub)系统,包括创建文件夹、编写CMakeLists.txt和package.xml,以及使用Python脚本进行消息传递。
摘要由CSDN通过智能技术生成

首先打开终端输入

mkdir pub_sub1_ws

创建一个名为pub_sub1_ws的文件夹

再输入

cd pub_sub1_ws/

进入名为pub_sub1_ws的文件夹

输入

mkdir src

创建src文件

输入

catkin_make

创造工作空间

输入

cd src

进入名为src的文件夹

输入

catkin_create_pkg pub_sub1 roscpp rospy std_msgs

创建功能包

输入

cd pub_sub1/

进入名为pub_sub1的文件夹

输入

mkdir scripts

创建一个名为scripts的文件夹

输入

mkdir msg

创建一个名为msg的文件夹

输入

cd msg

进入名为msg的文件夹

输入

touch Person.msg

创建名为Person的msg文件(Msg:描述ROS messages内容的简单text文件,它们用来生成不同语言的messages源码)

连续

cd ..

进入到~/pub_sub1_ws目录 输入

code .

进入到vs code

找到pub_sub1_ws文件下的src文件下的pub_sub1文件下的msg文件下的Person.msg

输入

string name
uint16 age
float64 height

然后修改pub_sub1目录下的CMakeLists.txt文件

在以下行代码中

加入

  message_generation

使其成为

更改代码

使其成为

## Generate messages in the 'msg' folder
add_message_files(
  FILES
  Person.msg
)

修改以下行代码

删除注释使之成为

找到以下代码

加入

 CATKIN_DEPENDS roscpp rospy std_msgs message_runtime

使其成为

然后Ctrl+s!!!!!保存

找到pub_sub1目录下的package.xml文件

找到以下代码

在文件里增加编译依赖项和运行依赖项如下

   <build_depend>message_generation</build_depend>
   <exec_depend>message_runtime</exec_depend>

使之成为

Ctrl+Shift+B 运行catkin_make:build

显示以下即为成功

在srcipts文件下新建两个python文件

右键scripts点击新建文件命名为

pub.py

sub.py

pub.py中复制以下内容

#!/usr/env/bin python
import rospy
from pub_sub1.msg import Person
if __name__ == '__main__':
    rospy.init_node('pub')  
    pub= rospy.Publisher('info',Person,queue_size=10)
    Info = Person()
    Info.name = "潘富"
    Info.age = 38
    Info.height = 1.75
    rate = rospy.Rate(1)
    while not rospy.is_shutdown():
        pub.publish(Info)
        rospy.loginfo('发布的消息是:%s,%d,%2f',Info.name,Info.age,Info.height)
        rate.sleep()


sub.py中复制以下内容

#!/usr/env/bin python
import rospy
from pub_sub1.msg import Person
def doMsg(info):
    rospy.loginfo('发布的消息是:%s,%d,%2f',info.name,info.age,info.height)
if __name__ == '__main__':
    rospy.init_node('sub')
    sub=rospy.Subscriber('info',Person,doMsg,queue_size=10)
    rospy.spin()

修改pub_sub1目录下的CMakeLists.txt文件

输入

scripts/pub.py
scripts/sub.py

使之成为

Ctrl+Shift+B 运行catkin_make:build

打开新的终端运行

roscore

如已经运行则跳过此步

打开新的终端运行

source ./devel/setup.bash

然后运行

rosrun pub_sub1 pub.py

打开新的终端运行

source ./devel/setup.bash

然后运行

rosrun pub_sub1 sub.py

即可出现以下结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值