Oprogramowanie da się wycofać. Wózka widłowego nie

Cyjanotypia autonomicznego wózka widłowego wstawiającego owiniętą paletę do wysokiego regału w ciemnej alejce magazynu, z polem skanera bezpieczeństwa zaznaczonym na posadzce

W systemie zarządzania magazynem zła decyzja to zły wiersz. Paleta trafia do złej lokalizacji, ktoś to zauważa, zapis zostaje poprawiony i jedynym kosztem jest chwila zamieszania. Na tym stoi inżynieria oprogramowania: transakcje, wycofania, kontrola wersji, „cofnij”. Prawie każdy błąd da się odwołać.

Teraz wyślij tę samą decyzję do autonomicznego wózka widłowego. Paleta zostaje podniesiona, przewieziona alejką i odstawiona na regał. Jeśli lokalizacja była zła, nie ma wycofania. Cofnięcie ruchu oznacza wykonanie kolejnego ruchu, z własnym ryzykiem, w świecie, który zmienił się w trakcie pierwszego. A jeśli regał był zły, bo już był obciążony do granicy nośności, błąd przestaje dotyczyć danych.

Dlaczego granica fizyczna zmienia problem

Firma operująca wyłącznie na zapisach nie jest autonomiczna — ktoś nadal musi załadować ciężarówkę, i dlatego wykonanie fizyczne jest jednym z sześciu komponentów na stronie głównej Demertis. Ale w chwili, gdy pętla sięga maszyn, które przemieszczają rzeczy, przestają obowiązywać trzy założenia, na których opiera się oprogramowanie: że działanie da się odwrócić, że obraz świata w systemie jest aktualny i że nikt nie stoi na drodze.

Co się zmienia na krawędzi maszyny

Działania są nieodwracalne. Ruch nie ma odwrotności, jest tylko ruch kompensujący. Odpada więc domyślny nawyk oprogramowania: „spróbuj, a jak się nie uda, wycofaj” — dla wszystkiego, co dotyka świata fizycznego.

Model świata zawsze się spóźnia. Czujniki raportują z opóźnieniem, a położenia zmieniają się w trakcie ruchu trwającego sekundy. Pętla decyduje na podstawie migawki, a działa w świecie, który już poszedł dalej. Projekt zakładający, że migawka jest prawdziwa w chwili działania, prędzej czy później w tej właśnie chwili się pomyli.

Bezpieczeństwo nie może mieszkać w warstwie decyzyjnej. Planista, który ustala, dokąd jadą palety — może model uczony, może duży optymalizator — nie może być tym, co chroni ludzi. Funkcje bezpieczeństwa należą do osobnej warstwy z własnymi czujnikami i sterownikami, która zatrzymuje albo spowalnia maszynę niezależnie od tego, czego chce planista. Planista może prosić o ruch. Nigdy nie może unieważnić zatrzymania.

Zatrzymanie ma kształt. Maszyna, która traci zasilanie w połowie podnoszenia, nie jest bezpieczna dlatego, że stanęła. Każda maszyna potrzebuje zdefiniowanych stanów zatrzymania — od „dokończ ten ruch i czekaj” po „opuść ładunek i odetnij zasilanie” — i to jest fizyczna strona tego, o czym pisaliśmy przy wyłączniku, którego system nie dosięgnie.

W kadrze są ludzie. Nawet obiekt zaprojektowany do pracy bez obsługi ma serwisantów, inspektorów, kierowców dostaw, a w zły dzień także służby ratunkowe. Pętla musi traktować obecność człowieka jako fakt o świecie, a nie jako wyjątek.

Prawo ma już zdanie

Dla regulatorów to nie jest nowy teren. Unijne przepisy o bezpieczeństwie maszyn coraz wyraźniej zajmują się maszynami, których zachowanie może się zmieniać w czasie, a przepisy o sztucznej inteligencji uważniej przyglądają się systemom AI, które mają udział w zapewnianiu bezpieczeństwa takich urządzeń. Normy branżowe dla bezzałogowych wózków przemysłowych opisują, jak ma się zachowywać sama warstwa bezpieczeństwa. Co obowiązuje w przypadku konkretnej maszyny, zależy od tego, czym jest i jak się jej używa — warto to sprawdzić z kimś, kto zna branżę. Autonomiczna działalność nie może traktować tego jako opcji tylko dlatego, że decyzje podejmuje oprogramowanie.

Analiza bezpieczeństwa przed pętlą

Najpierw zagrożenia. Dla każdej maszyny, do której sięgnie pętla: co najgorszego może fizycznie zrobić, gdzie mogą być ludzie i co ją zatrzyma. To przychodzi przed podłączeniem jakiejkolwiek logiki decyzyjnej.

Planista i warstwa bezpieczeństwa osobno. Planista wysyła żądania przez granicę egzekwowaną poza nim, obejmującą strefy fizyczne, prędkości i obciążenia. Warstwa bezpieczeństwa może zawetować każde żądanie i nigdy nie potrzebuje do tego zgody planisty.

Stany zatrzymania są zdefiniowane i ćwiczone. Każdy poziom zatrzymania jest testowany według harmonogramu, w normalnych warunkach, a nie odkładany na dzień, w którym będzie potrzebny.

Zapisuj to, co wyczuto, a nie tylko to, co nakazano. Rejestr pętli fizycznej musi pokazywać, co maszyna faktycznie zrobiła i co widziały jej czujniki, bo polecenie i wynik mogą się różnić.

Poszerzaj świat stopniowo. Symulacja, potem wydzielona cela, potem przestrzeń współdzielona — z analizą bezpieczeństwa pisaną od nowa na każdym etapie. Dlatego też pętla fizyczna figuruje w planie tego programu jako następny etap, w kontrolowanym obiekcie, a nie jako coś, co już działa.

Test na dziś

Wybierz jedno zautomatyzowane działanie w twojej firmie, które dotyka świata fizycznego: polecenie dla robota, przekierowanie paczki na przenośniku, zawór, drzwi, pompę dozującą. Zapisz, co w praktyce oznaczałoby jego cofnięcie.

Jeśli cofnięcie to kolejne działanie fizyczne z własnym ryzykiem, zadaj dwa pytania: kto sprawdził tę ścieżkę i kiedy ostatnio ją przećwiczono? Jeśli nikt nie zna odpowiedzi, działalność polega na nawykach z oprogramowania w miejscu, w którym one nie obowiązują.