写在最前
此篇为vscode开发系列ros第7篇python实现版本, 请对照进行查看.
穆士凝魂:vscode开发ROS1(7)-自定义消息zhuanlan.zhihu.com自定义消息
此处是直接采用第7篇中的自定义person.msg
消息, 具体过程, 请查看该篇, 此处不再赘述.
新建talker节点
此处只用python实现publisher, 请大家举一反三, 自行实现subscriber节点, 即本工程的personListener节点.
1, 在scripts文件夹中, 新建pyPersonTalker.py
文件.
2, 粘贴以下代码
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import rospy
from ros_test.msg import person
def talker():
pub = rospy.Publisher('personChat', person, queue_size=10) #话题的名称personChat
rospy.init_node('personTalker', anonymous=True) #初始化节点,节点的名称为personTalker,名字要唯一
rate = rospy.Rate(10) # 10hz,创建rage对象,与sleep()函数结合使用,控制话题消息发布的频率
while not rospy.is_shutdown():
TOM = person() #定义一个person TOM
TOM.age = 20 #TOM的年纪, 20岁
TOM.name = "穆士凝魂" #TOM的名字, "穆士凝魂"
TOM.sex = TOM.male #TOM是个男的
pub.publish(TOM) #发布TOM
rate.sleep()#用于控制发布的频率
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
3, 具体介绍请看注释, 同样比较简单.
4, 使用vscode的终端中cd命令,定位到pyPersonTalker.py
文件
cd src/ros_test/scripts/
5, 执行指令, 这一步是为了让pyPersonTalker.py文件具有可执行权限, 不可缺少
chmod 0777 pyPersonTalker.py
运行talker和listener
1, 使用快捷键Ctrl + Shift + T 弹出系统终端,输入roscore
,启用整个ROS总节点。
2, 使用快捷键Ctrl + Shift + T 弹出系统终端,输入rosrun ros_test pyPersonTalker.py
,启用talker节点。
3, 使用快捷键Ctrl + Shift + T 弹出系统终端,输入rosrun ros_test personListener
,启用listener节点, 此处的personListener节点为c++节点。