Lab1 » Historia » Wersja 2
Wersja 1 (Dawid Seredyński, 2018-06-13 11:45) → Wersja 2/23 (Dawid Seredyński, 2018-06-13 11:52)
h1. Lab 1: Introduction to ROS www.ros.org
h2. Preparation
* Teams are formed
* The tutor adds teams and their members to organization PW-EITI-ANRO-SUMMER-18 on GitHub.
* Introduction to the laboratories.
h2. Scope:
* Getting familiar with ROS tutorials (http://wiki.ros.org/ROS/Tutorials)
* Read and follow Core ROS Tutorials->Beginner Level without sections: Getting started with roswtf, Navigating the ROS wiki, Where Next?
* We advise you to type commands instead of copying them from the webpage. This should help you remember them.
* Writing your own ROS package.
* Uploading your results (source code) to GitHub
h2. Detailed hints for Ros Tutorials:
* Szczegółowe uwagi do korzystania z przewodnika, z podziałem na rozdziały:
Installing and Configuring Your ROS Environment
*
W laboratorium jest już zainstalowany ROS jak i wszystkie pakiety, które będą dalej potrzebne. Na zajęciach nie należy więc tego robić, natomiast jak najbardziej zachęcam do zainstalowania ROS, w szczególności jego odpowiednich pakietów w domu,
*
Tworząc swój katalog roboczy (worskpace) Create a ROS Workspace korzystamy z domyślnej opcji catkin
*
Navigating the ROS Filesystem
*
Podobnie jak poprzednio konsekwentnie trzymamy się wersji catkin. Tak też będzie i w kolejnych pozycjach przewodnika,
*
W laboratorium jest już zainstalowany pakiet ros-tutorials
*
Żeby polecenie roscd log spowodowało przejście do katalogu z logami konieczne jest wcześniejsze uruchomienie programu roscore w innej konsoli.
*
Creating a ROS Package
*
pamiętajcie by ustawiać ścieżki w konsoli za pomocą polecenia source z odpowiednim argumentami (do waszego katalogu roboczego). Tak też będzie i w kolejnych pozycjach przewodnika,
*
sekcji package dependencies nie przechodzicie w laboratorium
*
Na końcu tego rozdziału przewodnika jest opisany sposób personalizacji pakietu Customizing Your Package. Do edycji pliku package.xml możecie używać edytora wedle uznania np. gedit, lub vim w konsoli. Proszę o wpisane danych jednego z członków zespołu. Uczulam, aby budować katalog roboczy wspominanym już wcześniej poleceniem catkin_make (o tym jest kolejny rozdział) w celu sprawdzenia czy w plikach nie pojawiły się błędy (choć nie wszystkie tak wykryjemy).
*
Domyślnie kompilację i przygotowanie środowiska uruchomieniowego wykonuje się za pomocą polecenia catkin_make z odpowiednimi argumentami. Alternatywnie można skorzystać z jego nowszych odpowiedników catkin_make_isolated lub najnowszego zestawu catkin tools w domyślnym trybie devel. Jeżeli ktoś zdecyduje się na któreś z rozwiązań to powinien konsekwentnie korzystać z niego przez wszystkie laboratoria.
*
Building a ROS Package
*
Ten rozdział taktuje o budowaniu własnego pakietu
*
Understanding ROS Nodes
*
Tutaj uruchamiamy węzeł ROS
*
Understanding ROS Topics
*
widok z rqt_graph nieco odbiega od tego w przewodniku, nie należy się tym przejmować
*
nasza dystrybucja ROS jest nowsza niż ROS Hydro
*
Video Tutorial można pominąć
*
Understanding ROS Services and Parameters
*
wpisując w poleceniach argumenty poprzedzone znakiem / powodujemy, że działa podpowiadanie za pomocą tabulatora
*
Using rqt_console and roslaunch
*
okienka wyglądają inaczej niż w przewodniku i nie należy się tym przejmować
*
Using rosed to edit files in ROS
*
domyślny program do edycji z użyciem rosed można ustawić edytując plik .bashrc w swoim katalogu domowym
*
Creating a ROS msg and srv
*
Tutaj trzeba zrobić source do pliku setup.bash ze swojego katalogu roboczego
*
Writing a Simple Publisher and Subscriber (C++)
*
Tworzymy węzły napisane w języku C++: wysyłający wiadomości na temacie i odbierający takie wiadomości
*
Writing a Simple Publisher and Subscriber (Python)
*
Tworzymy odpowiedni węzłów z poprzedniego rozdziału, tym razem w języku Python
*
Examining the Simple Publisher and Subscriber
*
Wyjście konsoli wygląda nieco inaczej niż w przewodniku,
*
Writing a Simple Service and Client (C++)
*
Tworzymy węzły napisane w języku C++: serwer usługi i klienta
*
Writing a Simple Service and Client (Python)
*
Tworzymy odpowiedni węzłów z poprzedniego rozdziału, tym razem w języku Python
*
na końcu jest test, który dubluje się z tym z kolejnego rozdziału
*
Examining the Simple Service and Client
*
i znowu powtórka z rozrywki z testem
*
Recording and playing back data
*
dane z tematów można zapisywać i odtwarzać, o czym traktuje ten rozdział
h2. The task:
* Zadanie:
W katalogu roboczym wykorzystywanym podczas przechodzenia przewodnika aktualizujemy plik .rosinstall rozszerzając go (dodająć linię( o repozytorium z organizacji GitHub przedmiotu
*<pre>git:
- git: {local-name: src/anro-NAZWA_ZESPOLU, uri: 'https://github.com/PW-EITI-ANRO-NUMER_SEMESTRU/anro-NAZWA_ZESPOLU.git', version: 'master'}</pre>
* 'master'}
Jeśli nie ma tego pliku należy wywołać wstool init
*
Pobieramy repozytoria wywołując polecenie wstool update
*
Pobierane repozytorium nie może być puste. Jeżeli jest puste można mu dodać np. plik README z poziomu GitHub
*
wchodzimy do podkatalogu src
*
Wchodzimy do podkatalogu anro-NAZWA_ZESPOLU
*
W tym katalogu tworzymy nowy pakiet ROS
*
Za pomocą dowolnego z dwóch języków (C++, Python) tworzymy program, który będzie służył do sterowania żółwiem
*
Program powinien zapewnić sterowanie za pomocą innych klawiszy niż oryginalnie w przewodniku, np: g d p l.
*
Klawisze, którymi się steruje, powinny być wczytywane z serwera parametrów. Serwer parametrów startuje automatycznie po uruchomieniu roscore.
*
Dołączamy plik roslaunch, który uruchomi węzeł żółwia i węzeł sterowania
*
Testujemy system i przedstawiamy prowadzącemu do oceny
h2. git repository:
* Repozytorium git:
Zakładamy, że pakiet ROS jest poprawnie napisany
*
Dodajemy wszystkie pliki oprócz wynikowych za pomocą polecenia git add
*
Całość komitujemy lokalnie za pomocą polecenia git commit
*
na serwer wgrywamy poleceniem git push
*
W ramach nowo utworzonego repozytorium na serwerze GitHub z własnym pakietem dodajemy wiki z opisem plików źródłowych oraz instrukcją jak uruchomić system opisany w pliku roslaunch. Dodatkowo schemat i opis struktury systemu wraz z użytymi mechanizmami komunikacji.
*
Podczas prezentacji prowadzącemu pobieramy pakiet z serwera GitHub.
h2. Preparation
* Teams are formed
* The tutor adds teams and their members to organization PW-EITI-ANRO-SUMMER-18 on GitHub.
* Introduction to the laboratories.
h2. Scope:
* Getting familiar with ROS tutorials (http://wiki.ros.org/ROS/Tutorials)
* Read and follow Core ROS Tutorials->Beginner Level without sections: Getting started with roswtf, Navigating the ROS wiki, Where Next?
* We advise you to type commands instead of copying them from the webpage. This should help you remember them.
* Writing your own ROS package.
* Uploading your results (source code) to GitHub
h2. Detailed hints for Ros Tutorials:
* Szczegółowe uwagi do korzystania z przewodnika, z podziałem na rozdziały:
Installing and Configuring Your ROS Environment
*
W laboratorium jest już zainstalowany ROS jak i wszystkie pakiety, które będą dalej potrzebne. Na zajęciach nie należy więc tego robić, natomiast jak najbardziej zachęcam do zainstalowania ROS, w szczególności jego odpowiednich pakietów w domu,
*
Tworząc swój katalog roboczy (worskpace) Create a ROS Workspace korzystamy z domyślnej opcji catkin
*
Navigating the ROS Filesystem
*
Podobnie jak poprzednio konsekwentnie trzymamy się wersji catkin. Tak też będzie i w kolejnych pozycjach przewodnika,
*
W laboratorium jest już zainstalowany pakiet ros-tutorials
*
Żeby polecenie roscd log spowodowało przejście do katalogu z logami konieczne jest wcześniejsze uruchomienie programu roscore w innej konsoli.
*
Creating a ROS Package
*
pamiętajcie by ustawiać ścieżki w konsoli za pomocą polecenia source z odpowiednim argumentami (do waszego katalogu roboczego). Tak też będzie i w kolejnych pozycjach przewodnika,
*
sekcji package dependencies nie przechodzicie w laboratorium
*
Na końcu tego rozdziału przewodnika jest opisany sposób personalizacji pakietu Customizing Your Package. Do edycji pliku package.xml możecie używać edytora wedle uznania np. gedit, lub vim w konsoli. Proszę o wpisane danych jednego z członków zespołu. Uczulam, aby budować katalog roboczy wspominanym już wcześniej poleceniem catkin_make (o tym jest kolejny rozdział) w celu sprawdzenia czy w plikach nie pojawiły się błędy (choć nie wszystkie tak wykryjemy).
*
Domyślnie kompilację i przygotowanie środowiska uruchomieniowego wykonuje się za pomocą polecenia catkin_make z odpowiednimi argumentami. Alternatywnie można skorzystać z jego nowszych odpowiedników catkin_make_isolated lub najnowszego zestawu catkin tools w domyślnym trybie devel. Jeżeli ktoś zdecyduje się na któreś z rozwiązań to powinien konsekwentnie korzystać z niego przez wszystkie laboratoria.
*
Building a ROS Package
*
Ten rozdział taktuje o budowaniu własnego pakietu
*
Understanding ROS Nodes
*
Tutaj uruchamiamy węzeł ROS
*
Understanding ROS Topics
*
widok z rqt_graph nieco odbiega od tego w przewodniku, nie należy się tym przejmować
*
nasza dystrybucja ROS jest nowsza niż ROS Hydro
*
Video Tutorial można pominąć
*
Understanding ROS Services and Parameters
*
wpisując w poleceniach argumenty poprzedzone znakiem / powodujemy, że działa podpowiadanie za pomocą tabulatora
*
Using rqt_console and roslaunch
*
okienka wyglądają inaczej niż w przewodniku i nie należy się tym przejmować
*
Using rosed to edit files in ROS
*
domyślny program do edycji z użyciem rosed można ustawić edytując plik .bashrc w swoim katalogu domowym
*
Creating a ROS msg and srv
*
Tutaj trzeba zrobić source do pliku setup.bash ze swojego katalogu roboczego
*
Writing a Simple Publisher and Subscriber (C++)
*
Tworzymy węzły napisane w języku C++: wysyłający wiadomości na temacie i odbierający takie wiadomości
*
Writing a Simple Publisher and Subscriber (Python)
*
Tworzymy odpowiedni węzłów z poprzedniego rozdziału, tym razem w języku Python
*
Examining the Simple Publisher and Subscriber
*
Wyjście konsoli wygląda nieco inaczej niż w przewodniku,
*
Writing a Simple Service and Client (C++)
*
Tworzymy węzły napisane w języku C++: serwer usługi i klienta
*
Writing a Simple Service and Client (Python)
*
Tworzymy odpowiedni węzłów z poprzedniego rozdziału, tym razem w języku Python
*
na końcu jest test, który dubluje się z tym z kolejnego rozdziału
*
Examining the Simple Service and Client
*
i znowu powtórka z rozrywki z testem
*
Recording and playing back data
*
dane z tematów można zapisywać i odtwarzać, o czym traktuje ten rozdział
h2. The task:
* Zadanie:
W katalogu roboczym wykorzystywanym podczas przechodzenia przewodnika aktualizujemy plik .rosinstall rozszerzając go (dodająć linię( o repozytorium z organizacji GitHub przedmiotu
*<pre>git:
- git: {local-name: src/anro-NAZWA_ZESPOLU, uri: 'https://github.com/PW-EITI-ANRO-NUMER_SEMESTRU/anro-NAZWA_ZESPOLU.git', version: 'master'}</pre>
* 'master'}
Jeśli nie ma tego pliku należy wywołać wstool init
*
Pobieramy repozytoria wywołując polecenie wstool update
*
Pobierane repozytorium nie może być puste. Jeżeli jest puste można mu dodać np. plik README z poziomu GitHub
*
wchodzimy do podkatalogu src
*
Wchodzimy do podkatalogu anro-NAZWA_ZESPOLU
*
W tym katalogu tworzymy nowy pakiet ROS
*
Za pomocą dowolnego z dwóch języków (C++, Python) tworzymy program, który będzie służył do sterowania żółwiem
*
Program powinien zapewnić sterowanie za pomocą innych klawiszy niż oryginalnie w przewodniku, np: g d p l.
*
Klawisze, którymi się steruje, powinny być wczytywane z serwera parametrów. Serwer parametrów startuje automatycznie po uruchomieniu roscore.
*
Dołączamy plik roslaunch, który uruchomi węzeł żółwia i węzeł sterowania
*
Testujemy system i przedstawiamy prowadzącemu do oceny
h2. git repository:
* Repozytorium git:
Zakładamy, że pakiet ROS jest poprawnie napisany
*
Dodajemy wszystkie pliki oprócz wynikowych za pomocą polecenia git add
*
Całość komitujemy lokalnie za pomocą polecenia git commit
*
na serwer wgrywamy poleceniem git push
*
W ramach nowo utworzonego repozytorium na serwerze GitHub z własnym pakietem dodajemy wiki z opisem plików źródłowych oraz instrukcją jak uruchomić system opisany w pliku roslaunch. Dodatkowo schemat i opis struktury systemu wraz z użytymi mechanizmami komunikacji.
*
Podczas prezentacji prowadzącemu pobieramy pakiet z serwera GitHub.