Saft, KĂ€tzchen.
Ich bin gekommen, um Ihnen vom UAVCAN-Projekt zu erzĂ€hlen - einem neuen Netzwerkstandard fĂŒr die Organisation der Interaktion von Knoten und Komponenten moderner Fahrzeuge mit einem hohen MaĂ an Autonomie / Automatisierung. Der Name ist ein Akronym fĂŒr U ncomplicated A pplication Ebene V ehicular C ommunication A nd N etworking (einfache Bordnetze und auf Anwendungsebene Kommunikation).
Diese Veröffentlichung erklĂ€rt den aktuellen Stand und die Trends in komplexen Flugsystemen, bestehende und zukĂŒnftige Probleme, wie wir sie lösen und welche Erfolge erzielt wurden. Im zweiten Teil werden unsere Kollegen von der Innopolis University die praktische Seite der UAVCAN-Implementierung am Beispiel spezifischer Projekte detailliert hervorheben.

Konjunktur
Der erste Pfannkuchen des Projekts wurde 2014 gelegt. Von Anfang an ist es ein Experiment im Minimalismus war: ist es möglich , auf mÀchtige Abstraktionen in der Entwicklung von komplexen verteilten Bordsystemen zu verlassen, wÀhrend der Erhöhung der KomplexitÀt der Implementierung und die damit verbundenen Schwierigkeiten zu vermeiden , Validierung und Verifikation .
Wir sehen einen raschen Anstieg der KomplexitÀt von Bordsystemen, die mit der Entwicklung der FunktionalitÀt von Fahrzeugen (insbesondere unbemannten Fahrzeugen) im Allgemeinen und automatischen Steuerungssystemen im Besonderen verbunden sind. " ", , ; , / , , , (, ), , , ..
() 20- ; , , 21099:
: â . , ( â ; â ), . , , , -, ?
- , / , (), . NASA, . ( Tesla Model 3, ), ( ).
, . " ". , , , : , , . , , , , . , /. , ( Mars Climate Orbiter, Airbus A400M , Ariane 5, ..).
. , ( , , , , , , , ). Safety Element out of Context (SEooC), ISO 26262. , , â , .
; . , , / .
, . , - ( ) . , , Ì , (schedulability analysis). , ( , 3D ). ; . , ; .

, : Casey Handmer, () . .
, , . , ( AFDX) , , , . , . , .
, ( : , , TCP/IP , , , etc.) .
: , , , . , .
. , . , , CiA/SAE/RTCA/EUROCAE/AUTOSAR/OMG/etc. .
. , : . .
1.
. , , , . 21099 .
/ , , , ..
2.
. , /, .
: . : -(), , .
. , Ì () . , / . ARINC 429 â , 18- () . :
"The Evolution of Avionics Networks From ARINC 429 to AFDX", Fuchs, 2012.
ARINC 429 â - ( DShot MAVLink; , ). , Ì . , . , ( , ).
( , ). , CAN ; . FlexRAY, LIN, MIL-STD-1553 Ethernet ( Ethernet ).
CAN . 1986 MTU 8 . 2012 CAN FD MTU 64 . 2018 CAN XL MTU 2 ( ISO 2021 ).
, Wireless Avionics Intra-Communications (WAIC). WAIC , . , , /, ( ). , , - , , :
, , . (, ) , . SpaceWire ( ; , ) , , Ethernet.
Avionics Full-Duplex Switched Ethernet (AFDX) , (. Boeing 787). , ARINC 429, - . , . AFDX , . ( ) . AFDX ; ARINC 429, ( ), :
"Communications for Integrated Modular Avionics", Alena, 2007.
. , , (, , ) - . , , AFDX ( ) UDP/IPv4. "" TCP/IP , â .
, . , 21099. , , . 2020 , .
3.
, . , -, . .
, , . - .
, Robot Operating System (ROS) ( , ROS , ). ROS SDK PR2 Willow Garage, ( ), . ROS , , , , .. , ( ) , .
ROS Why ROS 2 [Gerkey], , , . , , ( ). ROS, , . , , , - â Data Distribution Services (DDS).
DDS CORBA, - ( - , ). DDS , , (, ROS 2) . Future Airborne Capability Environment (DDS FACE) ; , , DDS , .
, DDS CORBA â . , . "The Design of the TAO Real-Time Object Request Broker" [Schmidt et al, 1999] , â Ì . CORBA ; :
, . "The Design of the TAO Real-Time Object Request Broker", Schmidt et al, 1999.
C++ TAO (The ACE ORB), DDS. TAO DDS, . TAO DDS , , â eProsima Fast-DDS ( , ) â C++ ( ). DDS.
, DDS , . â DDS For Extremely Resource Constrained Environments (DDS-XRCE). , , . , micro-ROS.
SOME/IP â AUTOSAR v4+, IP. DDS, SOME/IP . ( ) SOME/IP DDS.
MQTT , .
, . , ( SOME/IP), . (, , ) .
, , UAVCAN v1. , , :
- . , . (.., ): ; .
- . . , .
- . . , (, ), (, ).
- . , . . .
- . , , . , . (CC BY, MIT) .

