15 czerwca 2019

Internet Rzeczy ( IoT ) w magazynie z Google Cloud - przykład systemu

"Internet of Things" to temat wiodący również na konferecji Google Cloud Next ’19. Postaram się wyjawić kilka szczegółów o tym, dlaczego i jak robotyka oraz IoT stają się na serio produkcyjnym standardem.

Wracając do IoT, zastanawiacie się pewnie, co ten temat robi na konferencji Google o chmurach? Rozjaśnię pytanie, w tym roku jeszcze nie rządzi :-)

Jak wiadomo powszechnie, wiele tematów jest wchłanianych przez Google, także temat zwany partnerstwem z największymi producentami Open Source i wielkimi firmami od spraw bankowych, logistycznych, magazynowych i baz danych. Google chce mieć konkurencję pod kontrolą, a wiadomo, że to jest w pewnym sensie win-win, bo partnerzy mogą sprzedawać swoje usługi w wersji "enterprise" w koloejnej z kilku największych chmur publicznych.
Aby nie umniejszać firmie Amazon, w chmurze AWS istnieje również taki market, na którym Ci sami partnerzy sprzedają swoje wersje płatne rozwiązań.

Następnym wchłanianym tematem jest nagłaśniany coraz bardziej aspekt dotyczący masowego zastosowania robotów w produkcji. Temu tematowi został poświęcony m. in. poniższy temat wystąpienia.

Connected Robots: IoT in the Warehouse (Cloud Next '19)

 


 

Jak się domyślacie magazynier, to jeden z pierwszych zawodów, który znika po ponad 150-latach z naszego rynku pracy. Na ten moment zastąpiony jest robotami w wielkich fabrykach, ale kwestią czasu jest zanim zawód magazynier to będzie historia. W opasłych centrach magazynownia już ludzie nie biegają za paczuszkami, a stanowią jedynie nadzorców procesów, sortują niewygodne dla manipulatorów w robotach detale, wspomagają roboty w ich masowej pracy. Celowo wytłuszczam wspomagają, bo tak na prawdę, to kwestia powstania w miarę uniwersalnego manipulatora i pozamiatane :-)



Wracając do wykładu, to przedstawia on dziedzinę magazynowania odnosząc się do IoT jako konieczność w tych czasach i naturalny kierunek rozwoju dla  magazynów (ang. warehouses). Zaprezentowany jest jeden z przedstawicieli gatunku - robot wspomagający prace magazynowe. Przy okazji opowiadają, że do prototypowania i testowania nowych konceptów, nowego softu wspierają się też usługą Kubernates, gdyż jest wygodną formą stawiania infrastruktury na życzenie. Prowadzący wyjaśnia, że pokazany wyżej robot powstał w 9 miesięcy dzięki:
  • platformie NVIDIA Jetson
  • platformie ROS Open Source
  • platforma Google Cloud




Na powyższym diagramie prowadzący wyjaśnia, że dzięki robotom zawód magazyniera może doznać znaczącej poprawy wydajności i roboty wyraźnie przyspieszają pracę magazynu. Da się to zmierzyć i można powiedzieć, że każdy człowiek współpracujący z robotem na magazynie jest 2/3-razy wydajniejszy.

Efektywność jest określana przez dane i decyzje. Roboty, które pracują na magazynie mają bardzo wiele danych z czujników i ciągle podejmują decyzje o kolejnych zadaniach. Prowadzący wyjaśnia, że dzięki pojęciu inteligencji operacyjnej oraz złożonym zapytaniom w czasie rzeczywistym, możliwe jest działanie bez przerw i znaczących awarii. Zamyka się to w slajdzie Data Driven Decisions:





Bardzo ciekawe jest też podejście do diagnostyki sieci WiFi, która służy do komunikacji z farmą robotów. Posiadają dedykowane dashboardy do tego:




Bardzo ważne podczas budowania robotów przemysłowych jest śledzenie tego co robot robi. Mam na myśli, czym się zajmuje w większości czasu. Oto jak prowadzący prezentują nam ten temat i coś przewidywalnego w takim zastosowaniu - robot po prostu w ~50% czasu jeździ :-)



Idąc dalej za metrykami, które w takim magazynie są istotne będzie to  efektywność pracy robota w magazynie. Co jest ciekawego w tym wystąpieniu? Okazuje się, że nie można uzyskać większej wydajności, kiedy zwiększamy prędkość przemieszczania się robotów w magazynie !!!
Z pomocą przychodzi AI i Machine Learning, dzięki któremu inżynierowie przygotowali/wytrenowali modele ML pozwalające uzyskać największą efektywność.
Poniższy slajd obrazuje na górze model podstawowy rozkładu prędkości jazdy, który nie zapewniał oczekiwanej efektywności i na dole, który zapewnia największą efektywność w pracy robotów CHUCK w magazynie. Jak widać model nie ma charakterystyki stałej w czasie (patrz na kolory), co tłumaczy fakt konieczności optymalizacji zależnie od miejsc, które przemierza robot.



Kolejnym zagadnieniem typowym dla powierzchni magazynowych jest orientacja w czasie rzeczywistym, gdzie i jak przemieszczają się zarówno roboty jak i ludzie po magazynie.
Dla prawidłowego działania magazynu niezbędny jest monitoring robotów, które mogą określone zadania. Niechcianym przypadkiem jest blokowanie drogi przez kilka robotów, które "zagubiły się" lub po prostu skończyło im się zasilanie. Monitoring pozycji w czasie rzeczywistym stanowi podstawę utrzymania infrastruktury magazynowej i zapewnia bezpieczeństwo ludziom.




Monitoring w czasie rzeczywistym jest związany z faktem działania magazynu produktowego przez 24h bez przerwy. Klienci oczekują dostawy w 2 dni, więc niezbędne okazują się metryki na temat tempa pracy maszyn i ich stanu. Co ciekawe monitorowanie odbywa się w znanej w świecie Internetu Rzeczy bazie serii czasowych InfluxDB, która spełnia właściwie swoją rolę.
Opowiadający wspomina, o tym, że monitoring CPU robotów jest super ważny, gdyż przegrzanie się procesorów na skutek uszkodzenia wiatraka to typowy przypadek i wówczas roboty zachowują się w nieprzewidywalny sposób.
Wspomina również o koncepcie Preventive Maintenence (PdM) (pol. konserwacja zapobiegawcza), zgodnie z którym można wymieniając w odpowiednich momentach części znając ich zużycie oszczędzić czas klientów. Jest to związane ze zmniejszeniem czasu potrzebnego na angażowanie inżynierów w utrzymanie. Po prostu w tym czasie programiści mogą wytworzyć kolejne ważne i cenne funkcjonalności.



Bardzo ważne okazują się dla utrzymania i weryfikowania optymalnych rozwiązań nagrania ścieżek  jazdy robotów CHUCK. Do tego celu inżynierowie stworzyli specjalne archiwum zapisujące to jak "widzi trasę robot" i mogą w dowolnym momencie "spojrzeć jego oczami"  bez konieczności przelotu osobiście samolotem do odległego o tysiące kilometrów magazynu.


18 maja 2019

Ciekawy raport IoT z wyników ankiety "Eclipse IoT Survey Report"

Czasami zastanawia Was, co w świecie IoT (Internet of Things) się tak na prawdę dzieje.
Mnie również tego typu pytania zajmują i poszukuję stale inspiracji dot. tego, co innych motywuje do wchodzenia w tematykę Internetu Rzeczy. Ogólnie w tematach wokół IoT,  dzieje się wiele: jest wiele konferencji, artykułów, wpisów na blogach, powstają startupy, które wytwarzają nowe koncepty, pojawiają się patenty z Internetu Rzeczy na świecie. Obserwując liczby w temacie IoT mamy wrażenie, że ilość kontentu/wpisów w sieci lawinowo wzrasta.
Najbardziej wiarygodne moim zdaniem okazać się mogą ankiety robione przez niekomercyjne organizacje z ruchu Open Source. Chciałbym dzisiaj przytoczyć i omówić jeden z raportów wytworzony na podstawie ankiety Eclipse IoT Survey Report Reveals Arm & Linux Dominate, Security Concerns.



