rmw: ROS Middleware Abstraction Interface

rmw defines an interface of middleware primitives that are used by the higher level ROS API’s. It consists of these main components:

  • Initialization and Shutdown:

    • rmw/init.h

  • Nodes

    • rmw/rmw.h

  • Publisher

    • rmw/rmw.h

  • Subscription

    • rmw/rmw.h

  • Service Client

    • rmw/rmw.h

  • Service Server

    • rmw/rmw.h

There are some common utility functions in combination with “Topics” or “Services”:

It also has some machinery that is necessary to wait on and act on these concepts:

  • Initialization and shutdown management (global for now)

    • rmw/rmw.h

  • Wait sets for waiting on messages and service requests / responses to be ready

    • rmw/rmw.h

  • Guard conditions for waking up wait sets asynchronously

    • rmw/rmw.h

  • Introspection of the ROS graph

Further still there are some useful abstractions and utilities:

  • Allocator functions for various types

    • rmw/allocators.h

  • Error handling functionality (C style)

    • rmw/error_handling.h

  • Macros

    • rmw/macros.h

  • Return code types and other utility types

    • rmw/types.h

  • Sanity checks for some of the types

    • rmw/sanity_checks.h

  • Macros for controlling symbol visibility on the library

    • rmw/visibility_control.h

  • Utility function to demangle a type to a human readable string (C++ specific):

    • rmw/impl/cpp/demangle.hpp

Page Hierarchy

Class Hierarchy

File Hierarchy

Reference

Namespaces

Classes and Structs

Enums

Functions

Variables

Defines

Typedefs

Directories

Files

Pages