赞
踩
注意:不要在开头添加注释,下面代码第一行是指定编译器,第二行是防止因为代码中的中文注释而出现乱码
- #! /usr/bin/env python
- #coding:utf-8
-
- #导包
- import rospy
- from std_msgs.msg import String
-
- if __name__=="__main__":
- #初始化ROS节点
- rospy.init_node("talker")
- #创建发布者
- pub=rospy.Publisher("Matlab",String,queue_size=10)
- #创建消息类型
- msg=String()
- #设置发布排频率
- rate=rospy.Rate(1)
- count=0
- #休眠1秒,防止出现前面的数据没有接受到
- rospy.sleep(1)
- #循环发布数据,其中rospy.is_shutdown()的意思是只要节点关闭就返回true
- while not rospy.is_shutdown():
- count+=1
- #str(count)可以将count转变为字符串
- msg.data="hello"+str(count)
- pub.publish(msg)
- #rospy.loginfo()相当于C++版本里面的ROS_INFO()
- rospy.loginfo("I talk %s",msg.data)
- #休眠
- rate.sleep()
注意:不要在开头添加注释,下面代码第一行是指定编译器,第二行是防止因为代码中的中文注释而出现乱码
- #! /usr/bin/env python
- #coding:utf-8
-
- #导包
- import rospy
- from std_msgs.msg import String
-
- def Callback(msg):
- rospy.loginfo("I hear %s",msg.data)
-
- if __name__=="__main__":
- #初始化ROS节点
- rospy.init_node("listener")
- #创建订阅者
- sub=rospy.Subscriber("Matlab",String,Callback,queue_size=10)
- #回调函数
- #spin
- rospy.spin()
注意:一定要在scripts文件夹下打开终端
在Cmakelist中添加如下代码:
- catkin_install_python(PROGRAMS
- scripts/talker.py
- DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
- )
-
- catkin_install_python(PROGRAMS
- scripts/listener.py
- DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
- )
先写好自定义的消息,然后再编译,这时会生成相应的头文件。
打开lib下面的python2.7/dist-package....,鼠标放在这个文件上然后打开终端。
在终端中输入pwd,然后赋值路径
将路径赋值到setting.json中的“python.autoComplete.extraPaths” 中,保存。
- #! /usr/bin/env python
- #coding:utf-8
-
- #导包
- import rospy
- from learning_communication.msg import person
-
- if __name__ == "__main__":
- #初始化节点
- rospy.init_node("talkermsg")
- #创建发布者
- pub=rospy.Publisher("Matlab",person,queue_size=10)
- #创建消息对象
- per=person()
- per.age=10
- per.name="zhangpeng"
- per.height=180
- #设置频率
- rate=rospy.Rate(1)
- while not rospy.is_shutdown():
- pub.publish(per)
- rospy.loginfo("I am talking %s %d %d",per.name,per.age,per.height)
- per.age+=1
- rate.sleep()
- #! /usr/bin/env python
- #coding:utf-8
-
- import rospy
- from learning_communication.msg import person
-
- def Callback(per):
- rospy.loginfo("I hear %s %d %d",per.name,per.age,per.height)
-
- if __name__ == "__main__":
-
- rospy.init_node("listenermsg")
- sub=rospy.Subscriber("Matlab",person,Callback,queue_size=10)
- rospy.spin()
在CmakeList中添加:
- catkin_install_python(PROGRAMS
- scripts/talker.py
- scripts/listener.py
- scripts/talkermsg.py
- scripts/listenermsg.py
- DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
- )
注意:一定要在scripts文件夹下打开终端
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。