The _agg suffix refers to the fact that messages are aggregated by the rosout node. Every message published on the /rosout topic is echoed on the /rosout_agg topic by the rosout node. The reason for this apparent redundancy is to reduce the overhead of debugging. Because each publisher-subscriber relationship leads to a direct network connection between the two nodes, subscribing to /rosout (for which every node is a publisher) can be costly on systems with many nodes, especially when those nodes generate many log messages. The idea is that the rosout node will be the only subscriber to /rosout and the only publisher on /rosout_agg. Then debugging tools can access the complete stream of log messages, without creating extra work for every node in the system, by subscribing to /rosout_agg.
_agg 后缀是指消息由 rosout 节点汇集。在 /rosout 主题上发布的每条消息都会由 rosout 节点发布在 /rosout_agg 主题上。这种明显冗余的原因是为了减少调试的开销。因为每个发布者-订阅者关系导致两个节点之间的直接网络连接,所以订阅 /rosout(每个节点都是发布者)在具有许多节点的系统上可能代价高昂,尤其是当这些节点生成许多日志消息时。这个想法是 rosout 节点将是 /rosout 的唯一订阅者和 /rosout_agg 上的唯一发布者。然后调试工具可以通过订阅 /rosout_agg 访问完整的日志消息流,而无需为系统中的每个节点创建额外的工作。
As an aside, ROS packages for some robots, including the PR2 and the TurtleBot, use the same pattern for diagnostic messages, which are originally published on a topic called /diagnostics and echoed by an aggregator node on another topic called /diagnostics_agg.
顺便说一句,一些机器人的 ROS 包,包括 PR2 和 TurtleBot,对诊断消息使用相同的模式,这些消息最初发布在名为 /diagnostics 的主题上,并由另一个汇集节点发布在一个名为 /diagnostics_agg 的话题上。