Raft, , , , . , , , , . Raft, (N.B.: 43- , ). , , UAVCAN " " ( ):
libuavesp. , , â . , "UAV" "UAVCAN" , .
, UAVCAN , ROS, DDS, AFDX, WAIC CAN , . , , , , " ". UAVCAN ( OSI ):
- . : , , , , , .. . : - (.. ).
- - . - , : Data Structure Description Language (DSDL). DSDL- ( ).
- - . , :
- UAVCAN/CAN CAN CAN FD. , CAN XL, .
- UAVCAN/UDP UDP/IP. 2020- , ( ).
- UAVCAN/serial - (UART, RS-232/422/485, USB CDC ACM) . .
- , . , , IEEE 802.15.4.
, . , UAVCAN , , , .
: (, CAN Ethernet, ) . , , , , , ; , , , , , . , . ( , ). Idempotent interfaces and deterministic data loss mitigation. , .
. , , . UAVCAN ; , - , (. SOME/IP, DDS, ROS, MQ*, etc.), UAVCAN , .
, . ( AFDX) , , , . , Alternative transport protocols in UAVCAN.
, , , . . -, , ; , , , ( ), , , .
, plug-and-play (, UAVCAN/UDP DHCP). , Raft.
. , DSDL , , , /, , , . DSDL- uavcan.diagnostic.Record, , 112- ( UTF-8):
# Generic human-readable text message for logging and displaying purposes.
# Generally, it should be published at the lowest priority level.
uavcan.time.SynchronizedTimestamp.1.0 timestamp
# Optional timestamp in the network-synchronized time system; zero if undefined.
# The timestamp value conveys the exact moment when the reported event took place.
Severity.1.0 severity
uint8[<=112] text
# Message text.
# Normally, messages should be kept as short as possible, especially those of high severity.
@assert _offset_ % 8 == {0}
@assert _offset_.max <= (124 * 8) # Two CAN FD frames max
, CAN FD .
, . DSDL, ( , ) . , - ( , , â ), . ( , ) .
, , . , , . ( ) ASN.1 UPER ( ), ( , DSDL).
uint16 VALUE_LOW = 1000
uint16 VALUE_HIGH = 2000
uint16 VALUE_MID = (VALUE_HIGH + VALUE_LOW) / 2
# !
uint16 value
uint8[<=100] key # 0 100 .
, , value=1234 key=Hello world!, :
D2 04 0C 48 65 6C 6C 6F 20 77 6F 72 6C 64 21
D2 04 1234, 0C â ( 255 , ), .
CAN â CAN ( , CAN FD ):
$ candump -decaxta any
(7.925) vcan2 TX - - 1013373B [8] D2 04 0C 48 65 6C 6C A0 '...Hell.'
(7.925) vcan2 TX - - 1013373B [8] 6F 20 77 6F 72 6C 64 00 'o world.'
(7.925) vcan2 TX - - 1013373B [4] 21 F9 02 60 '!..`'
. .
0x1013373B CAN ID, . 0x1337 (4919 ), (subject-identifier) â ( DDS), UAVCAN , ( SOME/IP CAN). , .
UAVCAN/UDP localhost. Wireshark, , UAVCAN, , :
, 21303, , (4919 ) 16384. , UAVCAN . . (D2 04 0C ...) 24 , UAVCAN; , ( ) .
, UAVCAN/UDP IP . IP , TCP/IP, UDP/IP. C , Lifelover 2011- " ".
, . PyUAVCAN, ( ).
. : DSDL, () . ( , , , , ..) , UAVCAN, .
UAVCAN , USB USB, CANopen Bluetooth, DDS FACE DDS. :
â Drone Standard 15, DS-015, , , Dronecode Foundation. , UAVCAN â .
, . . , , ( , , , ..), . , -, , , . â , , . UAVCAN Interface Design Guidelines.
, , , , . , , , , .. , . , 21- , , . , , . , , , PDF ; , .
UAVCAN , : CC BY 4.0, â MIT. , .
, GitHub â 90% , . , , .
, Libcanard â UAVCAN/CAN C11, . uavcan.rs â Rust, 2020 .
Yukon â - , UAVCAN , RViz, Wireshark LabView. PyQt , , Yukon. , - . :
API ROS UAVCAN DDS. , ROS UAVCAN, UAVCAN , ROS. "An exploratory study: UAVCAN as a middleware for ROS"; .
, , NXP Semiconductors. "Getting started using UAVCAN v1 with PX4 on the NXP UAVCAN Board", , , - UAVCAN .
UAVCAN- , , , , , , .
, 2019 , , UAVCAN (~10% ) (~80% ) , (~5% , 2020 20 , ), ( ) . , , ; . .
-: DDS ; - .
, , : 47% , UAVCAN . , .
- Digital Avionics Handbook (3rd edition) â Spitzer, Ferrell, 2017
- Computers in Spaceflight: The NASA Experience â Kent, Williams, 2009
- The Evolution of Avionics Networks From ARINC 429 to AFDX â Fuchs, 2012
- Communications for Integrated Modular Avionics â Alena, 2007
- Safety and Certification Approaches for Ethernet-Based Aviation Databuses â Yann-Hang Lee et al, 2005
- The Design of the TAO Real-Time Object Request Broker â Schmidt, Levine, Mungee, 1999
- In Search of an Understandable Consensus Algorithm â Ongaro, Ousterhout, 2014
- Starlink is a very big deal â Handmer, 2019
- Why ROS 2? â Gerkey, 2015
- ROS on DDS â Woodall, 2015
- Safe Micromobility â Santacreu, 2020
- Understanding Service-Oriented Architecture â Sprott, Wilkes, 2009
.
. :
- The UAVCAN Guide â Kirienko, Dixon, 2020
- UAVCAN Specification â UAVCAN Development Team, 2020
- UAVCAN: a highly dependable publish-subscribe protocol for real-time intravehicular networking â Kirienko, Dixon, 2019
- Alternative transport protocols in UAVCAN â Kirienko, 2019
- Idempotent interfaces and deterministic data loss mitigation â Kirienko, 2019
- UAVCAN survey 2019 report â UAVCAN Development Team, 2019






