UAVCAN ist ein offenes, leichtes Protokoll für das integrierte Mobilfunknetz. Kürzlich sein Entwickler und Betreuer Pavel KirienkoSpymsprach auf dem PX4 Developer Summit über das Protokoll , einer wichtigen Konferenz für die Drohnenentwickler, die das Open-Source-Ökosystem rund um den PX4- Autopiloten nutzt, zu dem auch UAVCAN gehört. Und Pavel bereitete im Anschluss an seinen Bericht auch einen ausführlichen Artikel für die russischsprachige Gemeinschaft über Habré vor.
In diesem Artikel werde ich über die praktische Seite der Verwendung des Protokolls aus Sicht der Entwickler von automatischen Steuerungssystemen für UAVs sprechen: Wie wir UAVCAN ausgewählt haben, was wir damit machen und welche Möglichkeiten wir in Zukunft sehen.
Hybrid-UAVs
Ein vertikales Start- und Landeflugzeug (VTOL) ist eine Mischung aus einem Hubschrauber und einem Flugzeug, die aufgrund des aerodynamischen Auftriebs des Flügels länger als ein Hubschrauber halten kann und keine Landebahn oder Startvorrichtung und keinen Fallschirm wie herkömmliche Flugzeugdrohnen erfordert. Die Entwicklung solcher Geräte ist heute eine beliebte und vielversprechende Richtung. Ein solches Gerät kann für Lieferung, Kartierung, Überwachung und andere Zwecke verwendet werden. Die meisten Projekte mit fliegenden Taxis basieren auf demselben Konstruktionsprinzip, zum Beispiel:
- das vollelektrische Lufttaxi Lilium Jet der deutschen Firma Lilium ;
- das geräuscharme Heaviside- Elektroflugzeug der Firma Kitty Hawk von Sebastian Trun (das viele von unbemannten Fahrzeugen kennen);
- Airbus ' Vahana- Projekt .
Ein vertikales Start- und Landeflugzeug der Innopolis University
Wir haben drei Modelle kleiner unbemannter Luftfahrzeuge mit unterschiedlicher Spannweite, Nutzlast und Stromquellen entwickelt - alle elektrisch und mit Verbrennungsmotoren. Wir arbeiten mit dem Kazan Aviation Institute und Luftfahrtunternehmen in Kasan bei Flugzeugkonstruktionen zusammen. Der Schwerpunkt unserer Arbeit liegt auf Elektronik, Algorithmen und automatischer Steuerung.
Was hat UAVCAN damit zu tun?
Für diejenigen im Drohnengeschäft sieht eine typische Kontrollstruktur ungefähr so aus:

