Apex.OS Cert – „How ROS 2 was Safety-Certified for Automotive“

Last week, Apex.AI presented their Apex.OS Cert, an ASIL-D certified ROS 2 distribution intended for highly-automated driving. Other than previously stated in the invitation, the presentation took only 1 hour, providing a rough overview of what Apex.AI undertook in order to get their ROS 2 flavor certified. Slides are not yet released, but were told to be shared soon. The slides from Apex.AI’s presentation at the Embedded World 2021 in March are very close, though (slide 9 ff.).

From my point of view these were the main aspects touched by the presentation:

  1. Technical framework aspects they had to solve within ROS 2 that would have prevented certification. They call these the real-time gaps, see image below. This is mainly: runtime memory allocation, exception handling, real-time capable middleware, threading, and scheduling. Apex.AI fixed these issues by plugging in own versions of the allocator, a threading library, their own middleware, scheduler, etc.. Apex.AI Cert is also relying on a safe OS, e.g., QNX., see right-most column in the image above.
  2. For 24(!) ROS 2 C++ packages that Apex.AI considers „safety-related“, they performed a hazard and risc analysis, wrote ~300 requirements, and performed FMEAs. According to Apex.AI, they spent roughly 14 person years to do so and to add the according tests and traceability to reach 100% MC/DC coverage (required by ISO 26262 for ASIL-D).
  3. A tool qualification process for code generators, etc., that are for example part of the middleware layer.
  4. For issues identified during the FMEAs that could not be mitigated on a code level, they provide a safety manual with usage restrictions that need to be adhered to when relying on the certification of Apex.OS Cert.

All of this took 5 iterations with TÜV Nord, resulting in roughly ~200 A4 pages submitted as a safety case. With that, Apex.AI provides a blueprint on how to certify an existing open-source community project for ASIL-D with the approval by TÜV Nord. This might be worth considering for application of further open-source software in safety-critical context.

While the process doesn’t seem to involve any magic, it saves Apex.AI’s customers roughly 14 person years in doing it on their own.

Öffnungsperspektive

Von Politikern eine „klare Öffnungsperspektive“ für einen bestimmten Zeitpunkt in der Zukunft zu fordern ist Unsinn. Diese zu versprechen noch viel unsinniger!

Öffnungsperspektive“ … der wort-gewordene Christian Lindner unter den Wörtern ist schon jetzt mein persönlicher Kandidat für das (Un)wort 2021. Sie zu fordern oder zu versprechen ist absoluter Unsinn, wenn damit das Versprechen gemeint ist, Coronamaßnahmen zu einem bestimmten Zeitpunkt zurückzunehmen. Wann die Maßnahmen zurückgenommen werden sollten, wird nämlich leider durch nichts anderes als die Pandemie bestimmt. Diese wiederum haben wir nur so ca. mittel in der Hand, und dieser Anteil wird praktisch überall mit nur wenigen Ausnahmen1)Australien, Neuseeland, Vietnam, … verzockt.

Sagen also irgendwelche Altmeiers oder Laschets, dass auf jeden Fall bis zu einem gewissen Datum gelockert oder geöffnet wird oder werden muss, ist das kolossaler Blödsinn. Setzen sich gefährlichere Mutationen durch oder Lockdownmaßnahmen schlagen nicht an, sodass sich die Inzidenzen entsprechend entwickeln, ist völlig egal, welche Öffnungsperspektive sich irgendwer gewünscht2)Sich eine Öffnungsperspektive zu wünschen – mit dem Wissen, dass es leider nur genau das ist, ein Wunsch – ist selbstverständlich legitim und trifft vermutlich auf ca. 100% der Bevölkerung zu., gefordert oder versprochen hat.

Ironisch und fatal ist dabei, dass diejenigen, die am lautesten termin-gebundene Öffnungsperspektiven fordern und Öffnungen versprechen, diese am meisten gefährden. Dadurch nämlich, dass sie Öffnungsschritte unabhängig von der Entwicklung der Pandemie und wissenschaftlicher Empfehlungen machen, und damit Welle für Welle, Lockdown für Lockdown, und eine fadenscheinige Öffnungsperspektive nach der nächsten befeuern.

References
1 Australien, Neuseeland, Vietnam, …
2 Sich eine Öffnungsperspektive zu wünschen – mit dem Wissen, dass es leider nur genau das ist, ein Wunsch – ist selbstverständlich legitim und trifft vermutlich auf ca. 100% der Bevölkerung zu.
Meine Impfung mit AstraZeneca

Keine Nebenwirkungen nach Impfung mit Astra-Zeneca

