zoukankan      html  css  js  c++  java
  • ros之话题

     在工作空间下创建一个包

    使用roscreat-pkg  name   depend

    roscreat-pkg basic rospy  roscpp std_msgs

    以下为路径:~/catkin_ws/src/basic/src

    建立一个话题来发布消息

    #!/usr/bin/env python
    import rospy
    from std_msgs.msg import Int32
    rospy.init_node('topic_publisher')
    pub = rospy.Publisher('counter',Int32)
    rate = rospy.Rate(2)
    count = 0
    while not rospy.is_shutdown():
        pub.publish(count)
        count += 1
        rate.sleep()

    第一行的

    #!/usr/bin/env python

    所谓的shebang告诉 操作系统这是一个python文件应该传给python解释器,在linux系统下要运行这个需要使用chmod u+x name.py 来增加权限

    第二行

    import rospy

    负责导入将用到的基础功能

    第三行

    from std_msgs.msg import Int32

    这里使用的是32位的整数为了使导入正常需要从<包名>.msg导入因为这是定义存储的地方,

    因为使用了来自其他包的消息需要在package.xml中添加依赖  <depend package = "std_msgs"  />

    ##在实现过程中添加了,在执行的时候会出现错误,有可能是我添加的位置不正确=.=

    pub = rospy.Publisher('counter',Int32)

    定义话题一个名字(counter) 并且说明发布消息的类型(Int32),roscore会和publisher建立连接,当另一个话题订阅的时候则将两个话题连接

    ##在实现过程中出现了错误并提示需要在其中加入queue_size = 'number'   但在这里没有加  在之后的也是成功运行的

    rate = rospy.Rate(2)

    设置速率,单位是赫兹,这里每秒发送两次

    如果节点准备好关闭is_shutdown()函数返回一个Ture反之则会返回一个False,整句表示不关闭则持续循化

    ratee.sleep()调用会让程序休眠一段时间,来保证循环的执行频率大约是2Hz

    !!!!!!!!!!!!

    在调试过程中出现的错误,以此记录

    该文件需要建立在catkin的工作空间中,如果手写的这段代码记得要chmod来设置运行权限

    并且上面的#!/usr/bin/env python 时不能改变的

    重点:在代码中时不能添加注释,具体原因还不清楚

    运行前要先运行roscore,在另一个终端运行rosrun basic topic_publisher.py,然后在另一个终端执行rostopic list来查看counter话题是否被声明

    执行成功的图:

    然后 建立一个订阅的话题:

    #!/usr/bin/env python
    
    import rospy
    
    from std_msgs.msg import Int32
    
    def callback(msg):
        print msg.data
    
    rospy.init_node('topic_subscriber')
    
    sub = rospy.Subscriber('counter',Int32,callback)
    
    rospy.spin()
  • 相关阅读:
    ABAP 程序中的类 沧海
    ABAP类的方法(转载) 沧海
    More than 100 ABAP Interview Faq's(2) 沧海
    SAP and ABAP Memory总结 沧海
    ABAP Frequently Asked Question 沧海
    ABAP System Reports(Additional functions) 沧海
    ABAP Questions Commonly Asked 1 沧海
    ABAP Tips and Tricks 沧海
    ABAP System Fields 沧海
    ABAP 面试问题及答案(一):数据库更新及更改 SAP Standard (转) 沧海
  • 原文地址:https://www.cnblogs.com/miaorn/p/11710326.html
Copyright © 2011-2022 走看看