PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sicherheitsaspekte eines sich bewegenden autonomen Robots



holzi
07.12.2008, 18:37
Hallo Forum, seit einiger Zeit stelle ich mir die Frage der Sicherheitsaspekte eines sich bewegenden autonomen Robots. Was passiert, wenn ein solcher Robot ausser Kontrolle gerät. Sei es durch Softwareabsturz, Programmfeher oder gar defekter Hardware. Wie kann ein solcher Robot schnell und sicher abgeschaltet werden, bevor er irgend einen Schaden anrichtet. Mal ganz davon abgesehen, wie schnell und wo sich der Robot bewegt. Meiner Meinung nach müssen solche Sicherheitsaspekte immer mit berücksichtigt bzw. eingebaut werden.
Ich stelle es mir z.B. wie folgt vor:
Es sollte immer eine Verbindung zwischen Robot und PC geben. Das PC-Programm empfängt z.B. die Telemetriedaten und sendet zusätzlich immer ein bestimmtes Zeichen an den Robot. Empfängt der Robot dieses Zeichen nicht mehr, stimmt etwas nicht mehr und der Robot schaltet rigeros aus. Dieses kann z.B. passieren durch einen Rechnerabsturz oder dergleichen. Das ganze aber auch auch anders herum. Empfängt der PC kein bestimmtes Zeichen vom Robot, muss es eine Möglichkeit geben, dass er sich auch ausschaltet.
Wie macht Ihr das denn mit dieser Sicherheit? Es kann doch eigentlich nicht sein, dass der Entwickler in einem Notfall hinter dem Robot herläuft und ihn ausschaltet bzw. einfach aufhebt, damit nichts passiert. Meiner Meinung nach ist es auch völlig egal, wie gross und wie schnell sich der Robot bewegt, für Sicherheit sollte immer gesorgt werden.

Peter

HannoHupmann
07.12.2008, 19:49
Auch die ständige Verbindung zwischen Roboter und PC ist keine Sicherheit. Wenn die Software abstürzt dann ist es wohl auch nicht mehr möglich den Roboter fern zu steuern oder Notabzuschalten. Handsübliche Roboter die Autonom oder Teilautonom sind verfügen über einen Notaus. (Gut sichtbar angebracht). Es empfiehlt sich ausserdem bei Systemen die eine Gefahr für Leib und Leben darstellen gewisse Fail Safe Schaltungen zu implementieren. Damit lässt sich schon sehr viel verhindern (entsprechend groß ist der Aufwand). Industrierobter werden, da sie über keine Sensoren verfügen und auch autonom sind, in einen Käfig gesperrt.

Bei kleinen Systemen wie meinen Robotern gibt es keine Sicherheit, ich schalte das Ding im Notfall aus. Da meine Roboter aber auch keine Geschwindigkeiten entwickeln denen ein Mensch nicht entkommen könnte und nicht über Waffen oder spitze Anbauteile verfügen, seh ich da kein Problem.

Wenn man wirklich Paranoia vor austickenden Robotern hat, dann empfehle ich folgendes Buch zu lesen: How to Survive a Robot Uprising: Tips on Defending Yourself Against the Coming Rebellion von Daniel H Wilson
Damit ist man dann bestens gerüstet und weis wie man sich mit Marmelade gegen Killerroboter verteidigt.

i_make_it
07.12.2008, 20:57
Also ich verwende einen Watchdog.
Ein Schalter in der Stromversorgung der Motoren.
Ein Rückwärtszäler liefert das Haltesignal für den Schalter solange der Zähler nicht null ist.

Der MC setzt den Zähler per Routine wieder auf Maximum.
Der Zähler ist Hardware

holzi
08.12.2008, 04:56
Genau das ist meiner Meinung nach das Problem.
"Bei kleinen Systemen wie meinen Robotern gibt es keine Sicherheit, ich schalte das Ding im Notfall aus. "
Also hinterher und ausschalten. Mit der heutigen Technik muss das anders zu lösen sein.
Was ist ein kleines System? Was ist eine Geschwindigkeit?
Wer oder durch wen wird das festgelegt? Jedes sich autonom bewegende Vehikel muss doch über solch eine Art von Sicherheit verfügen, damit schon dem §1 des Robotergesetzes genüge getragen wird. Was passiert denn, wenn ein Wall-E ein kleines Kind anfährt, dass noch nicht laufen kann, sondern sich auf allen Vieren noch bewegt und neugierig ist, was denn da rumfährt. Dieses Kind kann ihm nicht ausweichen, auch wenn keine große Geschwindigkeit gegeben ist. Ist das paranoid?