Gestern wurde ich geimpft, mit dem COVID-19-Impfstoff von AstraZeneca (AZD1222). Die Impfung fand in einer gut organisierten Messehalle statt, in der die ganze Zeit genug Abstand zu anderen Impfwilligen war und zu ca. 90% FFP2-Masken getragen wurden. Der ganze Prozess dauerte von Checkin bis Checkout inklusive 15 Minuten Nachbeobachtung nach der Impfung eine gute Stunde. Das Gefühl währenddessen war schon ein merkwürdiges. So deutlich hatte ich bislang noch nicht gefühlt, Teil einer Jahrhundertpandemie und Teil einer kollektiven Kraftanstrengung zu sein.

Ich bei der Impfung
Geimpft mit AstraZeneca AZD1222

Am Tag nach der Impfung kann ich sagen: Nebenwirkungen hatte ich praktisch keine. Ca. 2-3 Stunden nach der Impfung begann ich so etwas wie einen leichten Muskelkater im Arm um die Einstichstelle zu spüren, der bis jetzt immer mal wieder bei Belastung des Arms zu merken ist.

Mehr nicht.

Alles im Rahmen dessen, was man auch von Grippe- oder anderen Impfungen kennt. Ich weiß von Bekannten, die schon mit AstraZeneca geimpft wurde, dass es einen auch mal den Folgetag umhauen kann (Fieber, Kopfschmerzen, …). Aber auch das ist nichts, was man nicht mit Paracetamol erträglich machen kann. Außerdem ist das nichts gegen eine potentielle COVID-19-Infektion mit potentiell sehr schwerem Verlauf.

Also: Impftermin besorgen, sobald es möglich ist!

Habemus Impftermin! – eine Anleitung

Meine aktuelle Heimat Baden-Württemberg hat am vergangenen Freitag die – aus meiner Sicht sehr vernünftige – Entscheidung verkündet, wegen des AstraZeneca-Impfstaus Impfungen für <=65-Jährige niedriger Prioritätsgruppen freizugeben. In dieser Gruppe bin ich.

Ich hatte mich schon vorher damit beschäftigt, wie ich mich im Fall der Fälle um einen Impftermin bemühen würde, kannte also zum Beispiel den Impfterminmonitor. Zu meiner großen Freude hat es mit den gewählten Mitteln sehr schnell funktioniert und ich habe bereits am kommenden Mittwoch, also nur fünf Tage nach der Freigabe, einen Impftermin. Hier dokumentiere ich den Prozess, den ich erst lernen musste und den ich als nicht vollständig intuitiv empfinde:

Schritt 1

Schritt 1 ist, auf impfterminmonitor.de nach Impfzentren in der Nähe zu suchen, die AstraZeneca-Termine1)Das gilt für unter-65-Jährige. Ü65 muss stattdessen nach Impfzentren mit verfügbaren Terminen für BioNTech und Moderna suchen verfügbar haben.

Beispiel eines Impfzentrums, in dem aktuell Termine für Impfung mit AstraZeneca verfügbar sind.

Das ist insofern relevant, dass scheinbar* für bis-65-Jährige aktuell nur der Impfstoff von AstraZeneca verimpft wird. BioNTech und Moderna werden wegen der Studienlage um AstraZeneca aktuell wohl für Impfgruppe 1 vorgehalten.* Das folgt der Empfehlung der StIKo und ist aus meiner Sicht nachvollziehbar.

Schritt 2

Klickt man auf dieses Impfzentrum und anschließend auf „Buchen“, führt einen dies zu 116117.app bzw. impfterminservice.de mit der Frage:

Dort holt man sich zuerst seinen persönlichen Vermittlungscode, der pro Tag(!)* und pro Impfzentrum(!)* neu erworben werden muss. Dies tut man, indem man die Frage, ob der Impfanspruch schon geprüft wurde initial mit „Nein“ beantwortet. Wie gesagt: Pro Tag und Impfzentrum einmal bzw. so lange, bis man erfolgreich einen Vermittlungscode für diesen Tag (den Tag des Buchens, nicht den Tag der Impfung) und dieses Impfzentrum erhalten hat. Nach dem Klick auf „Nein“ füllt man aus, warum man glaubt, einen Impfanspruch zu haben, sowie sein Alter. Mit Glück ist zu diesem Zeitraum immer noch AstraZeneca verfügbar und man darf Email + Handynummer2)Über die Handynummer erhält man einen Zahlencode, nach dessen Eingabe erst die Email verschickt wird. Vermutlich* will man darüber sicherstellen, dass man eine schnelle, direkte Kontaktmöglichkeit zu den Impfwilligen hat. angeben, um eine Email mit dem Vermittlungscode und Link zum Buchen im Impfzentrum zu erhalten. Wenn die Meldung erscheint, dass leider kein Impfstoff oder keine Termine (mehr) verfügbar sind, gehe zurück zu Schritt 1.