Typisches UAV-Layout basierend auf dem PX4-Autopiloten. Quelle Die
Motoren werden von Drehzahlreglern (ESCs) gesteuert, die über PWM-Signale vom Autopiloten mit Sollwerten versorgt werden. Sensoren werden über eine Reihe verschiedener Schnittstellen angeschlossen - UART, I2C, SPI. Plus Telemetrie, Fernbedienung, Stromversorgung - und Sie bekommen eine solche "Spinne" von Drähten. Dies ist jedoch nicht das Hauptproblem.
Je länger die Drähte sind, dh je größer die Vorrichtung ist, desto anfälliger ist diese Schaltung für Tonabnehmer. Wir mussten von Anfang an darüber nachdenken, denn unsere Flugzeuge haben eine Flügelspannweite von 2 und 4 Metern, und dies ist nicht die Grenze.
Zuvor haben wir für das Projekt eines 40-Meter-Luftschiffs mit CAN gearbeitet (nur das Protokoll basierte auf CANOpen). Die Entscheidung für UAVCAN war für uns selbstverständlich: PX4 hat bereits seine Unterstützung, und darüber gab es im Team nicht einmal Streit. Zunächst wollten wir die langen PWM-Leitungen durch eine digitale Schnittstelle ersetzen, um unsere Lösungen auf Flugzeuge mit unterschiedlicher Spannweite zu skalieren.
Es stellt sich heraus, dass UAVCAN kein CAN für UAV ist
Durch das Ersetzen von PWM-Verbindungen durch UAVCAN-Verbindungen haben wir uns keine Gedanken mehr über lange Kabel und Rauschprobleme gemacht und auch die Anzahl der Verbindungen zum Autopiloten erheblich reduziert.
Dafür gab es zwei Möglichkeiten. Die erste besteht darin, Motorregler und Servoantriebe mit UAVCAN-Schnittstelle zu verwenden. Solche sind zum Beispiel bei Zubax . Die zweite besteht darin, UAVCAN-Adapter herzustellen, die direkt neben dem ESC installiert sind. Wir haben uns für die zweite Option entschieden, da die Auswahl an ESC mit UAVCAN-Schnittstelle gering ist. Zuerst verwendeten wir Adapter aus dem UAVCAN for Hobbyists ( UC4H ) -Projekt , dann entschieden wir uns, unsere eigenen Geräte mit einem eingebauten DC-DC-Wandler, unserer eigenen Schaltung, Firmware und Bohrdioden herzustellen .
Unsere Geräte mit UAVCAN-Schnittstelle
Habe den Geschmack
Dann wurde uns klar, dass wir anstelle eines Dutzend Drähte den UAVCAN-Bus verwenden könnten, um nicht nur mit Aktuatoren, sondern auch mit den meisten externen Geräten zu interagieren. Dies wirkt sich auch gut auf die Schwingungsisolation des auf einer speziellen Plattform installierten Controllers aus. Infolgedessen haben wir eine Reihe von Geräten für unseren eigenen Gebrauch entwickelt, aber jetzt sehen wir, dass sie für andere interessant sind:
- Wandler CAN-PWM mit bis zu 4 Kanälen: Das Gerät ist an den CAN-Bus angeschlossen, empfängt und verarbeitet Steuersignale und gibt PWM aus. Sie können die Karte direkt von der Batterie mit bis zu 60 V versorgen. Sie enthält einen DC-DC-Wandler, der die Karte und den Verbraucher mit einer Spannung von 5 V (3 A) versorgt (z. B. eine Servomaschine).
- GPS / Magnetometer / Barometer;
- , Power Management Unit (PMU): ( ). . — , DC-DC . 1000 . CAN ;
- ;
- ;
- ;
Technisch basieren diese Geräte auf dem STM32-Mikrocontroller. Wir entwerfen uns selbst und bestellen die Produktion bei pcbway.ru. Die Firmware wird mit libcanard implementiert .
Unser Gefühl für die Arbeit mit UAVCAN ist eine ziemlich niedrige Einstiegsschwelle. Der neue Mitarbeiter brauchte weniger als eine Woche, um den Abstandssensor sowohl auf der Seite des STM32- als auch des PX4-Autopiloten herauszufinden und zu programmieren.

