The core ROS platform attempts to be as architecture-agnostic as possible. It provides several different modes of communicating data (topics, services, Parameter Server), but it doesn't prescribe how they're used or how they are named. This approach allows ROS to be easily integrated with a variety of architectures, but higher-level concepts are necessary for building larger systems on top of ROS.
The tf package provides a distributed, ROS-based framework for calculating the positions of multiple coordinate frames over time.
The common_msgs stack provide a base message ontology for robotic systems. It defines several classes of messages, including:
diagnostic_msgs: messages for sending diagnostic data.
geometry_msgs: messages for representing common geometric primitives.
nav_msgs: messages for navigation.
sensor_msgs: messages for representing sensor data.
pluginlib provides a library for dynamically loading libraries in C++ code.
The filters package provides a C++ library for processing data using a sequence of filters.
The urdf package defines an XML format for representing a robot model and provides a C++ parser.
Check out the ROS cheatsheet.