Skocz do zawartości

Algorytm SLAM - pomysł na interfejs GUI dla robota mobilnego na komputerze PC


simba92

Pomocna odpowiedź

Witam!

Chciałbym zapytać forumowiczów o pomysł na stworzenie interfejsu GUI po stronie komputera PC do realizacji wizualizacji algorytmu SLAM dla robota mobilnego o napędzie różnicowym, który umożliwiałby mi realizacje następujących zadań :

1) okno GUI powinno zawierać jakieś przyciski(możliwość zmiany parametrów jazdy robota) + pola tekstowe wyświetlające jakieś parametry jazdy robota w przestrzeni 2D w płaszczyźnie XY + okno główne, w którym widoczna byłaby aktualna mapa otoczenia oraz robot.

2) komunikacja robot - PC odbywa się bezprzewodowo po bluetooth tzn. od strony PC(master) mam konwerter USB - UART podpiety do modułu HC - 05 (port COM) , a od strony robota(slave) jest moduł HC 06.

Obliczenia i algorytm SLAM realizowany jest na robocie (STM32) po stronie komputera, chce tylko wizualizować to co dzieje się wokół robota i jest przez niego wysyłane po BT.

No i teraz pytanie : w jakim języku i programie polecacie zrobić GUI realizujące powyższe zadania 1) i 2) ??? Czy samemu pisać program, który odbiera dane z portu COM, później gdzieś je zapisuje na PC np. w pliku .txt , a GUI aktualizuje dane z tego pliku i wyświetla to co chce ??? Którą drogą iść ? Wykorzystać gotowe programy jak np. MATLAB + V REP ( nigdy nie łączyłem tych programów). Czy pisać GUI w C/C++ lub jakimś APi na Windowsa? mam trochę doświadczenia w GUI dla JAVY. Właściwie wszystko sprowadza się do połaczenia jakoś GUI z portem COM i danymi we/wy ??? Wszelkie sugestie i pomysły bardzo mile widziane 🙂

Link do komentarza
Share on other sites

Wszystko zależy od tego co już umiesz. Możliwości jest naprawdę mrowie. Język programowania w zasadzie dowolny zda egzamin. Możesz to nawet zrobić w javascripcie w przeglądarce (z serwerem do danych).

Ja osobiście robię sobie proste wizualizacje i interface-y w PyGame, bo to znam i lubię — ale uczenie się go tylko po to chyba się mija z celem. Z frameworków GUI jest bardzo dobry QT — i ma biblioteki w zasadzie dla dowolnego języka.

Jak się uprzesz, to możesz to nawet w visualbasicu w excelu jako makro napisać.

Link do komentarza
Share on other sites

Może ROS? Zawiera program rviz, który po skonfigurowaniu wyświetli Ci mapę i pozycję robota, masz też opcję po prostu kliknięcia na mapie i wtedy ustawiasz zadaną pozycję. Nie wiem, co jeszcze mógłbyś chcieć ustawić, ale pewnie też się jakoś da.

Jeśli chodzi o to, jakbyś miał to połączyć, to w Pythonie albo C++ musiałbyś napisać program, który odbierałby dane z Twojego robota, konwertował do standardowych typów danych ROSa, a potem publikował na odpowiednim topicu.

Innym rozwiązaniem na szybko jest Pythonowy matplotlib. Możesz po prostu stworzyć macierz n x m ze swoją mapą, wyświetlić to na wykresie jako bitmapa, na to nakładasz pozycję robota i już. Jak dodasz sobie obsługę klikania, to i możesz wysłać komendę, gdzie robot ma pojechać 😉

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Kiedyś pisałem tutorial jak obsługiwać port COM pod C#: https://forbot.pl/blog/port-szeregowy-interfejs-usart-czyli-komunikacja-mikrokontrolera-z-komputerem-id1122

To było dawno, więc coś się mogło zmienić, ale obstawiam, że dalej jest podobnie. Bibliotekę do obsługi portu COM tak naprawdę znajdziesz w każdym popularnym języku. Więc to, czy wybierzesz C#, Javę, Pythona czy jeszcze coś innego zależy tylko od tego w którym języku czujesz się pewniej przy pisaniu reszty aplikacji.

Odradził bym tylko WinApi bo jest dużo bardziej skomplikowane.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.