Klocki LEGO - kto ich nie zna? Większość z nas miała z nimi kontakt lub ma dzięki swoim pociechom. Jednak czy ktokolwiek zastanawiał się czy takie klocki mogą być przyczynkiem do zaawansowanej robotyki?
Chyba każdy programista zastanawiał się nad programowaniem różnego rodzaju urządzeń elektronicznych - począwszy od elektronicznych termometrów a skończywszy na skomplikowanych urządzeniach potrafiących się poruszać i wykonywać zaprogramowane przez nas czynności. Do tego typu urządzeń zaliczyć możemy między innymi różnego rodzaju roboty. Programowanie ich to spore wyzwanie - kazdy z nich sterowany jest w inny sposób, ma swoją specyficzną kontrukcję, specyficzne API. Czy nie byłoby fajnie gdyby był jeden mechanizm pozwalający na programowanie wszystkich tych urządzeń w łatwy sposób?
Wymagania stawiane przez przemysł, hobbistów, naukowców czy studentów w stosunku do oprogramowania to przede wszystkim możliwość statycznej i dynamicznej konfiguracji urządzeń, asynchroniczne koordynowanie urządzeń wejścia, monitorowanie i interakcja z uruchomionymi systemami, możliwość wykorzystywania gotowych modułów w różnych urządzeniach.
Jest jednak coś co pozwala na pracę z robotami przy niezbyt wysokim koszcie wejścia. Od niedawna na rynku dostępna jest najnowsza wersja Microsoft Robotics Studio. Pod adresem: http://msdn.microsoft.com/robotics/default.aspx można pobrać najnowszą jego wersję .
Jakie są podstawowe zalety tego produktu? To przede wszystkim komponenty wielokrotnego użycia, standardy definiujące sprzęt, praca rozproszona i równoległa, pełna symulacja w wirtualnych świecie bazującym na rzeczywistym z pełnym odwzorowaniem fizyki oraz specjalny język programowania, który jest wizualnym językiem, dzięki czemu jest prosty w użyciu.
Czym zatem jest Robotics Studio. Produkt składa się z trzech podstawowych elementów, które przedstawione są na poniższym rysunku:
Te trzy elementy to:
-
Runtime, czyli silnik całego rozwiązania, który pozwala na oprogramowanie robota
-
Narzędzia, które pozwalają oprogramować nasze urządzenie
-
Usługi i przykłady, czyli pełna dokumentacja wraz z przykładami jak należy pracować i jak korzystać z dostarczonych usług oraz same usługi.
Sam runtime składa się z dwóch najważniejszych elementów:
-
CCR - Concurrency and Coordination Runtime – upraszcza pisanie asynchronicznych aplikacji dzięki możliwości uniknięcia ręcznego sterowania wątkami, blokadami, semaforami, itd.
-
DSS - Decentralized Software Services – lekki model aplikacji opartych na usługach (SOA - services oriented application), który wspiera model programowania REST (Representational State Transfer)
Dla osoby piszącej aplikacje, która ma symulować pracę robota usługi zdefiniowane są na pewnym poziomie abstrakcji, gdzie usługi mogą reprezentować dowolny z elementów jak:
-
Sprzęt – sensory, aparaty, etc.
-
Oprogramowanie – interfejs użytkownika, miejsce składowania danych, etc.
-
Agregacje – mash-upy, połączenie sensorów, etc.
Przykład schematu, który obsługuje zachowanie naszego robota może wyglądać następująco:
Programowanie zachowań robotów możliwe jest przy wykorzystaniu Visual Studio (w tym również wersji Express). Wspierane są wszystkie języki .NET (C++, C#, VB.NET) oraz dodatkowo IronPython. Usługi dostępne dla poszczególnych robotów można konfigurować przy pomocy przeglądarki internetowej, dzięki czemu możliwe jest również konfigurowanie urządzeń zdalnie. Przeglądarka internetowa pozwala na oglądanie stanów, w jakim są usługi, przekonfigurowanie ich, włączenie czy też wyłączenie.
Środowisko do wizualnej symulacji pozwala na tworzenie wizualizacji 3D wraz z zachowaniem wszelkich praw fizycznych. Dodatkowo na rynku jest wiele firm, które tworzą różne dodatki, aby rozszerzyć standardowe zachowania fizyczne. Do całego zestawu oprogramowania dołączona jest bardzo obszerna pomoc w tym ponad 30 tutoriali, zestaw usług dla najbardziej popularnych robotów, zestaw bibliotek i funkcjonalności do obsługi przechwytywania obrazu z kamer, syntezy mowy czy obsługi GPS.
Zachęcam do nuki i zabawy z robotami. Przy okazji polecam audycję radiową, w której miałem przyjemność brać udział, w Polskim Radio EURO. Poniżej jest link do video nakręconego podczas audycji: Audycja w Polskie Radio EURO
Ładowanie





Dyskusja
dodaj komentarz