Skip to content

Klub-Almukantarat/maly_woz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mały Wóz

Projekt łazika marsjańskiego.

Uruchomienie dema

Wymagania

Kod używa ROS 2 Jazzy i jest rozwijany głównie dla Linux Ubuntu 24.04. Może być możliwe uruchomienie go na innych platformach, ale obecnie nie są one explicite wspierane.

Plik .env

Na samym początku należy skopiować plik .env.template jako .env (cp .env.template .env) i uzupełnić według posiadango CPU i GPU. Jeśli żadna z opcji nie działa na twoim komputerze, daj znać.

Dostępnymi opcjami na HOST_HW są: [nvidia, intel-amd].

just

just jest programem do robienia aliasów do poleceń. Jest on zdecydowanie wygodniejszy od kopiowania zaklęć z README. W odróżnieniu od własnego skryptu shellowego potrafi łatwo wspierać autouzupełnianie TABem. Jest też dużo łatwiejszy w zrozumieniu i pisaniu od make.

Instalacja just: sudo snap install --edge --classic just

Autouzupełnianie (wymagany restart terminala żeby zadziałało): just just-autocomplete

Aby zobaczyć wszystkie dostępne polecenia, wystarczy uruchomić just.

Docker

Zaleca się używanie Dockera, aby zapewnić jednolite środowisko dla wszystkich programistów. Najpierw musisz go zainstalować, korzystając z oficjalnych instrukcji. Pamiętaj również o wykonaniu post-installation steps, zwłaszcza „Manage Docker as a non-root user”. Możesz się upewnić, że instalacja Dockera działa, uruchamiając polecenie just hello-world-docker, które powinno wyświetlić komunikat powitalny.

NVIDIA z Dockerem

Jesteśmy zależni od GPU NVIDII, więc musimy upewnić się, że Docker może go używać. Najpierw upewnij się, że masz zainstalowane sterowniki GPU na komputerze hosta, możesz skorzystać z instrukcji z Ubuntu help. Następnie musisz zainstalować NVIDIA Container Toolkit na swoim komputerze, aby Docker mógł korzystać z GPU. Skorzystaj z oficjalnej instrukcji, aby zainstalować. Możesz sprawdzić, czy wszystko skonfigurowałeś poprawnie, uruchamiając polecenie just hello-world-nvidia, które powinno wyświetlić informacje o GPU (nazwa, wersja sterownika, temperatura itp.).

TODO: może nie potrzebujemy Nvidii?

Uruchamianie dema pod Windowsem w WSL2

Aby wykorzystać WSL zapoznaj się z tym plikiem.

Budowanie i uruchomienie kontenera Dockera

Aby zbudować obrazy Dockera, uruchom just docker-build. Aby uruchomić kontener z symulacją, uruchom just start-sim-nvidia lub just start-sim-intel-amd (zależnie od CPU i GPU). Aby dołączyć do działającego kontenera uruchom just docker-attach-sim-nvidia lub just docker-attach-sim-intel-amd.

Obrazy i kontenery Dockera

  • maly_woz/base:jazzy - obraz bazowy z zainstalowanym ROS 2 Jazzy, nie uruchamiany jako samodzielny kontener.
  • maly_woz/software:jazzy, nazwa: software - "logika biznesowa", tutaj jest cała logika łazika, algorytmy, itd. Niezależne od platformy (sim/hw), oczekuje sygnałów z czujników i wysyła sygnały do aktuatorów wykorzystując ROS 2.
  • maly_woz/hardware:jazzy, nazwa: hardware - obsługa czujników i aktuatorów działająca tylko na prawdziwym łaziku (drivery).
  • maly_woz/sim:jazzy, nazwa: simulation - symulacja łazika w Gazebo. Oczekuje takich samych wejść i wyjść jak hardware (czujniki, aktuatory), tyle że dane brane są z symulacji.

Budowanie kodu

Repozytorium jest workspacem ROSa. Aby go zbudować w kontenerze, uruchom just ros-build. Budowanie tworzy linki symboliczne, co oznacza, że można zmieniać pliki niekompilowalne (konfiguracyjne, Pythona, xmle, itd.) bezpośrednio w folderze src i będzie to działać (zmiany w C++ wymagają oczywiście ponownej kompilacji).

Uruchamianie dema

Po zbudowaniu możesz uruchomić demo za pomocą just start-sim-nvidia lub just start-sim-intel-amd. W osobnym terminalu just start-soft, i w kolejnym just start-teleop Powinna wystartować symulacja (Gazebo/Ignition) i wizualizacja (RViz) z prostym łazikiem na "Księżycu", a także RTAB-Map umożliwiający odometrię i mapowanie otoczenia. Uruchamiane są również node'y obsługujące sterowanie joystickiem, więc jeśli taki podłączysz, powinieneś być w stanie kontrolować łazik (obecnie nie zaimplementowane). Można również (w osobnym terminalu) uruchomić just start-teleop, który uruchomi node umożliwiający sterowanie za pomocą klawiatury.

Demo running

Development

Do pisania kodu polecany jest VS Code, ponieważ wspiera jednocześnie C++ i Pythona (i inne) oraz ma pluginy do ROSa.

Wcześniej polecane było połączenie się z kontenerem przy developmencie, ale ponieważ soft został podzielony na kilka niezależnych kontenerów, nie jest to obecnie polecana opcja. Aby VS Code dobrze sobie radził z podpowiadaniem składni i widział symbole, polecane jest zainstalować ROSa bezpośrednio na hoście (poza kontenerami) i zbudowanie workspace'a. Mogą przy tym wystąpić problemy w budowaniu, ale powinno nieco lepiej działać. Mile widziane propozycje udoskonalenia tego procesu.

Warto zainstalować dodatki, jakie poleca VS Code (ROS, ROS2, Python, C/C++ Extension Pack).

About

Repository for amateur martian rover project

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •