本文主要介绍YAML文件相关语法知识。至于为什么选择deepin而不是ROS通用的ubuntu,也仅仅是为了支持国产系统。鉴于本人水平有限,如哪位攻城狮网友发现本文存在的问题,烦请留言指正,谢谢!
rostopic,rosservice等命令在命令行中使用了YAML标记语言。之所以选择YAML,是因为大多数情况下,它提供一种非常简单,几乎不用标记的方案来解决输入有类型的参数。YAML概述
YAML中消息的表示
ROS消息可以表示为YAML列表或者字典。
- 列表表示:参数需要按顺序填充,并且必须与消息字段一一对齐。
- 字典表示:假定字典中的key映射到了消息中的同名字段,未分配的字段会赋予默认值
列表和字典的二义性:默认情况下你在终端输入的命令行参数表示为列表,例如
rosservice call /foo msg/Type 1 2
上述输入会创建列表[1,2].然后该列表用于填充消息。
命令行字典输入:
rosservice call /foo msg/Type '{a: 1, b: 2}'
上述输入会创建一个字典{a:1,b:2}.这使您能够更容易的填充外部消息字段。
多行表示
假定你已经运行了rosc