Robot z Raspberry Pi, który zautomatyzował testy pociągów

Robot z Raspberry Pi, który zautomatyzował testy pociągów

W niektórych branżach od poprawnego działania elektroniki zależy ludzkie życie. Dlatego ważne są dokładne testy wszystkich systemów.

Inżynierowie z Sii stworzyli robota testującego system sterowania pociągiem za pomocą paneli dotykowych. Sercem urządzenia jest popularny, miniaturowy komputer Raspberry Pi.

Do tej pory publikowaliśmy przykłady wielu projektów bazujących na popularnym Raspberry Pi. Często pojawiały się tu również informacje o mikrokontrolerach STM. Większość naszych przykładów dotyczyła jednak zagadnień hobbystycznych lub edukacyjnych.

Część czytelników bloga oraz osób uczących się wspomnianych technologii z naszych kursów mogła zastanawiać się nad przemysłowymi zastosowaniami takich układów. Tym razem pora więc na przykład znacznie bardziej rozbudowanego projektu, który jest realizowany przez inżynierów Sii dla jednego z największych producentów pociągów.

Robot, który testuje ekrany dotykowe?

Od lat obserwujemy coraz większą popularność ekranów dotykowych. Wyświetlacze takie stały się też wygodnym interfejsem między maszynistą a pociągiem. Jeden ekran skutecznie zastępuje dziesiątki wskaźników, pokręteł i przełączników.

Poprawne działanie wyświetlacza jest więc kluczowe dla bezpieczeństwa pasażerów. Inżynierowie z Sii stanęli przed zadaniem zbudowania stanowiska, które będzie pozwalało na dokładne przetestowanie takiego panelu operatorskiego w standardowych oraz awaryjnych sytuacjach.

Raspberry Pi model 3 - główny moduł sterujący pracą robota.

Zadanie postawione przed inżynierami Sii

Celem projektu jest opracowanie stanowiska, które będzie pełniło dwa zadania. Po pierwsze, powinno ono symulować systemy znajdujące się w pociągu. Po drugie, za pomocą manipulatora z rysikiem ma fizycznie odtwarzać ruchy maszynisty.

Produkcja pociągu jest skomplikowanym i rozbudowanym zadaniem. Dlatego robot testujący system sterowania przy pomocy ekranów musi być dopasowany do standardu pozostałych narzędzi wykorzystywanych w firmie. Wiąże się to z koniecznością przygotowania platformy webowej, która umożliwia zdalne kontrolowanie testów oraz strumieniowanie obrazu i dźwięku.

Część mechaniczna testera

Każdy pociąg posiada dwa wyświetlacze znajdujące się po przeciwnych stronach składu. W danej chwili aktywny jest tylko jeden z nich (zgodnie z kierunkiem jazdy). Urządzenia testowane są parami, dlatego w masywnej ramie urządzenia znajduje się miejsce do zamontowania dwóch ekranów dotykowych.

Obudowa urządzenia z miejscem na dwa ekrany dotykowe.

Do obudowy przymocowane jest również ruchome ramię, które pozwala symulować ruchy maszynisty. Do napędu posłużyły silniki DC oraz serwomechanizmy. Poszczególne elementy ramienia połączone są za pomocą elementów wydrukowanych w 3D.

Silnik napędowy jednej z osi.

Na końcu manipulatora znajduje się mały serwomechanizm, który precyzyjnie steruje ruchami głowicy wyposażonej w rysik. Dotknięcie ekranu odbywa się przy użyciu elektromagnesu.

Rysik aktywowany za pomocą elektromagnesu.

Napędy są dobrane w taki sposób, aby robot mógł poruszać rysikiem z prędkością zbliżoną do człowieka lub minimalnie większą (w celu przetestowania skrajnych sytuacji).

Elektronika sterująca robotem

Sercem urządzenia jest popularne Raspberry Pi 3. Specjalnie na potrzeby tego projektu inżynierowie z Sii zaprojektowali dedykowanego HATa. Na płytce znajdują się elementy konieczne do sterowania silnikami i serwomechanizmami, złącza do podłączenia napędów oraz czujników.

Prototyp HATa zaprojektowanego przez Sii.

Na płytce znajduje się również mikrokontroler STM32F401RC, który dzięki komunikacji z Raspberry Pi może odpowiednio kontrolować wszystkie podłączone peryferia. Układ ten pracuje w roli sterownika wszystkich elementów podłączonych do HATa, dzięki czemu np. generowanie PWM dla napędów nie musi odbywać się na RPi.

Druga strona płytki z widocznym miejscem na mikrokontroler.

Oprócz tego na część elektroniczną składają się też zabezpieczenia, zasilacze oraz inne urządzenia, które pozwalają symulować stan pociągu prezentowany na testowanych ekranach.

Moduł zasilający konstrukcję.

Oprogramowanie robota