W kwietniu 2019 roku Grupa robocza Eclipse IoT opublikowała raport z prośbą do globalnej społeczności programistów IoT o podzielenie się swoimi spostrzeżeniami, wymaganiami i priorytetami. Ankietę przeszło 1700 osób w okresie od lutego do marca 2019 r. Wyniki były dość interesujące. Oto główne kierunki wypowiedzi ankietowanych:

  • Internet Rzeczy napędza dziś rzeczywiste, komercyjne wyniki. 65% respondentów pracuje obecnie nad projektami Internetu Rzeczy profesjonalnie lub będzie w ciągu najbliższych 18 miesięcy.
  • Programiści IoT używają głównie C, C ++, Java, JavaScript i Python
  • AWS, Azure i GCP to wiodące platformy chmurowe IoT
  • Trzy najważniejsze obszary branżowe pozostają takie same jak w ubiegłym roku: platformy IoT, automatyka domowa i automatyka przemysłowa / IIoT.
  • MQTT pozostaje dominującym protokołem komunikacji IoT wykorzystywanym przez programistów
  • Eclipse Desktop IDE jest wiodącym środowiskiem IDE do budowania aplikacji IoT

Ostatni punkt może być nieco stronniczy, ponieważ ankieta została przeprowadzona przez grupę roboczą Eclipse IoT, więc większość respondentów znała już środowisko IDE Eclipse.


Obawy dotyczące bezpieczeństwa nieznacznie spadły w porównaniu z ubiegłym rokiem, ale nie jest zaskoczeniem, że 38% respondentów wymienia je jako najważniejsze, ponieważ jest to problem tak skomplikowany do rozwiązania.

Linux jest w zasadzie własnym światem dla bram IoT i węzłów brzegowych o penetracji 76%, podczas gdy FreeRTOS dominuje w przypadku urządzeń z ograniczeniami. Większość systemów operacyjnych innych niż Linux odnotowuje spadek między 2018 a 2019 r. 
Szczególnie w przypadku oprogramowania typu serwery fizyczne (bare metal), który spadł z 20% do 11%. Jedynymi dwoma systemami innymi niż Linux z rosnącym udziałem w rynku są VxWorks i Huawei LiteOS (na licencji BSD). Dystrybucje Linuksa oparte na Debianie, takie jak Ubuntu i Raspbian, a nawet sam Debian dominuje w świecie Linuksa, przy czym co najmniej 30% respondentów wybrało pochodne Debiana do swoich projektów IoT
Projekt Yocto również okazał się silny. Jeśli nie znacie Yacto, warto wspomnieć, że dzięki temu projektowi możemy zautomatyzować budowanie od zera kernela Linuxa i innych systemów wbudowanych. Daje to developerom wygodę w postaci powtarzalności builda oraz łatwego sposobu aktualizacji.



ARM dominował ze swoimi rdzeniami klasy Cortex-M MCU w urządzeniach z ograniczeniami, podczas gdy jest to nieco bardziej rozłożone dla urządzeń klasy brama (gataways) z 70% procent na respondentów korzystających z ARM, a 42% z rozwiązaniami firmy Intel. 
Suma przekracza 100%, ponieważ niektórzy respondenci po prostu używają obu.


Trzema najlepszymi platformami chmurowymi zarządzały duże amerykańskie firmy. Amazon Web Services (AWS) korzysta z 34% respondentów, Microsoft Azure - 23%, a Google Cloud Platform (GCP) - 20%.

