Hi Spezialisten,

beim Bau von autonomen Robotern gibt es ab und zu das Problem, dass in einem Programm eine Fehlerbdingung auftritt. Das sollte es natürlich bei guter Programmierung nicht geben, aber auch Hardware-Probleme oder Ereignisse von außen könnten ein Programm z.B. zum "Absturz" bringen.

Ich habe derzeit ein Doppel-Prozessor-System, das via I2C verbunden ist. Das System soll wechselseitig feststellen, ob auf der jeweils anderen Seite alles ok ist und ob das Programm dort läuft.
Das habe ich schon umgesetzt durch einen "Heartbeat"-Prozeß, der Alarm gibt, wenn ein "Herzschlag" der anderen Seite nicht mehr bemerkt wird. Das setzt aber z.B. zumindest eine funktionierende I2C-Verbindung voraus, was auch gestört sein könnte.

Wenn z.B. ein Mars-Rover auf dem Mars herumfährt, muss er ja auch merken, wenn sich z.B. ein internes Teilsystem "aufhängt" und muss dann sicher stellen, dass z.B. die Kommunikation mit der Basisstation auf der Erde noch klappt oder Solarzellen zum Licht gedreht werden. Dann müßte er auch versuchen, das 1. System probeweise wieder "hochzufahren", um zu merken, ob es noch funktioniert.

Fragen über Fragen:
Was sind Methoden und Konzepte für so ein Sicherheitskonzept?
Braucht man immer dafür mind. ein ZWEITES Controller System oder gibt es auch eine Sicherheitsmethode für ein EINZELNES Controllersystem, damit es sich selbst überwacht?
Wie würdet ihr sowas programmieren?
Hat jemand das schon einmal gemacht?