Peter

oberallgeier
08.12.2008, 09:26
Hi holzi,

was sich als Schlagwort easy und cool anhört - fail safe - ist eine komplexe Sache, die viel Verständnis, Wissen und viele Kenntnisse erfordert.


... Was ist ein kleines System? Was ist eine Geschwindigkeit? Wer oder durch wen wird das festgelegt? ...Genau das sind die Fragen, die bei der Konzipierung komplexer Systeme aufgestellt werden, noch bevor allzuviel "auf dem Papier" steht. Du liegst mit diesen Fragen goldrichtig. Manchmal ist nur der Zeitpunkt falsch (zu spät? nie? immer?), an dem diese Fragen gestellt werden.

Eine gründliche Analyse zeigt, was für ein System überhaupt vorliegt, FMEA uä. erlaubt Dir die "Teile" - hard- und softwareseitig - abzustufen nach verschiedenen Gefährdungs- und Sensibilitätsstufen und so gibt es mehrere Vorgehensweisen (alternativ, additiv oder nebeneinander). Für die sensibelsten und gefährllichsten Abschnitte wird man vollständige Matrizen alternativer Lösungen entwerfen und wenn irgendwie möglich die sichersten Varianten wählen - wenn die Wahl noch möglich ist. (Anmerkung: das klingt als würde man >>hinterher<< alles neu aufrollen - Reengineering. Ist nicht. Dieses Vorgehen begleitet den Entwurfsprozess schon nach den ersten Ideenskizzen und wird immer und wieder durchgegangen - sonst verliert man Faden und Übersicht). So, und nun kann man (ich bleib mal jetzt softwareseitig) kritische Pfade mit Markern belegen. Denk Dir so eine Art watchdog, kleine Programmabschnitte, die etwas tun - rechnen - messen, beispielsweise Laufzeiten - etc. Diese watchdogs haben eben wieder watchdogs, von denen die Ergebnisse überprüft werden. Die Ergebnisse müssen leicht überprüfbar sein. Und wenn nun eine "Unsauberkeit" auffällt, dann wird beispielsweise ein Zähler angeworfen, der je nach Gefährdungsstufe unterschiedlich schnell rauf- und runterzählt. Wenn die vorgegebene Schwelle erreicht wird, dann wird mit Warnung, wann immer möglich mit Fehlermeldung - nicht mit Notaus - abgefahren oder bei geringeren Gefahren (blos) eine Warnung, ein Fehler gemeldet. Überleg doch selbst, wie oft Dir an mancher Sache etwas "faul vorkommt". Meist stimmen solche vagen Vermutungen - und ebenso etwas kann man nachempfinden. Übrigens kennst Du sicher solche Entscheidungswege: Du wirst einen Taster mehrfach abfragen und erst wenn überwiegend "offen" erkannt wird, wirst Du die 0-1-Entscheidung "ist offen" treffen. So einfach ist das manchmal.

Redundanz ist möglich, hat aber auch ihre Grenzen: wenn zwei Sensoren unterschiedliche Werte zeigen, welcher hat recht? Also muss ein dritter her. Wenn der auch aus der Reihe fällt - worauf soll dann entschieden werden?

Eine weitere Möglichkeit ist die Vorhersage von Toleranzfeldern und die Überprüfung, wie gut man in der aktuell zugelassenen Bandbreite ist. Ein hübscher, großer Simulator ist mal in einer extremen Lage stehen geblieben - er hatte vorhergesehen (gerechnet !), dass er in ein unzulässiges Gebiet kommt - er war noch garnicht drin! Denn in einem Punkt hast Du völlig recht: hinterherdackeln und den Stecker ziehen (oder in die Endlagen rauschen) ist die dööfste Lösung.