Wir testen neue Geräte auf einer kleinen dunklen Drohne
und verwenden sie dann in einem Flugzeug:
Ein kurzes Video eines Testfluges unseres VTOL-Flugzeugs in allen Modi
Infolgedessen sieht unser Schema folgendermaßen aus: Schema unserer VTOL-Flugzeuge mit UAVCAN-Sensoren und -Aktuatoren
Welche Vorteile wird uns UAVCAN in Zukunft bieten?
Reservierung
Die wichtigste Aufgabe bei der Implementierung eines auf einem UAV basierenden Produkts ist die Gewährleistung der Zuverlässigkeit. Daran haben wir bereits gearbeitet. Beispielsweise können mehrere unserer GPS- und Fluggeschwindigkeitssensoren parallel angeschlossen und verwendet werden. Aber es gibt noch viel zu tun. Das Duplizieren von Sensoren und Controllern über den CAN-Bus wird höchstwahrscheinlich erleichtert. Sie können zwei Busse an Pixhawk anschließen und aus Redundanzgründen mehrere identische Sensoren am Bus belassen.
Skalierung
In Zukunft wollen wir große Fahrzeuge mit einem Startgewicht von mehr als 30 kg herstellen, obwohl dies schwer zu zertifizieren ist. Die Skalierbarkeit der auf UAVCAN basierenden Architektur ermöglicht es, ehrgeizige Pläne zu erstellen.
Echte HIL-Simulation
Jetzt entwickelt sich das Thema UAV-Betrieb im städtischen Umfeld aktiv weiter - Urban Air Mobility (UAM). Um UAM-Aufgaben zu implementieren, müssen Sie sich stärker auf Sensoren wie Kameras und Lidars verlassen. Hier wird es notwendig, intelligente Steuerungssysteme zu entwickeln und zu debuggen sowie deren Zuverlässigkeit zu erhöhen. Zu diesem Zweck entwickelt ein anderes Team der Innopolis University den Innopolis Simulator für autonome bewegliche Objekte auf Basis von Unity 3D zum Testen, Debuggen und Trainieren. Innopolis Simulator Für unsere VTOL-Flugzeuge verwenden wir den Innopolis Simulator in Verbindung mit Gazebo zur fotorealistischen Simulation , Kontrollprüfung und Verarbeitung von Sensordaten - Lidars und Kameras.
Jetzt arbeiten wir an unserem eigenen Dynamiksimulationsmodul anstelle von Gazebo mit genauerer Aerodynamik sowie an einer weiteren Funktion - der echten HIL-Simulation (von Hardware in the Loop oder Software- und Hardware-Simulation, PAM).
In unserer Lösung stammen alle Daten von Sensoren, und Steuerungen an Motoren und Servos werden über den UAVCAN-Bus gesendet. Warum nicht ein Modul zur Simulation dieser Sensoren auf derselben Busebene erstellen? Anstelle von Geräten verbinden wir einfach einen Computer mit einem Simulator mit dem Controller.
Jetzt erfolgt die HIL-Simulation in PX4 mit speziellen HIL_ * -Nachrichten MAVLINK (Telemetrieprotokoll, arbeitet an einer seriellen Schnittstelle oder UDP / TCP), die Sensoren und Aktoren simulieren.

Diagramm des PX4-Betriebs im HITL-Modus. Die Quellensimulation
, wie sie derzeit in der PX4 implementiert ist, ist eine separate Betriebsart für den Flugregler, die sich von der Flugkonfiguration "Kampf" unterscheidet. Wir simulieren UAVCAN-Nachrichten direkt. Idealerweise weiß der Autopilot nicht einmal, was in der simulierten Umgebung funktioniert. Aber ich muss sagen, dass das Problem der Simulation von IMUs, die sich im Autopiloten befinden und nicht über CAN verbunden sind, konzeptionell noch nicht gelöst wurde. Das vorgeschlagene Schema für den PX4-Betrieb im HITL-Modus mit UAVCAN Diese Lösung erhöht die Zuverlässigkeit der Debugging-Ergebnisse auf dem Simulator, sodass Sie sicherer mit Flugtests fortfahren können. Aviation HIL Simulator. Quelle Ein ähnlicher Ansatz, wenn Geräte auf Schnittstellenebene simuliert werden:
verwendet in großen Luftfahrt, aber mit UAVCAN wir machen es leichter zugänglich und einfacher.
Ausgabe
Es ist großartig, dass die Probleme der Leichtigkeit, Zuverlässigkeit und "Echtzeit" des UAVCAN-Protokolls bereits für uns gedacht wurden, sowie was PX4, ROS und Linux am Ende sind. Es wäre sehr schwierig für uns, unsere Hubschrauber, Flugzeuge, Steuerungssysteme und Planer herzustellen, wenn all dies nicht vorhanden wäre.
Durch die Standardisierung von Protokollen und Software können Entwickler dieselbe Sprache sprechen. Gleichzeitig ist nicht nur die Standardisierung wichtig, sondern auch die Zugänglichkeit, die in hohem Maße einen Open-Source-Ansatz bietet. Dies ermöglicht es, auf den Schultern von Riesen zu stehen, schnell zu ihren Aufgaben überzugehen, anstatt eine lange "Infrastruktur" für die Arbeit aufzubauen, die wir hoffentlich anhand unseres Beispiels in diesem Artikel gezeigt haben.
Nach erfolgreichen Flügen trinken wir Cold Brue