UAVCAN is a lightweight protocol designed for highly reliable communication in UAV and robotic applications via CAN bus.
Its key features are the following:
Half a year ago, UAVCAN RFC was first announced here: http://diydrones.com/profiles/blogs/uavcan-can-bus-for-uav. Since then, UAVCAN got a complete specification and a full featured portable reference implementation in C++ for Linux and embedded systems. It's worth noting that the list of officially supported embedded platforms includes NXP LPC11C24 - a low-cost ARM Cortex-M0 MCU with an embedded CAN controller and a CAN driver, i.e. a true single-chip solution for cost-efficient CAN bus applications.
Current release is a preliminary release, which means that some aspects of the specification can be changed in a way that can break backward compatibility. The specification and the standard data type set are expected to be frozen by the end of 2014, which would make a final release. Since the final release, standard data types won't ever change at all, but new types still can be added (it doesn't break the backward compatibility).
PX4 native stack is going to be the first adopter of the protocol; currently UAVCAN support is already merged into its master branch. Also, there's a few products will be announced later this year that use UAVCAN as a primary and only communication interface. Stay tuned!
P.S. this is a cross post from https://groups.google.com/forum/#!topic/drones-discuss/wkI6TSmPAdo.