Wybrany język programowania jest w dużej mierze przypadkiem wyboru odpowiedniego narzędzia do pracy z C i C ++ preferowanym językiem dla ograniczonych urządzeń. Java i Python dla bram i węzłów brzegowych oraz Java i JavaScript dla chmury IoT.



Jeśli chodzi o protokoły komunikacyjne, HTTP (REST API). Jest na pierwszym miejscu z 49%, następnie MQTT (42%) i WebSockets (26%). Odpowiedzi na protokoły łączne były nieco dziwne, ponieważ łączyły protokoły „średniego poziomu”, takie jak TCP / IP (54,1%) z rozwiązaniami sprzętowymi, takimi jak WiFi (48,2%) i Ethernet (41,2%). Wynikać to może, że wartości dodane w produktach IoT są złożone z wielu protokołów i usług wokół nich.




Materiały dodatkowe:






9 kwietnia 2019

Startuje Google Cloud Next ’19 - keynote, chmura hybrydowa, Atheros, Kubernates

Jak każdy z Was nie mogłem się doczekać nowości ze stajni Google For Developers.
Oto po 18-tej ożywiła się transmisja live na youtube z Google Cloud Next ’19 i przez najbliższych kilka dni zapowiada się naprawdę ciekawie.
Na ten moment szef Google Sundar Pichai opowiedział co jest ważne w obecnej dekadzie. Na szybko, z tego co widać na slajdzie będą to trzy hasła:

  • Infrastructure - infrastruktura jako uniwersalne dobro do budowania świata wirtulanego
  • Innovation - innowacja rozumiana jako używanie nowoczesnych rozwiązań
  • Openness - otwartość, czyli bądźmy bliżej Open Source

Zdecydowanie jestem za, o ile faktycznie z tą otwartością w oprogramowaniu się tak dobrze przyjmie w Open Source, to każdy będzie mówił Kubernates zamiast infrastruktura serwerowa. Zdecydowanie na tym zależy firmie Google, więc specjalnie na tą okazję nazwała/stworzyła swoją adaptację czegoś, do czego możemy przemigrować z Kubernates o nazwie Anthos.


Jaka z kolei filozofia marketingowa stoi za Anthos:
  • Bazuje na technologii Open Source
  • Uruchom na żądanie, na multi i mieszanej chmurze
  • W pełni zarządzalny przez Google
Po tych frazach mam wrażenie, że Google promuje niezarządzalną werję Kubernates z UI w webie i konsolą w ich webshellu. Oczywiscie moje przypuszczenia nie były z kosmosu, oto w następnym wystąpieniu widzimy demo live, które pokazuje jak zmigrować z Kubernates do Anthos :-).

Wcześniej dowiadujemy się o głównych zaletach projektu Anthos:


 Oto zrzuty z live demo - tutaj zwrócić muszę uwagę na coś, co mi się podoba, tzn. graf przepływów pomiędzy modułami i pokazane w czsaie rzeczywistym metryki ruchu w żądaniach na sekundę (rps).
Przypomina ficzer zaczerpnięty z pewnego znanego mi projektu Open Source, którego nazwa jest taka niepasująca do dziedziny ;-) 
Niewątpliwie Google gwarantuje wysoką dostępnąć HA, automatyczną skalowalność i wiele potencjalnie typowych ficzerów w dzieiejszym świecie clouda publicznego.






Początek dla osób związanych z chmurami obliczeniowymi nie jest zaskoczeniem, domyślam się, że jak rok temu pokażą coś z dziedziny Machine Learning, jako ciasteczko na torcie i nie mogę się doczekać, co to będzie.

Osobiście gratuluję wytrwałości i sporego nakładu pracy Googlersom i firmom zrzeszonym w tych wielkich inicjatywach ... jednym słowem są to "bardzo praktyczne narzędzia"  w mojej codzinnej pracy ;)

BTW: gdzieś tam w tle widziałem obrazek sugerujący zastosowanie chmury Google w przemyśle, może coś ciekawego się trafi z mojej ulubionej dziedziny Internet of Things ...