ROS文件系统架构:
- Packages:是ROS代码的软件组织单元。每个Package包含库、可执行程序、脚本或其他构件。
- Manifests(package.xml):清单是Package的描述。它用于定义包之间的依赖关系,并捕获关于包的元信息,如版本、维护程序、许可证等。
ROS基本概念:
- Nodes: 节点是使用ROS与其他节点通信的可执行文件。
- Messages: 订阅或发布主题时使用的ROS数据类型。
- Topics: 节点可以向主题发布消息,也可以订阅主题来接收消息。
- Master: ROS的名称服务(如: 帮助节点找到彼此)
- rosout:在 ROS中相当于stdout/stderr
- roscore: Master + rosout + 参数服务器
客户端库:
- rospy: python客户端库
- roscpp: C++客户端库
消息(msg)和服务(srv):
- 消息(msg):msg文件就是一个描述ROS中所使用消息类型的简单文本。它们会被用来生成不同语言的源代码。
- 服务(srv):一个srv文件描述一项服务。它包含两个部分:请求和响应。
msg文件存放在package的msg目录下,srv文件则存放在srv目录下。
msg文件实际上就是每行声明一个数据类型和变量名。可以使用的数据类型如下:
- int8, int16, int32, int64 (plus uint*)
- float32, float64
- string
- time, duration
- other msg files
- variable-length array[] and fixed-length array[C]
ROS Service: 服务(services)是节点之间通讯的另一种方式。服务允许节点发送请求(request) 并获得一个响应(response).
ROS工具:
如查找roscpp_tutorials文件夹,
启动roscore:
查看rosnode:
列出ROS Service:
rosparam使得我们能够存储并操作ROS 参数服务器(Parameter Server)上的数据。参数服务器能够存储整型、浮点、布尔、字符串、字典和列表等数据类型。rosparam使用YAML标记语言的语法。一般而言,YAML的表述很自然:1 是整型, 1.0是浮点型, one是字符串, true是布尔, [1, 2, 3]是整型列表, {a: b, c: d}是字典. rosparam有很多指令可以用来操作参数.
列出ROS Parameters:
获取参数服务器ROS Parameters:
rqt_console:
rqt_logger_level: