ROS中的收发消息框架代码案例(python版)(赵虚左教学视频心得)
搭建框架前的准备
一、打开一个终端,输入以下代码:**
1.mkdir -p 自定义空间名称/src
2.cd 自定义空间名称
例如我这个就是cd demo001_ws
3.catkin_make
执行完如上命令后
会出现如下情况
4.cd src
进入src下
5.catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs
创建包名
二、创建工作空间与功能包
工作空间是一个存放工程开发相关文件的文件夹
src:代码空间
build:编译空间
devel:开发空间
install:安装空间
三、搭建话题通讯框架
// An highlighted block
#! /usr/bin/env python
import rospy
from std_msgs.msg import String #发布消息的类型
"""
使用python实现消息发布
1.导包
2.初始化ros节点
3.创建发布者对象
4. 编写发布逻辑并发布数据
"""
if __name__ == "__main__":
#2.初始化ros节点:
rospy.init_node("xionger")#传入节点名称
# 3.创建发布者对象
pub = rospy.Publisher("che",String,queue_size=10)
#pub就是一个变量;publier后的括号内的是发布的名称;类型;
#queue_size是指消息队列的大小,当消息处理的过慢发生堵塞时,消息队
# 列用来缓存发出的消息,超过10之后先进入队列里的消息就被
#舍弃
# 4. 编写发布逻辑并发布数据
#创建数据
#新建一个空的string消息
msg = String()
#制定发布频率
rate = rospy.Rate(1)#发布频率为1赫兹
#设置计数器
count = 0
#使用循环发布数据hr
while not rospy.is_shutdown():
count += 1#计数器
#rospy没有关闭则一直循环
#给消息赋值
msg.data = "hello" + str(count)#把count数字转为字符,并连接起来
pub.publish(msg)
rospy.loginfo("发布的数据是:%s",msg.data)#r日志文件
rate.sleep()#休眠,1赫兹休眠一次休眠完继续发布
#先roscore,再source .devel/setup.bash在工作环境下更新环境
#rosrun plumbing_pub_sub demo01_pub_p.py
#再rostopic echo /che
#发布数据
#导包
先在demo001中运行catkin_make
四、终端需要运行的三个部分
1.打开终端运行roscore代码
2.再打开一个终端进入demo001_ws,运行source ./devel/setup.bash刷新环境变量,运行rosrun 功能包名称 文件名名称,完成发布消息的部分
3.再打开一个终端,进入demo001_ws,运行topic echo /che(发布消息的名称)