Schritt 3

Der Link in der Email hat das Format:

https://123-iz.impfterminservice.de/terminservice/suche/XXXX-XXXX-XXXX/12345/

XXXX-XXXX-XXXX ist hier der Vermittlungscode (gültig nur an diesem Tag und nur für dieses Impfzentrum), 12345 die Postleitzahl des Impfzentrums. Der Link kann nun über den Tag (aber nicht mehr am Folgetag) mehrfach aufgerufen werden, um Impftermine zur Auswahl zu bekommen. Die Impftermine in dieser Auswahl sind für Dich bzw. diesen Vermittlungscode 10 Minuten reserviert.*

Bei mir war die Liste der verfügbaren und für mich reservierten Impftermine die ersten gefühlten 50-100 Male: leer!

Schritt 4

Jetzt gilt es also, den Link aus der Email regelmäßig (frühestens alle 10 Minuten) neu aufzurufen und zu hoffen, dass irgendwann Impftermine zur Auswahl stehen. Ich habe mir dazu via Schritt 1+2 Links für fünf Impfzentren3)Die 116117-Hotline prüft für Anrufer auch auf Verfügbarkeit in fünf Impfzentren in der Umgebung, dies scheint also eine vernünftige Zahl zu sein. Da in den Links nicht direkt das Impfzentrum zu erkennen ist (es sei denn, man kennt die Postleitzahlen der Impfzentren auswendig), empfiehlt es sich, eine Liste zu führen, in denen man sich zu den Impfzentren die dazugehörigen Links merkt. in meiner Umgebung generiert.

Das Aufrufen der Links kann man entweder manuell machen oder automatisieren. Ich habe mich für letzteres entschieden deswegen – Achtung – wird es jetzt im Folgenden technisch. Der folgende Schritt ist allerdings optional und kann getrost ignoriert werden.

Automatisieren

Zum Automatisieren der Impfterminabfrage habe ich den folgenden Open-Source-Code genutzt:

https://github.com/joshuajung/116117bot

Dieser Code stellt einen Bot zur Verfügung, den man mit den Links aus den Emails füttert. Der Bot übernimmt die Aufgabe, regelmäßig diese Links aufzurufen und Bescheid zu sagen, sobald ein Termin verfügbar ist. Mit dieser Methode hat es bei mir anderthalb Tage gedauert, um an einen Termin zu kommen.

Ich habe mich dazu bei Pushover registriert (die ersten 30 Tage kostenlos) und dann den Bot mit meinen Pushover-Daten und den fünf Links aus den Emails gefüttert. Ist eine Push-Notification über einen verfügbaren Impftermin angekommen, hat man 10 Minuten Zeit, den entsprechenden Link aus der Email (mit dem passenden Vermittlungscode und der passenden Postleitzahl des Impfzentrums) aufzurufen und den Termin zu bestätigen.

Bei dem obengenannten Bot hat die docker-Variante für mich übrigens nicht funktioniert, sondern ich habe ihn einfach via

$ PUSHOVER_USER="..." PUSHOVER_TOKEN="..." URLS="https://...,https://..." npm start

auf der Kommandozeile (unter Ubuntu) gestartet und laufen gelassen.

Viola!

* hiermit kennzeichne ich meine persönlichen Interpretationen und Schlüsse

References
1 Das gilt für unter-65-Jährige. Ü65 muss stattdessen nach Impfzentren mit verfügbaren Terminen für BioNTech und Moderna suchen
2 Über die Handynummer erhält man einen Zahlencode, nach dessen Eingabe erst die Email verschickt wird. Vermutlich* will man darüber sicherstellen, dass man eine schnelle, direkte Kontaktmöglichkeit zu den Impfwilligen hat.
3 Die 116117-Hotline prüft für Anrufer auch auf Verfügbarkeit in fünf Impfzentren in der Umgebung, dies scheint also eine vernünftige Zahl zu sein. Da in den Links nicht direkt das Impfzentrum zu erkennen ist (es sei denn, man kennt die Postleitzahlen der Impfzentren auswendig), empfiehlt es sich, eine Liste zu führen, in denen man sich zu den Impfzentren die dazugehörigen Links merkt.