267-274, mechanik artykuły
[ Pobierz całość w formacie PDF ]
//-->MECHANIK 7/2015XIX Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i EksploatacjiMgr inż. Stanisław GRZYWIŃSKIInż. Artur OLENDERInż. Mateusz WÓJTOWICZInż. Wiktor ZIĘBAWojskowa Akademia TechnicznaDOI: 10.17814/mechanik.2015.7.239SYSTEM WSPOMAGANIA DOWODZENIANA SZCZEBLU PODODDZIAŁUCZĘŚĆ 2. ROZWIĄZANIA PROGRAMOWEStreszczenie: W artykule przedstawiono rozwiązania programoweurządzenia mechatronicznego przeznaczonego do wspomagania dowodzeniaw czasie działań bojowych żołnierzy na polu walki.SUB-UNIT LEVEL COMMAND SUPPORT SYSTEMPART 2. SOFTWAREAbstract: The article presents software solutions for the mechatronic devicedesigned to support command during combat troops on the battlefield.Słowa kluczowe: Raspbbery Pi, IMU, GPS, stabilizacja obrazuKeywords: Raspbbery Pi, IMU, GPS, image sabilization1. WPROWADZENIERozwiązanie sprzętowe koncepcji systemu wspomagania dowodzenia opisane w artykule [1]do poprawnej pracy i wykorzystania w pełni swoich funkcjonalności potrzebujeodpowiedniego oprogramowania.Celem niniejszego artykułu jest zaprezentowanie na przykładzie opracowanych rozwiązańprogramowych koncepcji systemu wspomagania dowodzenia na szczeblu małegopododdziału wielu problemów, jakie można napotkać, projektując oprogramowanie dlaurządzeń wielosensorowych z cyfrową transmisją danych czasu rzeczywistego, działającychw sieciach WLAN.2. ROZWIĄZANIA PROGRAMOWESchemat funkcjonalny oprogramowania systemu wspomagania dowodzenia na szczeblupododdziału przedstawiono na rys. 1. Działanie systemu oparto na dedykowanym dlakomputera Raspberry Pi systemie operacyjnymRaspbian Wheezy,który jest jedną z wieludystrybucjiLinuxa.Wybór umożliwił oprogramowanie urządzenia oraz pracę w trybachkonsolowym przy wykorzystaniu powłokiBash(ang.Bourn Again Shell)i graficznym –GUI(ang.Graphical User Interface).Oprogramowania z rodzinyLinuxumożliwiają edycję jądrasystemu oraz jego plików źródłowych, przez co możliwe jest precyzyjne dostosowaniesystemu operacyjnego do potrzeb sprzętowych [2]. Pliki systemowe wraz z opracowanym267MECHANIK 7/2015XIX Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i Eksploatacjioprogramowaniem zostały zapisane na karcie SD, przez co znacznie zmniejszono rozmiaryurządzenia.Rys. 1. Schemat funkcjonalny oprogramowaniasystemu wspomagania dowodzenia na szczeblu pododdziałuW celu uruchomienia karty sieciowej oraz utworzenia połączenia sieciowego WLANkonieczne było zaimplementowanie na urządzeniu sterownika karty sieciowej orazwykorzystanie programuHostAPD.Program ten jest to demon przestrzeni użytkownikasłużący do obsługi bezprzewodowych punktów dostępu oraz uwierzytelniania serwerów.Umożliwia utworzenie działającego w tle punktu dostępu dla innych komputerów oraz jegozabezpieczenie w postaci hasła. W rozwiązaniach programowych wykorzystano równieżoprogramowanieisc-dhcp-server,które odpowiada za udostępnienie danychkonfiguracyjnych, takich jak adres IP (ang.Internet Protocol)hosta, brama sieci, adresserwera DNS (ang.Domain Name System)i maska podsieci, łączącym się z RPi urządzeniom.Po skonfigurowaniu obu programów oraz edycji plików systemowych odpowiadających zarozruch systemu utworzono uruchamiającą się wraz z urządzeniem sieć WLAN. Konfiguracjakarty i utworzenie sieci umożliwia elastyczne strumieniowanie danych. Struktura strumieniadanych przedstawiona jest schematycznie na rys. 2.Rys. 2. Struktura strumienia danych [3]Zadanie zobrazowania sytuacji taktycznej zrealizowano, wykorzystując dedykowaną dla RPikamerę. Konfiguracja programowa sprowadzała się do zaadaptowania sterownikówRaspividiRaspistill.Po przeprowadzeniu testów różnych mediów, protokołów i metodstrumieniowania danych multimedialnych, wybrany został najbardziej efektywny sposóbopierający się na strumieniowaniu filmów w formacie MJPEG (ang.Mation Joint PictureExpert Group),czyli sekwencji następujących po sobie, niewiele różniących się obrazów [4].268MECHANIK 7/2015XIX Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i EksploatacjiStrumieniowanie wideo w formacie MJPEG rozdziela film na ciąg danych określającychkolejno wszystkie informacje dotyczące przesyłanego obrazu. Obraz w postaci cyfrowej jestzbiorem macierzy, a strumień tego obrazu jest ciągiem następujących po sobie wartości danejmacierzy. Wybranym do transmisji tego strumienia protokołem jest HTTP (ang.HyperTextTransfer Protocol).Sesja HTTP odpowiadająca za transmisję danych jest sekwencją żądańi odpowiedzi sieciowych, przy czym żądania wysyłane są przez użytkownika (moduł master),a odpowiedzi przez serwer posiadający dostęp do plików źródłowych (moduł slave). Dziękiwykorzystaniu tego protokołu odbiór danych możliwy będzie na praktycznie każdymurządzeniu, ponieważ jest on standardowym protokołem wykorzystywanym przezprzeglądarki internetowe. Za tworzenie obrazów oraz ich strumieniowanie przez siećodpowiada program MJPG Streamer. Tworzone przez niego obrazy przesyłane są domikrokomputera interfejsem CSI. Oprogramowanie RPi przetwarza obraz na strumień danychi wysyła go przy wykorzystaniu interfejsu Wi-Fi do modułu master. Dzięki wykorzystaniuformatu MJPEG nie są przesyłane wszystkie dane dotyczące poszczególnych klatek podglądu,a tylko te, które uległy zmianie względem poprzedniej klatki. Rozwiązanie to zwiększapłynność transmitowanego obrazu i zapewnia efektywniejsze wykorzystanie procesora RPi.Do zapewnienia poprawnego działania aplikacji konieczna była implementacja bibliotek,takich jak:‒Libjpeg62-dev,która usprawnia obsługę multimediów opartych na formacie JPEG [5],‒Imagemagick,umożliwiająca tworzenie, edycję, kompresję i konwersję obrazów [6].Dzięki wbudowanemu modułowi sieciowemu możliwe jest umieszczenie danych na stronieinternetowej o adresie będącym numerem IP mikrokomputera RPi wraz z odpowiednimportem sieciowym. Schemat funkcjonalny układu transmisji podglądu przedstawionona rys. 3.Rys. 3. Schemat funkcjonalny układu transmisji podgląduZa stabilizację kamery odpowiada podsystem zbudowany przy wykorzystaniu żyroskopui akcelerometru czujnika MPU-6050 oraz dwóch silników krokowych wraz ze sterownikami.269MECHANIK 7/2015XIX Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i EksploatacjiUkład pomiarowy wykorzystuje do transmisji danych magistralę I2C, natomiast sterowaniesilnikiem możliwe jest poprzez wykorzystanie interfejsu ogólnego przeznaczenia GPIO.W celu zapewnienia poprawnej komunikacji czujników pomiarowych oraz urządzeńwykonawczych z procesorem, niezbędne było zainstalowanie sterowników do obsługiinterfejsu GPIO oraz I2C. W celu realizacji zadania stabilizacji kamery opracowano skrypt,który został napisany w językuPythonz wykorzystaniem środowiskaIDLE.W programiezostały zdefiniowane funkcje inicjujące transmisję danych oraz określające parametry pracyczujnika IMU. Po każdorazowym uruchomieniu programu następuje także automatycznakalibracja przyrządów pomiarowych. Układ stabilizacji działa z wykorzystaniem pętlisprzężenia zwrotnego. Sygnałem zadanym jest wartość kąta w płaszczyźnie x oraz y.Sygnałem z pętli sprzężenia zwrotnego jest bieżąca pozycja kamery mierzona przez czujnikMPU-6050. Na podstawie uchybu wyliczany jest sygnał sterujący podawany na sterowniksilnika krokowego, a następnie na silnik. Po zainicjowaniu wszystkich procedur startowychsystemuRaspbian Wheezynastępuje automatyczne uruchomienie się skryptu stabilizującegokamerę.W celu określania położenia żołnierza zdecydowano się wykorzystać odbiornikAdafruitUltimate GPS[8]. Sygnał odebrany z satelitów jest przesyłany przez magistralę UART domikrokomputera RPi. Dzięki wcześniejszej instalacjideamona gpsdwraz z programemFoxtrot GPSmożliwa jest obróbka tych danych oraz zobrazowanie aktualnej pozycjiżołnierza na specjalnie w tym celu przygotowanej stronie internetowej (rys. 4).Rys. 4. Widok mapki zobrazowującej położenie żołnierzaJako medium udostępniania i wizualizacji danych wykorzystano, podobnie jak w przypadkukamery, technologię WWW (WorldWide Web)oraz język programowania HTML5. Dziękinowym komponentom języka, takim jakCanvas,możliwe było utworzenie szybkoodświeżających się elementów, dzięki którym film w postaci następujących po sobie obrazóww formacie JEPG mógł być edytowany i wyświetlany na stronie (rys. 5). Strona internetowapowstała w środowisku Notepad ++ 6.7.5.0 PL dała możliwość prezentacji współrzędnychżołnierza w czasie rzeczywistym, wyświetlania, edycji podglądu oraz zapisu zdjęćwykonanych przez kamerę modułu slave.270MECHANIK 7/2015XIX Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i EksploatacjiRys. 5. Widok strony internetowej wyświetlającej jedną klatkę z kameryzobrazowania sytuacji taktycznej271 [ Pobierz całość w formacie PDF ]
zanotowane.pl doc.pisz.pl pdf.pisz.pl charloteee.keep.pl
//-->MECHANIK 7/2015XIX Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i EksploatacjiMgr inż. Stanisław GRZYWIŃSKIInż. Artur OLENDERInż. Mateusz WÓJTOWICZInż. Wiktor ZIĘBAWojskowa Akademia TechnicznaDOI: 10.17814/mechanik.2015.7.239SYSTEM WSPOMAGANIA DOWODZENIANA SZCZEBLU PODODDZIAŁUCZĘŚĆ 2. ROZWIĄZANIA PROGRAMOWEStreszczenie: W artykule przedstawiono rozwiązania programoweurządzenia mechatronicznego przeznaczonego do wspomagania dowodzeniaw czasie działań bojowych żołnierzy na polu walki.SUB-UNIT LEVEL COMMAND SUPPORT SYSTEMPART 2. SOFTWAREAbstract: The article presents software solutions for the mechatronic devicedesigned to support command during combat troops on the battlefield.Słowa kluczowe: Raspbbery Pi, IMU, GPS, stabilizacja obrazuKeywords: Raspbbery Pi, IMU, GPS, image sabilization1. WPROWADZENIERozwiązanie sprzętowe koncepcji systemu wspomagania dowodzenia opisane w artykule [1]do poprawnej pracy i wykorzystania w pełni swoich funkcjonalności potrzebujeodpowiedniego oprogramowania.Celem niniejszego artykułu jest zaprezentowanie na przykładzie opracowanych rozwiązańprogramowych koncepcji systemu wspomagania dowodzenia na szczeblu małegopododdziału wielu problemów, jakie można napotkać, projektując oprogramowanie dlaurządzeń wielosensorowych z cyfrową transmisją danych czasu rzeczywistego, działającychw sieciach WLAN.2. ROZWIĄZANIA PROGRAMOWESchemat funkcjonalny oprogramowania systemu wspomagania dowodzenia na szczeblupododdziału przedstawiono na rys. 1. Działanie systemu oparto na dedykowanym dlakomputera Raspberry Pi systemie operacyjnymRaspbian Wheezy,który jest jedną z wieludystrybucjiLinuxa.Wybór umożliwił oprogramowanie urządzenia oraz pracę w trybachkonsolowym przy wykorzystaniu powłokiBash(ang.Bourn Again Shell)i graficznym –GUI(ang.Graphical User Interface).Oprogramowania z rodzinyLinuxumożliwiają edycję jądrasystemu oraz jego plików źródłowych, przez co możliwe jest precyzyjne dostosowaniesystemu operacyjnego do potrzeb sprzętowych [2]. Pliki systemowe wraz z opracowanym267MECHANIK 7/2015XIX Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i Eksploatacjioprogramowaniem zostały zapisane na karcie SD, przez co znacznie zmniejszono rozmiaryurządzenia.Rys. 1. Schemat funkcjonalny oprogramowaniasystemu wspomagania dowodzenia na szczeblu pododdziałuW celu uruchomienia karty sieciowej oraz utworzenia połączenia sieciowego WLANkonieczne było zaimplementowanie na urządzeniu sterownika karty sieciowej orazwykorzystanie programuHostAPD.Program ten jest to demon przestrzeni użytkownikasłużący do obsługi bezprzewodowych punktów dostępu oraz uwierzytelniania serwerów.Umożliwia utworzenie działającego w tle punktu dostępu dla innych komputerów oraz jegozabezpieczenie w postaci hasła. W rozwiązaniach programowych wykorzystano równieżoprogramowanieisc-dhcp-server,które odpowiada za udostępnienie danychkonfiguracyjnych, takich jak adres IP (ang.Internet Protocol)hosta, brama sieci, adresserwera DNS (ang.Domain Name System)i maska podsieci, łączącym się z RPi urządzeniom.Po skonfigurowaniu obu programów oraz edycji plików systemowych odpowiadających zarozruch systemu utworzono uruchamiającą się wraz z urządzeniem sieć WLAN. Konfiguracjakarty i utworzenie sieci umożliwia elastyczne strumieniowanie danych. Struktura strumieniadanych przedstawiona jest schematycznie na rys. 2.Rys. 2. Struktura strumienia danych [3]Zadanie zobrazowania sytuacji taktycznej zrealizowano, wykorzystując dedykowaną dla RPikamerę. Konfiguracja programowa sprowadzała się do zaadaptowania sterownikówRaspividiRaspistill.Po przeprowadzeniu testów różnych mediów, protokołów i metodstrumieniowania danych multimedialnych, wybrany został najbardziej efektywny sposóbopierający się na strumieniowaniu filmów w formacie MJPEG (ang.Mation Joint PictureExpert Group),czyli sekwencji następujących po sobie, niewiele różniących się obrazów [4].268MECHANIK 7/2015XIX Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i EksploatacjiStrumieniowanie wideo w formacie MJPEG rozdziela film na ciąg danych określającychkolejno wszystkie informacje dotyczące przesyłanego obrazu. Obraz w postaci cyfrowej jestzbiorem macierzy, a strumień tego obrazu jest ciągiem następujących po sobie wartości danejmacierzy. Wybranym do transmisji tego strumienia protokołem jest HTTP (ang.HyperTextTransfer Protocol).Sesja HTTP odpowiadająca za transmisję danych jest sekwencją żądańi odpowiedzi sieciowych, przy czym żądania wysyłane są przez użytkownika (moduł master),a odpowiedzi przez serwer posiadający dostęp do plików źródłowych (moduł slave). Dziękiwykorzystaniu tego protokołu odbiór danych możliwy będzie na praktycznie każdymurządzeniu, ponieważ jest on standardowym protokołem wykorzystywanym przezprzeglądarki internetowe. Za tworzenie obrazów oraz ich strumieniowanie przez siećodpowiada program MJPG Streamer. Tworzone przez niego obrazy przesyłane są domikrokomputera interfejsem CSI. Oprogramowanie RPi przetwarza obraz na strumień danychi wysyła go przy wykorzystaniu interfejsu Wi-Fi do modułu master. Dzięki wykorzystaniuformatu MJPEG nie są przesyłane wszystkie dane dotyczące poszczególnych klatek podglądu,a tylko te, które uległy zmianie względem poprzedniej klatki. Rozwiązanie to zwiększapłynność transmitowanego obrazu i zapewnia efektywniejsze wykorzystanie procesora RPi.Do zapewnienia poprawnego działania aplikacji konieczna była implementacja bibliotek,takich jak:‒Libjpeg62-dev,która usprawnia obsługę multimediów opartych na formacie JPEG [5],‒Imagemagick,umożliwiająca tworzenie, edycję, kompresję i konwersję obrazów [6].Dzięki wbudowanemu modułowi sieciowemu możliwe jest umieszczenie danych na stronieinternetowej o adresie będącym numerem IP mikrokomputera RPi wraz z odpowiednimportem sieciowym. Schemat funkcjonalny układu transmisji podglądu przedstawionona rys. 3.Rys. 3. Schemat funkcjonalny układu transmisji podgląduZa stabilizację kamery odpowiada podsystem zbudowany przy wykorzystaniu żyroskopui akcelerometru czujnika MPU-6050 oraz dwóch silników krokowych wraz ze sterownikami.269MECHANIK 7/2015XIX Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i EksploatacjiUkład pomiarowy wykorzystuje do transmisji danych magistralę I2C, natomiast sterowaniesilnikiem możliwe jest poprzez wykorzystanie interfejsu ogólnego przeznaczenia GPIO.W celu zapewnienia poprawnej komunikacji czujników pomiarowych oraz urządzeńwykonawczych z procesorem, niezbędne było zainstalowanie sterowników do obsługiinterfejsu GPIO oraz I2C. W celu realizacji zadania stabilizacji kamery opracowano skrypt,który został napisany w językuPythonz wykorzystaniem środowiskaIDLE.W programiezostały zdefiniowane funkcje inicjujące transmisję danych oraz określające parametry pracyczujnika IMU. Po każdorazowym uruchomieniu programu następuje także automatycznakalibracja przyrządów pomiarowych. Układ stabilizacji działa z wykorzystaniem pętlisprzężenia zwrotnego. Sygnałem zadanym jest wartość kąta w płaszczyźnie x oraz y.Sygnałem z pętli sprzężenia zwrotnego jest bieżąca pozycja kamery mierzona przez czujnikMPU-6050. Na podstawie uchybu wyliczany jest sygnał sterujący podawany na sterowniksilnika krokowego, a następnie na silnik. Po zainicjowaniu wszystkich procedur startowychsystemuRaspbian Wheezynastępuje automatyczne uruchomienie się skryptu stabilizującegokamerę.W celu określania położenia żołnierza zdecydowano się wykorzystać odbiornikAdafruitUltimate GPS[8]. Sygnał odebrany z satelitów jest przesyłany przez magistralę UART domikrokomputera RPi. Dzięki wcześniejszej instalacjideamona gpsdwraz z programemFoxtrot GPSmożliwa jest obróbka tych danych oraz zobrazowanie aktualnej pozycjiżołnierza na specjalnie w tym celu przygotowanej stronie internetowej (rys. 4).Rys. 4. Widok mapki zobrazowującej położenie żołnierzaJako medium udostępniania i wizualizacji danych wykorzystano, podobnie jak w przypadkukamery, technologię WWW (WorldWide Web)oraz język programowania HTML5. Dziękinowym komponentom języka, takim jakCanvas,możliwe było utworzenie szybkoodświeżających się elementów, dzięki którym film w postaci następujących po sobie obrazóww formacie JEPG mógł być edytowany i wyświetlany na stronie (rys. 5). Strona internetowapowstała w środowisku Notepad ++ 6.7.5.0 PL dała możliwość prezentacji współrzędnychżołnierza w czasie rzeczywistym, wyświetlania, edycji podglądu oraz zapisu zdjęćwykonanych przez kamerę modułu slave.270MECHANIK 7/2015XIX Międzynarodowa Szkoła Komputerowego Wspomagania Projektowania, Wytwarzania i EksploatacjiRys. 5. Widok strony internetowej wyświetlającej jedną klatkę z kameryzobrazowania sytuacji taktycznej271 [ Pobierz całość w formacie PDF ]