UAVCAN

Uncomplicated Application-level Vehicular Computing And Networking.

Zubax Robotics is the main developer and maintainer of UAVCAN — an open technology for real-time intravehicular distributed computing and communication based on modern networking standards (Ethernet, CAN FD, etc.). It was created to address the challenge of on-board deterministic computing and data distribution in next-generation intelligent vehicles.

UAVCAN is used by numerous vendors and companies all over the world in various domains including manned and unmanned aircraft, spacecraft, micromobility, and even racing cars. Learn more from the official website at uavcan.org.

Zubax Robotics provides commercial support and consulting services for UAVCAN.

Features

  • Designed for complex, high-integrity, real-time vehicular computing systems.

  • Publish/subscribe and request/response (RPC) exchange semantics.

  • Specialized interface description language provides rich zero-cost interface abstractions and facilitates service-oriented design.

  • Lightweight — implementable from scratch in ca. 1000 logical lines of code; cheap to verify and validate.

  • Peer-to-peer network — no bus master, no single point of failure.

  • Modular redundancy for fault-tolerant systems with automatic fail-over.

  • Different transport-layer protocols (Ethernet, CAN, etc.), including heterogeneous transport redundancy.

  • High-quality open source reference implementations are freely available under the MIT license.

Related announcements and discussions

SocketCAN problem

Hello, I am trying to use the Babel module with Ubuntu 20.04.4 LTS in a C++ program. The module is connected through an USB interface, and via CAN bus to a µC that only sends heartbeat messages. Using “uavcan_gui_tool” this heartbeat message is displayed and updated. In my C++ program I am using t…

Zubax Babel, Ark-Flow and pycyphal

Hi, I’m trying to figure out how to read the messages coming from an Ark Flow module. I’m using a Zubax Babel on a mac (OSX 10.14.6), I tried on Windows 10 too. For the hardware part: Zubax Babel <-> Ark Flow <-> CAN Transceiver <-> Pycom FIPY I use the FIPY as a hardware monito…

L3X-Z - A OpenCyphal enabled hexapod robot for ELROB 2022

TL;DR: We’ve¹ built and deployed a six-legged electric/hydraulic hexapod robot utilizing OpenCyphal at ELROB 2022, a long-running robot competition with a focus on military applications. 2022-05-31-ELROB-2022-Alex-081920×1280 601 KB Background Last week this years ELROB (European Land Robot Trial)…

Implementing OpenCyphal API

Hello, I’m interested in using OpenCyphal where I work and for side projects. I’d like to create a native Go implementation of OpenCyphal with the purpose of using it on low level micro-controllers such as the RP2040 and in linux machines. The starting point I want to reach is having sufficient func…

Please publish both Spec and implementation as a paper in JOSS

Hello! I think, it would be very desirable for anyone writing about Cyphal(UAVCAN) to be able to cite your work from a peer-reviewed journal. From everything I can tell, Cyphal’s spec is mature enough. Therefore, I suggest that you submit Cyphal as a paper to Journal of Open Source Software JOSS. …

Cyphal/UDP Routing over Multiple Networks

What are your thoughts on routing Cyphal service requests and responses over Multiple Networks? What questions and scenarios should we be considering when developing the Cyphal/UDP specification? I’m working with Scott Dixon (@scottdixon) and just started looking at the development of the Cyphal/UD…

New to UAVCAN and completely CONFUSSED

Hello to the UAVCAN community. I am so greatful to have found you. I have quite a bit of experience with digital communication buses and language but in working with drones I have discovered that the commercial drones that my company operates utilize the UAVCAN protocol. I’m working to setup t…

Root Namespace uavcan.* after Rebranding

In the past few days and weeks, many projects comprising the OpenCyphal ecosystem have been updated to reflect the new name. Do I assume correctly that the uavcan.* root namespace will be renamed as well? If yes, what would be the expected timeline and strategy?…

New name, new chat

Hello all, with the new direction we are taking with OpenCyphal we’ve also setup a new communication mechanism; a public Matrix chat space: matrix.to You're invited to talk on Matrix You're invited to talk on Matrix This forum continues to be t…

Our first ROS2 UAVCAN (PyCyphal) publisher and service nodes

Hello everyone, we are working in interfacing some UAVCAN nodes to our ROS2 system. Doing this we created two scripts, one that subscribes to a PORT-ID and republishes the information in a topic for each of the nodes that publish in the PORT-I. And the other script interfaces a ROS2 service with a …