ناشر / مشترك لأنظمة الوقت الحقيقي الموزعة المتسامحة مع الأخطاء في 1500 سطر من التعليمات البرمجية

النسغ ، القطط.



جئت لأخبرك عن مشروع UAVCAN - معيار شبكة جديد لتنظيم تفاعل العقد ومكونات المركبات الحديثة بمستوى عالٍ من الاستقلالية / الأتمتة. الاسم هو اختصار ل U ncomplicated A على مستوى pplication V ehicular C ommunication و الثانية N etworking (بسيطة على متن الشبكات والاتصالات على مستوى التطبيق).



يشرح هذا المنشور الحالة الراهنة والاتجاهات في الأنظمة المحمولة جواً المعقدة ، والمشاكل الحالية والمستقبلية ، وكيف نقوم بحلها وما النجاحات التي تم تحقيقها. في الجزء الثاني ، سيركز زملاؤنا من جامعة إنوبوليس بالتفصيل على الجانب العملي لتنفيذ الطائرات بدون طيار باستخدام مثال لمشاريع محددة.





إرتباط



تم وضع أول فطيرة للمشروع في عام 2014. منذ البداية ، كانت تجربة في الحد الأدنى: هل من الممكن الاعتماد على التجريدات القوية في تطوير أنظمة معقدة محمولة جواً ، مع تجنب زيادة تعقيد التنفيذ والصعوبات المرتبطة بالتحقق والتحقق .



نحن نشهد زيادة سريعة في تعقيد الأنظمة الموجودة على متن الطائرة المرتبطة بتطوير وظائف المركبات (خاصة المركبات غير المأهولة) بشكل عام ، وأنظمة التحكم الآلي بشكل خاص. " ", , ; , / , , , (, ), , , ..



() 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 , . , , /, ( ). , , - , , :





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. - . , -.



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/IPAUTOSAR v4+, IP. DDS, SOME/IP . ( ) SOME/IP DDS.



MQTT , .



, . , ( SOME/IP), . (, , ) .





, , UAVCAN v1. , , :



  1. . , . (.., ): ; .
  2. . . , .
  3. . . , (, ), (, ).
  4. . , . . .
  5. . , , . , . (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, ( ).



, . , — . . 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. , .



, , . 2020 , .



, 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 .



Amazon Prime Air . , — .



UAVCAN- , , , , , , .



, 2019 , , UAVCAN (~10% ) (~80% ) , (~5% , 2020 20 , ), ( ) . , , ; . .





-: DDS ; - .



, , : 47% , UAVCAN . , .



uavcan.org



  • 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


.



. :






All Articles