第二章核心内容总结
一、核心架构
-
计算图(Computation Graph)
- 节点(Node):独立执行单元
- 消息(Message):严格类型定义的数据结构
- 话题(Topic):异步通信机制
- 服务(Service):同步请求/响应模式
- 节点管理器(ROS Master):命名注册与协调
-
文件系统
- 功能包(Package):最小功能单元
- 元功能包(Metapackage):逻辑集合多个功能包
- 工作空间覆盖(Overlay):多工作空间优先级管理
-
通信机制
- 话题通信:多对多、异步、基于TCP/UDP
- 服务通信:一对一、同步、基于RPC
- 参数服务器:全局键值存储系统
二、关键对比
特征 | 话题(Topic) | 服务(Service) |
---|---|---|
通信模式 | 异步发布/订阅 | 同步请求/响应 |
参与者数量 | 多发布者多订阅者 | 单服务端多客户端 |
数据流向 | 单向持续传输 | 双向单次交互 |
典型应用场景 | 传感器数据流 | 设备控制指令 |
底层协议 | TCPROS/UDPROS | RPCROS |
多选题
-
关于ROS节点管理器(ROS Master)的正确说法是?
A. 负责节点间的消息传输
B. 提供命名注册服务
C. 维护参数服务器
D. 直接参与节点计算任务
-
消息(Message)和服务数据(Service Data)的区别包括?
A. 消息使用
.msg
定义,服务数据使用.srv
定义B. 消息支持双向通信,服务数据是单向的
C. 服务数据包含请求和响应两部分
D. 消息可以包含复杂嵌套结构
-
ROS参数管理机制的正确描述是?
A. 参数只能通过命令行设置
B. 参数服务器支持动态修改
C. 参数存储在节点本地内存中
D. 可通过
rosparam
工具进行管理 -
关于工作空间覆盖(Overlay)的正确说法是?
A. 后加载的工作空间优先级更高
B.
ROS_PACKAGE_PATH
决定加载顺序C. 系统级功能包无法被覆盖
D. 用于解决同名功能包冲突
-
ROS分布式通信的必要配置包括?
A. 所有机器使用相同ROS版本
B. 设置一致的
ROS_MASTER_URI
C. 关闭防火墙
D. 配置
/etc/hosts
域名解析 -
属于ROS计算图核心组件的是?
A. 节点(Node)
B. 元功能包(Metapackage)
C. 话题(Topic)
D. 启动文件(Launch)
-
关于命名空间(Namespace)的正确解析规则是?
A.
~/camera
表示私有命名空间B.
$ENV_VAR
可以解析环境变量C. 默认命名空间是
/
D. 节点名不能包含命名空间
-
ROS通信机制的技术实现包括?
A. XML-RPC用于节点发现
B. TCPROS基于长连接
C. 服务使用UDP传输
D. 参数服务器使用HTTP协议
-
关于元功能包(Metapackage)的正确描述是?
A. 必须包含可执行代码
B. 用于逻辑组合相关功能包
C. 包含
<metapackage>
标签D. 编译时会被特殊处理
-
ROS开源社区的关键组成部分包括?
A. ROS Wiki文档系统
B. GitHub官方仓库
C. ROS Answers论坛
D. PyPI软件仓库
答案与解析
-
BC
解析:节点管理器负责命名注册(B)和参数服务器(C),不参与消息传输(A)和计算任务(D)。 -
ACD
解析:消息是单向(B错误),服务数据包含请求/响应(C),两者都支持复杂结构(D)。 -
BD
解析 :参数可通过API动态修改(B),rosparam
是管理工具(D),参数存储在全局服务器(C错误)。 -
ABD
解析 :后加载工作空间优先(A),ROS_PACKAGE_PATH
决定顺序(B),覆盖解决冲突(D),系统包可被覆盖(C错误)。 -
BD
解析:主节点URI必须一致(B),域名解析是必要条件(D),ROS版本和防火墙非必须(A/C错误)。 -
AC
解析:计算图包含节点和话题(A/C),元功能包和启动文件属于文件系统(B/D错误)。 -
ABC
解析 :私有命名空间使用~
(A),环境变量可解析(B),默认命名空间是/
(C),节点名可含命名空间(D错误)。 -
AB
解析:节点发现使用XML-RPC(A),TCPROS是长连接(B),服务用TCP(C错误),参数服务器用XML-RPC(D错误)。 -
BC
解析 :元功能包不包含代码(A错误),用于组合功能包(B),使用<metapackage>
标签(C),编译无特殊处理(D错误)。 -
ABC
解析:ROS社区包含Wiki(A)、GitHub(B)、论坛(C),PyPI是Python仓库(D错误)。