Es läuft hard- und softwareseitig darauf hinaus, dass Sensorik aufgebaut und Gesetzmässigkeit, Systemkenntnis und Erfahrung genutzt wird, um den korrekten Ablauf zu überwachen. Das alles hat natürlich auch Grenzen: technologische, wirtschaftliche oder zeitliche (oder persönliche bzw. teaminterne Fähigkeiten). Und da sind wir dann bei "unseren" Hobbyteilen: quick´nd dirty, "mal eben" oder

Program: 16400 bytes (100.4% Full)
(.text + .data + .bootloader)
Data: 1228 bytes (120.0% Full)
(.data + .bss + .noinit)
Die Skizze oben ist weder bindend, noch vollständig, noch bestehe ich darauf, dass so etwas öfters gemacht wird. Aber ähnliche iterative Entwurfs- und Entscheidungsprozesse sind gang und gäbe - und wers nicht tut, fällt nicht immer, aber immer wieder auf die Nase.

Ich weiß jetzt aber nicht, ob Dir diese paar Sätze geholfen haben.

Nachtrag: dass vor diesen Aktionen eine Projektidee steht, mit Machbarkeits- und evtl. (Großindustrie bitte herhören:) Marketingstudie, ein Pflichtenheft etc. ist klar. Dass die Systemanalyse auch die Wechselwirkungen - mögliche, gewünschte, erlaubte und zulässige Wechselwirkungen und deren Grenzen - zwischen Deinem System und der Umwelt einschließt, sollte vorausgesetzt werden (können *gggg*).

holzi
08.12.2008, 17:48
Hallo Oberallgeier,
erst einmal ein Dankeschön für Deine Info. Mit Deiner Erklärung kann ich schon so einiges anfangen. Jedenfalls merke ich, dass diese Problematik einerseits doch wichtig ist und anderer seits recht komplex ist. Auf Grund Deiner Info werde ich mich jedenfalls tiefer in diese Materie einarbeiten und dann mal sehen, was daraus wird. Jedenfalls sollte diese Thematik nicht vernachlässigt werden, so jedenfalls meine Meinung.

Peter

HannoHupmann
08.12.2008, 18:55
@holzi, schon richtig was du sagst. Ich war mal auf einem Kongress und hatte das Vergnügen mit Prof. Dr. Weizenbau in Kontakt zu kommen und der hat eine klugen Satz dazu gesagt: "Ab wann der Tag beginnt und die Nacht aufhört ist schwer zu sagen und hängt häufig vom Standort ab, ob man nun in den Bergen ist oder in einem Tal. Aber der Unterschied zwischen Mitternacht und Mittag ist eindeutig" genauso verhält es sich mit der Definition was eine Geschwindigkeit ist und was ein kleines oder großeses System ist.
Ich leg also einfach irgendwo, für mich, fest, dass ein kleines System weniger als 10kg eigengewicht und eine Geschwindigkeit von unter 4-5km/h erreicht (Wall E hat 6kg und eine max Geschwindigkeit 3-5km/h, in der Öffentlichkeit fährt er nur mit halber Geschwindigkeit). Darunter fallen alle meine Roboter.
Weiter ist es so, dass meine Roboter nur in Versuchsumgebung fahren. D.h. nur an Orten wie meinem Zimmer (da hängt sogar ein Warnschild an der Tür), im Labor oder unter Personen die entweder dazu angehalten werden genug Abstand zu halten oder bescheid wissen und damit ebenfalls Experten auf dem Fachgebiet sind.

Wenn ich mit Wall E in der Öffentlichkeit auftrete hab ich mehr sorgen um Wall E als um die Personen (auf der Kinopremiere für die Kinder, wurde Wall E ziemlich hart rangenommen). Aber ich habe immer ein waches Auge auf meinen Roboter und halte mich in der Nähe auf um im Falle eines Falles eingreifen zu können. Kleinkinder die sich also nicht selbst schützen können, wie in deinem Beispiel, kommen also nicht in die Umgebung meiner Kreationen und ich würde hier auch sofort einschreiten. Achja mein Wall E hat noch eine zusätzlichen nicht gewollte Sicherheitseinrichtung. Stösst er gegen ein kleines Kind, fällt er nach hinten um und kann sich nicht mehr bewegen oder jemand verlezten (ist nämlich vorgekommen wenn die Kinder sich in seinen Weg stellen) :-).

