ROS与Python入门教程-发布信息
说明
这一节介绍更多关于发布信息的高级功能
方法
简化书写,如:
pub.publish(String(str))
可变更为:
pub.publish(str)
rospy已经知道你使用std_msgs.msg.String,会自动帮你实例化这个类
如果消息有多个参数的,你必需按在.msg文件定义的顺序来指定。例如:std_msgs/ColorRGBA
$ rosmsg show std_msgs/ColorRGBA
float32 r
float32 g
float32 b
float32 a
如下代码会依次初始化r g b 和a作为参数
pub.publish(0.1, 0.2, 0.3, 0.4)
这样很方便,但是也很脆弱,如果增加ColorRGBA字段,就需要找到所有相关的python代码,重新更改,增加参数。
幸运的是,有一个更强大的方式指定字段和你忽略任何字段(忽略的字段,分配默认值)。你只需使用Python关键字参数来指定您希望分配字段。其余的是分配的默认值(数值为零,数组的空列表,字符串的空字符串):
pub.publish(a=1.0)
上面代码发布一个ColorRGBA消息,设置a=1.0,其他 (r, g, b)都指定为0.
编写talker_color节点
在beginner_tutorials/scripts目录,talker_color.py节点