Lab1 » Historia » Wersja 1
Dawid Seredyński, 2018-06-13 11:45
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 | 1 | Dawid Seredyński | Szczegółowe uwagi do korzystania z przewodnika, z podziałem na rozdziały: |
20 | 1 | Dawid Seredyński | |
21 | 1 | Dawid Seredyński | Installing and Configuring Your ROS Environment |
22 | 1 | 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, |
23 | 1 | Dawid Seredyński | Tworząc swój katalog roboczy (worskpace) Create a ROS Workspace korzystamy z domyślnej opcji catkin |
24 | 1 | Dawid Seredyński | Navigating the ROS Filesystem |
25 | 1 | Dawid Seredyński | Podobnie jak poprzednio konsekwentnie trzymamy się wersji catkin. Tak też będzie i w kolejnych pozycjach przewodnika, |
26 | 1 | Dawid Seredyński | W laboratorium jest już zainstalowany pakiet ros-tutorials |
27 | 1 | 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. |
28 | 1 | Dawid Seredyński | Creating a ROS Package |
29 | 1 | 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, |
30 | 1 | Dawid Seredyński | sekcji package dependencies nie przechodzicie w laboratorium |
31 | 1 | 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). |
32 | 1 | 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. |
33 | 1 | Dawid Seredyński | Building a ROS Package |
34 | 1 | Dawid Seredyński | Ten rozdział taktuje o budowaniu własnego pakietu |
35 | 1 | Dawid Seredyński | Understanding ROS Nodes |
36 | 1 | Dawid Seredyński | Tutaj uruchamiamy węzeł ROS |
37 | 1 | Dawid Seredyński | Understanding ROS Topics |
38 | 1 | Dawid Seredyński | widok z rqt_graph nieco odbiega od tego w przewodniku, nie należy się tym przejmować |
39 | 1 | Dawid Seredyński | nasza dystrybucja ROS jest nowsza niż ROS Hydro |
40 | 1 | Dawid Seredyński | Video Tutorial można pominąć |
41 | 1 | Dawid Seredyński | Understanding ROS Services and Parameters |
42 | 1 | Dawid Seredyński | wpisując w poleceniach argumenty poprzedzone znakiem / powodujemy, że działa podpowiadanie za pomocą tabulatora |
43 | 1 | Dawid Seredyński | Using rqt_console and roslaunch |
44 | 1 | Dawid Seredyński | okienka wyglądają inaczej niż w przewodniku i nie należy się tym przejmować |
45 | 1 | Dawid Seredyński | Using rosed to edit files in ROS |
46 | 1 | Dawid Seredyński | domyślny program do edycji z użyciem rosed można ustawić edytując plik .bashrc w swoim katalogu domowym |
47 | 1 | Dawid Seredyński | Creating a ROS msg and srv |
48 | 1 | Dawid Seredyński | Tutaj trzeba zrobić source do pliku setup.bash ze swojego katalogu roboczego |
49 | 1 | Dawid Seredyński | Writing a Simple Publisher and Subscriber (C++) |
50 | 1 | 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 |
51 | 1 | Dawid Seredyński | Writing a Simple Publisher and Subscriber (Python) |
52 | 1 | Dawid Seredyński | Tworzymy odpowiedni węzłów z poprzedniego rozdziału, tym razem w języku Python |
53 | 1 | Dawid Seredyński | Examining the Simple Publisher and Subscriber |
54 | 1 | Dawid Seredyński | Wyjście konsoli wygląda nieco inaczej niż w przewodniku, |
55 | 1 | Dawid Seredyński | Writing a Simple Service and Client (C++) |
56 | 1 | Dawid Seredyński | Tworzymy węzły napisane w języku C++: serwer usługi i klienta |
57 | 1 | Dawid Seredyński | Writing a Simple Service and Client (Python) |
58 | 1 | Dawid Seredyński | Tworzymy odpowiedni węzłów z poprzedniego rozdziału, tym razem w języku Python |
59 | 1 | Dawid Seredyński | na końcu jest test, który dubluje się z tym z kolejnego rozdziału |
60 | 1 | Dawid Seredyński | Examining the Simple Service and Client |
61 | 1 | Dawid Seredyński | i znowu powtórka z rozrywki z testem |
62 | 1 | Dawid Seredyński | Recording and playing back data |
63 | 1 | Dawid Seredyński | dane z tematów można zapisywać i odtwarzać, o czym traktuje ten rozdział |
64 | 1 | Dawid Seredyński | |
65 | 1 | Dawid Seredyński | Zadanie: |
66 | 1 | Dawid Seredyński | |
67 | 1 | Dawid Seredyński | W katalogu roboczym wykorzystywanym podczas przechodzenia przewodnika aktualizujemy plik .rosinstall rozszerzając go (dodająć linię( o repozytorium z organizacji GitHub przedmiotu |
68 | 1 | Dawid Seredyński | - git: {local-name: src/anro-NAZWA_ZESPOLU, uri: 'https://github.com/PW-EITI-ANRO-NUMER_SEMESTRU/anro-NAZWA_ZESPOLU.git', version: 'master'} |
69 | 1 | Dawid Seredyński | Jeśli nie ma tego pliku należy wywołać wstool init |
70 | 1 | Dawid Seredyński | Pobieramy repozytoria wywołując polecenie wstool update |
71 | 1 | Dawid Seredyński | Pobierane repozytorium nie może być puste. Jeżeli jest puste można mu dodać np. plik README z poziomu GitHub |
72 | 1 | Dawid Seredyński | wchodzimy do podkatalogu src |
73 | 1 | Dawid Seredyński | Wchodzimy do podkatalogu anro-NAZWA_ZESPOLU |
74 | 1 | Dawid Seredyński | W tym katalogu tworzymy nowy pakiet ROS |
75 | 1 | 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 |
76 | 1 | Dawid Seredyński | Program powinien zapewnić sterowanie za pomocą innych klawiszy niż oryginalnie w przewodniku, np: g d p l. |
77 | 1 | Dawid Seredyński | Klawisze, którymi się steruje, powinny być wczytywane z serwera parametrów. Serwer parametrów startuje automatycznie po uruchomieniu roscore. |
78 | 1 | Dawid Seredyński | Dołączamy plik roslaunch, który uruchomi węzeł żółwia i węzeł sterowania |
79 | 1 | Dawid Seredyński | Testujemy system i przedstawiamy prowadzącemu do oceny |
80 | 1 | Dawid Seredyński | |
81 | 1 | Dawid Seredyński | Repozytorium git: |
82 | 1 | Dawid Seredyński | |
83 | 1 | Dawid Seredyński | Zakładamy, że pakiet ROS jest poprawnie napisany |
84 | 1 | Dawid Seredyński | Dodajemy wszystkie pliki oprócz wynikowych za pomocą polecenia git add |
85 | 1 | Dawid Seredyński | Całość komitujemy lokalnie za pomocą polecenia git commit |
86 | 1 | Dawid Seredyński | na serwer wgrywamy poleceniem git push |
87 | 1 | 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. |
88 | 1 | Dawid Seredyński | Podczas prezentacji prowadzącemu pobieramy pakiet z serwera GitHub. |