1. 建立自定义消息
vim ~/ws/src/package/msg/mymsg.msg
int64[] mymsg
2. 配置CMake文件
vim ~/ws/src/package/CMakeLists
find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs message_generation)
generate_messages( DEPENDENCIES std_msgs)
add_message_files( FILES mymsg.msg)
3. 编写程序
vim ~/ws/src/package/src/talker.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import rospy
from exam0301.msg import num
rospy.init_node('talker',anonymous=1)
pub=rospy.Publisher('chatter',num,queue_size=10)
while not rospy.is_shutdown():
rospy.loginfo('i am sending message')
rate=rospy.Rate(1)
dd=[1,2,4,5,6,8]
pub.publish(dd)
rate.sleep()
vim ~/ws/src/package/src/listener.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import rospy
from exam0301.msg import num
def callback(data):
print(data.num)
print'i recieve:',(data.num)[1::2]
if __name__=='__main__':
rospy.init_node('listener',anonymous=0)
rospy.Subscriber('chatter',num,callback)
rospy.spin()
4. 编译运行
chmod +x ~/ws/src/package/src/talker.py
chmod +x ~/ws/src/package/src/listener.py
cd ~/wa/src/package/ | catkin_make
注:更改了msg或srv类型之后一定要cmake,否则会失效。
rosrun ~~~~~~~~
网友评论