ROS笔记:Python

ROS笔记:Python

@(ROS)[ROS|Python|rospy|环境变量]
记录并分析ROS的整个Python系统体系,争取搞清楚内部原理。同时深入学习Python编程。

1. rospy

http://wiki.ros.org/rospy/Overview

Initialization and Shutdown

  • PYTHONPATH:

    可使用 echo $PYTHONPATH 查看。

    • 这个环境变量是bash下的python使用的,根据这个环境变量里的目录去搜索可被import的Python模块。
    • 执行“$ source xxx/setup.bash”命令时自动将当前工作区的python包目录添加到这个环境变量中。
    • 比如安装ros时执行过“$ source /opt/ros/indigo/setup.bash”,是在PYTHONPATH中添加了目录“/opt/ros/indigo/lib/python2.7/dist-packages”
    • 比如在自己工作区执行“$ source devel/setup.bash”,是在PYTHONPATH中添加了目录“{YOUR_CATKIN_WS}/devel/lib/python2.7/dist-packages”
    • ? 似乎setup.bash 和 setup.py 还有些关系 ?
  • init and shutdown

    • rospy.init_node(name, anonymous=False, log_level=rospy.INFO, disable_signals=False)
    • rospy.on_shutdown(h)这个函数为Ctrl+C这类shutdown事件创建一个退出之前的回调函数h,可以在程序退出之前做点什么。如果在h函数内Publish消息,不保证能成功发出消息!在rospy_tutorial示例中经过验证。

Messages

  • Message generation

    • 自定义的msg和srv,在catkin_make时被自动生成为python模块源码,存储在“{YOUR_CATKIN_WS}/devel/lib/python2.7/dist-packages”目录下。
    • msg文件和Python模块的对应关系是:package_name/msg/Foo.msg → package_name.msg.Foo
    • srv文件和Python模块的对应关系是:package_name/srv/Bar.srv → package_name.srv.Bar
  • Message initialization
    遵循Python的语法进行消息变量的实例化。有三种方式:无参数、顺序参数、关键字参数。

    • No arguments

      msg = std_msgs.msg.ColorRGBA( )
      msg.b=255
      msg.a=121

    • In-order arguments (*args)

      msg = std_msgs.msg.ColorRGBA(255.0, 255.0, 255.0, 128.0)

    • Keyword arguments (**kwds)

      msg = std_msgs.msg.ColorRGBA(b=255)

    三种方式各有利弊。官方推荐用keyword方式,能更好的适应message类型定义的变化。

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值