Contains code that is not module-specific.
The "apollo_app" build target defines the abstract class ApolloApp,
which is implemented by all modules, as well as the macro APOLLO_MAIN,
used to launch each module.
The "log" build target wraps the Google Log system into project-specific macros,
allowing for more refined control over the levels of logging.
The "macro" build target defines a few commonly used class-specific macros.
Adapters are used by the different modules to communicate with one another.
The AdapterManager class hosts all the specific adapters and manages them.
Adapters need to be registered with the macro REGISTER_ADAPTER.
The Adapter class serves as a layer of abstraction between
Apollo modules and I/O mechanisms (e.g. ROS).
These specify the vehicle configuration.
Implements a number of useful mathematical libraries.
Defines a logging system.
Defines a number of project-wide protocol buffers.
Used for determining whether certain functions were performed successfully,
providing helpful error messages otherwise.
Helper functions related to time.
Contains an implementation of a factory design pattern with registration,
a few string parsing functions, and some utilities for parsing
protocol buffers from files.
This class specifies the current state of the vehicle (e.g. position, velocity,
heading, etc.).