Sollte ich aber irgendwann ein System bauen, dass deutlich größer ist, schwerer und schneller, so werd ich mir auch Gedanken über die Sicherheit machen. Dann allerdings fährt sowas auch nicht mehr öffentlich herum sonder nur noch unter Laborbedingungen (abgesperrter Bereich, nur eingewiesene haben Zugang, etc.).
Für Momente wo eine Absperrung nicht möglich ist, kann man Modis mit reduzierter Kraft und Geschwindigkeit vorsehen.

ähM_Key
08.12.2008, 22:49
Not-Aus drauf, und an sich erstmal so wenig wie möglich was Schaden anrichten kann.

In den Eurobot-Regeln ist das ganz gut festgehalten.

holzi
09.12.2008, 04:34
Guten morgen HannoHupmann,
das finde ich ja nun gut. Du hattest geschrieben, dass es bei Dir an kleinen Systemen keine Sicherheit gibt. Nun stelle ich fest, dass bei Dir auch eine Sicherheit gegeben ist. Sie sieht zwar anders aus als die, die ich meine, aber es ist trotzdem eine Sicherheit gegeben. Irgend wie konnte ich mir auch nicht vorstellen, dass es wirklich keine Sicherheit z.B. beim Wall-E (den ich nebenbei gesagt absolut spitze finde) gibt. Ich werde mich in die Thematik nun entsprechend ein arbeiten und entscheiden, wie weit ich mit dieser Art von Sicherheit gehe. Einen Notschalter am Robot kann ich jedenfalls vergessen, da ich nicht schnell zum Robot laufen kann, um ihn auszuschalten, da er max. 200m entfernt sein wird.
Ich wünsche noch einen schon Tag. Bis zum nächsten mal

Peter

RP6conrad
09.12.2008, 20:17
Beruflich arbeite ich in Automotive. Mit Roboter haben wir taglich zu tun. Bei jeden Machine komm erst die Frage : was kann mit diesen Machine in schlimmsten fall passieren. Abhangig von diese Ergebnis (Personenschade !!), komm die Machine in eine bestimmte Sicherheitscategorie. Autonome Roboter die rundfahren, komen schnell in eine hohe categorie, wo das die Sicherheitsmassnahmen so streng sein, das die in eine Arbeitsumgebung fast nie eingesetzt werden. All unsere Roboter stehen fest, mit eine Schutzumwehrung. Die kann nur betreten werden, wen die Spannung abgeschaltet wird. Teachen von Roboter kann nur mit sehr kleine Geschwindigkeiten und "Toteman pult".
Aber die Frage ist richtig : was kann in schlimmsten Fall passieren !!! Der bauer / entwickler hat da seine verantwortung !!

ähM_Key
09.12.2008, 20:39
Achso, und man sollte möglichst alle Eventualitäten abfangen, so z.B. auch was die Controller ausgeben, wenn ihnen der Saft ausgeht, sonst passiert schnell mal sowas: 18kg bei ~4U/s (http://www.fastshare.org/files/MOV06801_Tornado.MPG) ;)

michiE
29.12.2008, 00:41
Mein Rollstuhl hat ebenfalls einen Watchdog , ähnlich aufgebaut wie von i_make_it beschrieben.
Zusätzlich kontrolliert ein externer µc mit eigener Stromversorgung in einem eigenen Gehäuse , abgeschottet vom restlichen System 5 der Distanzsensoren und schält das System bei unterschreitung einer bestimmten Distanz einfach ab. Dafür sorgt ein Relais das bei Spannungsabfall einfach die komplette Stromversorgung unterbricht.

Der Motortreiber verfügt für dieses Fall ebenfalls über ein Relais , das bei Spannungsabfall an der Stromversorgung des Motortreibers die motoren von den Versorgungsleitungen trenntund deren Anschlüsse miteinander verbindet.
Das Ganze passiert auch, falls die Stromversorgung zu diesem "backup" controller getrennt wird. Oder wenn die Person die sich auf dem Rollstuhl sitzt sich während der Fahrt erhebt.

Ach ja , Warnblinker hat er auch noch , aber eher zum Spaß :)

So viel dazu ;)

lg
Michi