Lab1 » Historia » Wersja 2
Dawid Seredyński, 2018-06-13 11:52
| 1 | 1 | Dawid Seredyński | h1. Lab 1: Introduction to ROS www.ros.org |
|---|---|---|---|
| 2 | 1 | Dawid Seredyński | |
| 3 | 1 | Dawid Seredyński | h2. Preparation |
| 4 | 1 | Dawid Seredyński | |
| 5 | 1 | Dawid Seredyński | * Teams are formed |
| 6 | 1 | Dawid Seredyński | * The tutor adds teams and their members to organization PW-EITI-ANRO-SUMMER-18 on GitHub. |
| 7 | 1 | Dawid Seredyński | * Introduction to the laboratories. |
| 8 | 1 | Dawid Seredyński | |
| 9 | 1 | Dawid Seredyński | h2. Scope: |
| 10 | 1 | Dawid Seredyński | |
| 11 | 1 | Dawid Seredyński | * Getting familiar with ROS tutorials (http://wiki.ros.org/ROS/Tutorials) |
| 12 | 1 | Dawid Seredyński | |
| 13 | 1 | Dawid Seredyński | * Read and follow Core ROS Tutorials->Beginner Level without sections: Getting started with roswtf, Navigating the ROS wiki, Where Next? |
| 14 | 1 | Dawid Seredyński | * We advise you to type commands instead of copying them from the webpage. This should help you remember them. |
| 15 | 1 | Dawid Seredyński | |
| 16 | 1 | Dawid Seredyński | * Writing your own ROS package. |
| 17 | 1 | Dawid Seredyński | * Uploading your results (source code) to GitHub |
| 18 | 1 | Dawid Seredyński | |
| 19 | 2 | Dawid Seredyński | h2. Detailed hints for Ros Tutorials: |
| 20 | 1 | Dawid Seredyński | |
| 21 | 2 | Dawid Seredyński | * Installing and Configuring Your ROS Environment |
| 22 | 1 | Dawid Seredyński | |
| 23 | 2 | Dawid Seredyński | * 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, |
| 24 | 2 | Dawid Seredyński | * Tworząc swój katalog roboczy (worskpace) Create a ROS Workspace korzystamy z domyślnej opcji catkin |
| 25 | 1 | Dawid Seredyński | |
| 26 | 2 | Dawid Seredyński | * Navigating the ROS Filesystem |
| 27 | 1 | Dawid Seredyński | |
| 28 | 2 | Dawid Seredyński | * Podobnie jak poprzednio konsekwentnie trzymamy się wersji catkin. Tak też będzie i w kolejnych pozycjach przewodnika, |
| 29 | 2 | Dawid Seredyński | * W laboratorium jest już zainstalowany pakiet ros-tutorials |
| 30 | 2 | Dawid Seredyński | * Żeby polecenie roscd log spowodowało przejście do katalogu z logami konieczne jest wcześniejsze uruchomienie programu roscore w innej konsoli. |
| 31 | 1 | Dawid Seredyński | |
| 32 | 2 | Dawid Seredyński | * Creating a ROS Package |
| 33 | 2 | Dawid Seredyński | |
| 34 | 2 | Dawid Seredyński | * 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, |
| 35 | 2 | Dawid Seredyński | * sekcji package dependencies nie przechodzicie w laboratorium |
| 36 | 2 | Dawid Seredyński | * 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). |
| 37 | 2 | Dawid Seredyński | * 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. |
| 38 | 2 | Dawid Seredyński | |
| 39 | 2 | Dawid Seredyński | * Building a ROS Package |
| 40 | 2 | Dawid Seredyński | |
| 41 | 2 | Dawid Seredyński | * Ten rozdział taktuje o budowaniu własnego pakietu |
| 42 | 2 | Dawid Seredyński | |
| 43 | 2 | Dawid Seredyński | * Understanding ROS Nodes |
| 44 | 2 | Dawid Seredyński | |
| 45 | 2 | Dawid Seredyński | * Tutaj uruchamiamy węzeł ROS |
| 46 | 2 | Dawid Seredyński | |
| 47 | 2 | Dawid Seredyński | * Understanding ROS Topics |
| 48 | 2 | Dawid Seredyński | |
| 49 | 2 | Dawid Seredyński | * widok z rqt_graph nieco odbiega od tego w przewodniku, nie należy się tym przejmować |
| 50 | 2 | Dawid Seredyński | * nasza dystrybucja ROS jest nowsza niż ROS Hydro |
| 51 | 2 | Dawid Seredyński | * Video Tutorial można pominąć |
| 52 | 2 | Dawid Seredyński | |
| 53 | 2 | Dawid Seredyński | * Understanding ROS Services and Parameters |
| 54 | 2 | Dawid Seredyński | |
| 55 | 2 | Dawid Seredyński | * wpisując w poleceniach argumenty poprzedzone znakiem / powodujemy, że działa podpowiadanie za pomocą tabulatora |
| 56 | 2 | Dawid Seredyński | |
| 57 | 2 | Dawid Seredyński | * Using rqt_console and roslaunch |
| 58 | 2 | Dawid Seredyński | |
| 59 | 2 | Dawid Seredyński | * okienka wyglądają inaczej niż w przewodniku i nie należy się tym przejmować |
| 60 | 2 | Dawid Seredyński | |
| 61 | 2 | Dawid Seredyński | * Using rosed to edit files in ROS |
| 62 | 2 | Dawid Seredyński | |
| 63 | 2 | Dawid Seredyński | * domyślny program do edycji z użyciem rosed można ustawić edytując plik .bashrc w swoim katalogu domowym |
| 64 | 2 | Dawid Seredyński | |
| 65 | 2 | Dawid Seredyński | * Creating a ROS msg and srv |
| 66 | 2 | Dawid Seredyński | |
| 67 | 2 | Dawid Seredyński | * Tutaj trzeba zrobić source do pliku setup.bash ze swojego katalogu roboczego |
| 68 | 2 | Dawid Seredyński | |
| 69 | 2 | Dawid Seredyński | * Writing a Simple Publisher and Subscriber (C++) |
| 70 | 2 | Dawid Seredyński | |
| 71 | 2 | Dawid Seredyński | * Tworzymy węzły napisane w języku C++: wysyłający wiadomości na temacie i odbierający takie wiadomości |
| 72 | 2 | Dawid Seredyński | |
| 73 | 2 | Dawid Seredyński | * Writing a Simple Publisher and Subscriber (Python) |
| 74 | 2 | Dawid Seredyński | |
| 75 | 2 | Dawid Seredyński | * Tworzymy odpowiedni węzłów z poprzedniego rozdziału, tym razem w języku Python |
| 76 | 2 | Dawid Seredyński | |
| 77 | 2 | Dawid Seredyński | * Examining the Simple Publisher and Subscriber |
| 78 | 2 | Dawid Seredyński | |
| 79 | 2 | Dawid Seredyński | * Wyjście konsoli wygląda nieco inaczej niż w przewodniku, |
| 80 | 2 | Dawid Seredyński | |
| 81 | 2 | Dawid Seredyński | * Writing a Simple Service and Client (C++) |
| 82 | 2 | Dawid Seredyński | |
| 83 | 2 | Dawid Seredyński | * Tworzymy węzły napisane w języku C++: serwer usługi i klienta |
| 84 | 2 | Dawid Seredyński | |
| 85 | 2 | Dawid Seredyński | * Writing a Simple Service and Client (Python) |
| 86 | 2 | Dawid Seredyński | |
| 87 | 2 | Dawid Seredyński | * Tworzymy odpowiedni węzłów z poprzedniego rozdziału, tym razem w języku Python |
| 88 | 2 | Dawid Seredyński | * na końcu jest test, który dubluje się z tym z kolejnego rozdziału |
| 89 | 2 | Dawid Seredyński | |
| 90 | 2 | Dawid Seredyński | * Examining the Simple Service and Client |
| 91 | 2 | Dawid Seredyński | |
| 92 | 2 | Dawid Seredyński | * i znowu powtórka z rozrywki z testem |
| 93 | 2 | Dawid Seredyński | |
| 94 | 2 | Dawid Seredyński | * Recording and playing back data |
| 95 | 2 | Dawid Seredyński | |
| 96 | 2 | Dawid Seredyński | * dane z tematów można zapisywać i odtwarzać, o czym traktuje ten rozdział |
| 97 | 2 | Dawid Seredyński | |
| 98 | 2 | Dawid Seredyński | h2. The task: |
| 99 | 2 | Dawid Seredyński | |
| 100 | 2 | Dawid Seredyński | * W katalogu roboczym wykorzystywanym podczas przechodzenia przewodnika aktualizujemy plik .rosinstall rozszerzając go (dodająć linię( o repozytorium z organizacji GitHub przedmiotu |
| 101 | 2 | Dawid Seredyński | |
| 102 | 2 | Dawid Seredyński | *<pre>git: {local-name: src/anro-NAZWA_ZESPOLU, uri: 'https://github.com/PW-EITI-ANRO-NUMER_SEMESTRU/anro-NAZWA_ZESPOLU.git', version: 'master'}</pre> |
| 103 | 2 | Dawid Seredyński | * Jeśli nie ma tego pliku należy wywołać wstool init |
| 104 | 2 | Dawid Seredyński | |
| 105 | 2 | Dawid Seredyński | * Pobieramy repozytoria wywołując polecenie wstool update |
| 106 | 2 | Dawid Seredyński | * Pobierane repozytorium nie może być puste. Jeżeli jest puste można mu dodać np. plik README z poziomu GitHub |
| 107 | 2 | Dawid Seredyński | * wchodzimy do podkatalogu src |
| 108 | 2 | Dawid Seredyński | * Wchodzimy do podkatalogu anro-NAZWA_ZESPOLU |
| 109 | 2 | Dawid Seredyński | * W tym katalogu tworzymy nowy pakiet ROS |
| 110 | 2 | Dawid Seredyński | * Za pomocą dowolnego z dwóch języków (C++, Python) tworzymy program, który będzie służył do sterowania żółwiem |
| 111 | 2 | Dawid Seredyński | * Program powinien zapewnić sterowanie za pomocą innych klawiszy niż oryginalnie w przewodniku, np: g d p l. |
| 112 | 2 | Dawid Seredyński | * Klawisze, którymi się steruje, powinny być wczytywane z serwera parametrów. Serwer parametrów startuje automatycznie po uruchomieniu roscore. |
| 113 | 2 | Dawid Seredyński | * Dołączamy plik roslaunch, który uruchomi węzeł żółwia i węzeł sterowania |
| 114 | 2 | Dawid Seredyński | * Testujemy system i przedstawiamy prowadzącemu do oceny |
| 115 | 2 | Dawid Seredyński | |
| 116 | 2 | Dawid Seredyński | h2. git repository: |
| 117 | 2 | Dawid Seredyński | |
| 118 | 2 | Dawid Seredyński | * Zakładamy, że pakiet ROS jest poprawnie napisany |
| 119 | 2 | Dawid Seredyński | * Dodajemy wszystkie pliki oprócz wynikowych za pomocą polecenia git add |
| 120 | 2 | Dawid Seredyński | * Całość komitujemy lokalnie za pomocą polecenia git commit |
| 121 | 2 | Dawid Seredyński | * na serwer wgrywamy poleceniem git push |
| 122 | 2 | Dawid Seredyński | * 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. |
| 123 | 2 | Dawid Seredyński | * Podczas prezentacji prowadzącemu pobieramy pakiet z serwera GitHub. |