Najciekawszą i najbardziej rozbudowaną częścią projektu jest oprogramowanie. Raspberry Pi pracuje oczywiście pod kontrolą Linuksa. Głównym zadaniem tej platformy jest obsługa kamery, mikrofonu, transmisja strumieni audio oraz wideo. Na RPi uruchomiony jest również serwer www. Kamera oraz mikrofon służą do przesyłania obrazu i audio do zdalnej aplikacji, która następnie analizuje i podejmuje decyzje, od których zależą ruchy robota.

Główny program napisany jest w Pythonie 3, zaimplementowano w nim protokół komunikacyjny ATE (ang. automatic test equipment) oraz wspomniany wcześniej interfejs sieciowy. Aplikacja komunikuje się również z mikrokontrolerem umiejscowionym na dedykowanej płytce. Architektura aplikacji bazuje na niezależnych wątkach komunikujących się między sobą za pomocą asynchronicznych komunikatów.

Zaimplementowana szyna komunikacyjna pozwala na całkowite rozproszenie aplikacji w wątkach, procesach oraz na zewnętrznych maszynach. Architektura taka powstała w związku z koniecznością komunikacji budowanego systemu z różnymi (już istniejącymi) komponentami. Zaletą tego podejścia jest również duża modułowość systemu.

Komunikacja między Raspberry Pi i STM32F401RC odbywa się za pomocą prostych, synchronicznych komunikatów o skończonym czasie. Każdy komponent: silniki, enkodery, sensory i serwa sterowane są niezależnie na osobnych wątkach. Podejście to pozwoliło na niezależne uruchamianie/wyłączanie pracy poszczególnych elementów robota bez blokowania całego systemu.

Efekt końcowy

Ostatecznie udało się stworzyć pierwszą wersję robota zdolnego do testowania działania ekranów odpowiadających za sterowanie pociągiem. W chwili obecnej trwają prace nad drugą wersją robota. Testy odbywają się na zasadzie zadawania pewnych parametrów symulatorowi pociągu i reakcji m.in. na komunikaty pojawiające się na wyświetlaczu w danej chwili.

Przykładowo: komputer pokładowy pociągu wykrywa awarię podzespołu i wyświetla odpowiedni monit na ekranie maszynisty. Robot musi rozpoznać za pomocą kamery błąd i wykonać odpowiednią akcję.

Opisywany tutaj robot jest częścią większego systemu informatycznego. Cała infrastruktura ma na celu automatyzację testów. Dzięki niemu, od teraz, każda weryfikacja działania paneli dotykowych może odbywać się zdalnie, bez ingerencji człowieka.

W ramach tego konkretnego projektu inżynierowie z Sii zaprojektowali model 3D robota, wykonali projekt elektroniki oraz napisali oprogramowanie sterujące. Stworzona została również dokumentacja techniczna. Robot jest w fazie prototypu. Do realizacji projektu wykorzystano następujące technologie oraz oprogramowanie:

  • Linux, Python 3, C, HTML5, JavaScript, CSS3
  • Atolic TrueStudio dla STM32, PyCharm, KiCad, AutoCAD, Siemens NX 10

Artykuł powstał dzięki współpracy z Sii, a jego głównym celem było przybliżenie wszystkim czytelnikom Forbota jednego z projektów prezentowanych w kampanii rekrutacyjnej firmy. Duże, komercyjne projekty są obwarowane umowami i tajemnicami, dlatego tekst ten nie mógł pokazywać dokładnych szczegółów. Nie było również możliwe pokazanie ostatecznej formy robota testującego ekrany.

Twórz ważne projekty - dołącz do Sii

Jestem przekonany, że takie uchylenie rąbka tajemnicy projektu jest znacznie ciekawsze od publikacji standardowego ogłoszenia o pracę. Po lekturze tego wpisu na pewno łatwiej będzie Wam zdecydować, czy chcielibyście zawodowo zajmować się takimi projektami. Więcej informacji oraz inne przykładowe realizacje inżynierów z Sii znaleźć można na stronie http://www.sii.pl/oferty-pracy.

Warto dodać, że firma Sii jest czołowym dostawcą usług IT i inżynierii przemysłowej w Polsce. Do tej pory 3800 inżynierów zrealizowało już ponad 1400 projektów. Dużym atutem firmy jest na pewno fakt posiadania aż 12 biur rozmieszczonych praktycznie w całej Polsce (Warszawa, Gdańsk, Kraków, Poznań, Wrocław, Łódź, Katowice, Lublin, Rzeszów, Bydgoszcz, Częstochowa, Piła) oraz możliwość pracy zdalnej. Z dużym prawdopodobieństwem w niedalekiej odległości od siebie znajdziecie więc oddział Sii, w którym może na Was czekać ciekawa praca!

Artykuł sponsorowany,
przygotowany przy współpracy z firmą Sii Polska.

HAT, pociąg, Python, raspberrypi, robot, STM