IPC++

IPC++” is a C++ wrapper for the IPC (Inter-Process Communication framework), which was originally developed by PAVE for use on Kratos in the 2008 IGVC. In it, each software component runs as a discrete program communicating over TCP with a central server; message publishing and subscription, serialization, and timing are all abstracted with a custom-developed C++ API.

IPC is a C-based robotics inter-process communication scheme orginally developed at Carnegie Mellon. Since PAVE‘s first experiments with the implementation of IPC on Kratos, the team have been working to add IPC framework compatibility to all of our software. IPC++ dramatically decreases the amount of overhead associated with implementing IPC on a robotic system. IPC has formed the core of PAVE‘s software implementation on Argos and Phobetor, our entires for the 2009 and 2010 IGVC competitions, Through multiple iterations of software development, the framework has proven to be robust and reliable for autonomous platform development. around it. Currently, the software onboard Prospect Twelve is being ported to use the IPC framework

In the near future, PAVE intends to release IPC++ to the general public. Please contact us with any questions or comments, or to request a copy of IPC++.

If you are interested in reading more about IPC++, please see our 2010 IGVC Technical Paper (PDF link) on Phobetor.

Princeton Autonomous Vehicle Engineering