diff --git a/lab04/README.md b/lab04/README.md index 3a954d5e007b80ba09f35034f441ceedea1a4ec7..7a1ced05167c0cc465a80f31d6b193af2e012d4b 100644 --- a/lab04/README.md +++ b/lab04/README.md @@ -3,13 +3,13 @@ PoĹÄ cz siÄ ze zdalnym Ĺrodowiskiem i ĹciÄ gnij swoje repozytorium do przest # Transformacje pomiÄdzy ukĹadami wspĂłĹrzÄdnych -Przed przystÄ pieniem do omawiania nawigacji waĹźnym jest aby rozumieÄ jak wiele ukĹadĂłw wspĂłĹrzÄdnych znajduje siÄ w platformie robotycznej, jak sÄ one ze sobÄ poĹÄ czone oraz jak okreĹlaÄ poĹoĹźenie i orientacjÄ wzglÄdem poszczegĂłlnych ukĹadĂłw wspĂłĹrzÄdnych. +Przed przystÄ pieniem do omawiania nawigacji waĹźnym jest, aby rozumieÄ jak wiele ukĹadĂłw wspĂłĹrzÄdnych znajduje siÄ w platformie robotycznej, jak sÄ one ze sobÄ poĹÄ czone oraz jak okreĹlaÄ poĹoĹźenie i orientacjÄ wzglÄdem poszczegĂłlnych ukĹadĂłw wspĂłĹrzÄdnych. DziaĹanie zaleĹźnoĹci pomiÄdzy ukĹadami wspĂłĹrzÄdnych zostanie zwizualizowane na przykĹadzie manipulatora o 5 stopniach swobody.  -W systemie ROS moĹźemy wizualizowaÄ roboty i elementy Ĺrodowiska przy pomocy opisu URDF. Na niniejszym laboratorium jednak nie zostanie on wyjaĹniony. JeĹli chcesz dowiedzieÄ jak tworzy siÄ pliki URDF i jak stworzyÄ model wĹasnego robota, to tu znajdziesz wiÄcej informacji [link](http://wiki.ros.org/urdf/Tutorials) (tutorial opisuje jak stworzyÄ prosty model robota R2D2). +W systemie ROS moĹźemy wizualizowaÄ roboty i elementy Ĺrodowiska przy pomocy opisu URDF. Na niniejszym laboratorium jednak nie zostanie on wyjaĹniony. JeĹli chcesz dowiedzieÄ jak tworzy siÄ pliki URDF i jak stworzyÄ model wĹasnego robota, to tu znajdziesz wiÄcej informacji [link](http://wiki.ros.org/urdf/Tutorials) (tutorial opisuje, jak stworzyÄ prosty model robota R2D2). W skrĂłcie pliki URDF pozwalajÄ opisaÄ jak zĹoĹźony jest robot. Z jakich skĹada siÄ elementĂłw i jak sÄ one poĹÄ czone ze sobÄ . @@ -43,7 +43,7 @@ Uruchom plik launch **wizualizacja_urdf** z paketu **laboratorium_pliki_dodatkow  -**Zadanie 1:** Przy pomocy **joint_state_publisher** obrĂłÄ poszczegĂłlne przeguby robota i zobacz jak zmienia siÄ wizualizacja. ZmieĹ staĹy ukĹad wspĂłĹrzÄdnych (Fixed frame) na wybrany ukĹad zaczynajÄ cy siÄ od nazwy **katana_motor**. SprawdĹş jak teraz zmienia siÄ wizualizacja przy ruchach przegubĂłw. +**Zadanie 1:** Przy pomocy **joint_state_publisher** obrĂłÄ poszczegĂłlne przeguby robota i zobacz, jak zmienia siÄ wizualizacja. ZmieĹ staĹy ukĹad wspĂłĹrzÄdnych (Fixed frame) na wybrany ukĹad zaczynajÄ cy siÄ od nazwy **katana_motor**. SprawdĹş jak teraz zmienia siÄ wizualizacja przy ruchach przegubĂłw.  @@ -114,7 +114,7 @@ export TURTLEBOT3_MODEL=waffle roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch ``` -**Zadanie 4:** Uruchom program rqt i zobacz jak wyglÄ dajÄ zaleĹźnoĹci pomiÄdzy ukĹadami wspĂłĹrzÄdnych w tym robocie. +**Zadanie 4:** Uruchom program rqt i zobacz, jak wyglÄ dajÄ zaleĹźnoĹci pomiÄdzy ukĹadami wspĂłĹrzÄdnych w tym robocie. PrzejdĹş do programu RVIZ, zmieĹ ustawienie widoku na **ThirdPersonFollower**, zbliĹź kamerÄ do robota. WĹÄ cz wizualizacjÄ TF i wĹÄ cz widocznoĹÄ tylko nastÄpujÄ cych ukĹadĂłw **base_link**, **base_scan**, **wheel_right_link**, **wheel_left_link**, **odom**. Zmniejsz rozmiar zwizualizowanych ukĹadĂłw wspĂłĹrzÄdnych "Marker scale", tak aby nie przysĹaniaĹy modelu robota. @@ -124,7 +124,7 @@ PrzejdĹş do programu RVIZ, zmieĹ ustawienie widoku na **ThirdPersonFollower**, **Zadanie 6:** ZmieĹ staĹy ukĹad wspĂłĹrzÄdnych "Fixed Frame" z **odom** na **base_scan**. PrzejedĹş ponownie robotem jakÄ Ĺ odlegĹoĹÄ w dowolnym kierunku. Jak teraz prezentowane sÄ dane w programie RVIZ? -Podczas tworzenia mapy 3d na laboratorium nr 3 mogĹeĹ doĹwiadczyÄ dopasowywania ukĹadu wspĂłĹrzÄdnych **odom** do **map**. MoĹźesz poniĹźej zobaczyÄ odpowiadajÄ cy temu fragment mapowania. W poczÄ tkowej fazie widzimy jak jedna ze Ĺcian korytarza zbiega siÄ do drugiej, tak jakby korytarz siÄ zwÄĹźaĹ. Na kamerze moĹźemy zobaczyÄ, Ĺźe algorytm widzi tylko jednÄ ĹcianÄ. W momencie gdy na obrazie pojawiajÄ siÄ obie, algorytm uznaje, Ĺźe znajduje siÄ w poczÄ tkowej pozycji i naprawia mapÄ. Tym samym zmieniajÄ c transformacjÄ pomiÄdzy mapÄ , a odometriÄ . Później kamery caĹy czas widzÄ znajomÄ przestrzeĹ, dlatego caĹy czas prĂłbujÄ dopasowaÄ swojÄ pozycjÄ i mapÄ, co skutkuje skakaniem ukĹadu wspĂłĹrzÄdnych **t265_odom_frame** w stosunku do ukĹadu **map** +Podczas tworzenia mapy 3d na laboratorium nr 3 mogĹeĹ doĹwiadczyÄ dopasowywania ukĹadu wspĂłĹrzÄdnych **odom** do **map**. MoĹźesz poniĹźej zobaczyÄ odpowiadajÄ cy temu fragment mapowania. W poczÄ tkowej fazie widzimy jak jedna ze Ĺcian korytarza zbiega siÄ do drugiej, tak jakby korytarz siÄ zwÄĹźaĹ. Na kamerze moĹźemy zobaczyÄ, Ĺźe algorytm widzi tylko jednÄ ĹcianÄ. W momencie, gdy na obrazie pojawiajÄ siÄ obie, algorytm uznaje, Ĺźe znajduje siÄ w poczÄ tkowej pozycji i naprawia mapÄ. Tym samym zmieniajÄ c transformacjÄ pomiÄdzy mapÄ , a odometriÄ . Później kamery caĹy czas widzÄ znajomÄ przestrzeĹ, dlatego caĹy czas prĂłbujÄ dopasowaÄ swojÄ pozycjÄ i mapÄ, co skutkuje skakaniem ukĹadu wspĂłĹrzÄdnych **t265_odom_frame** w stosunku do ukĹadu **map**  @@ -153,7 +153,7 @@ Na pokĹadzie pixhawka mamy do dyspozycji Ĺźyroskop, akcelerometr, magnetometr o Aby odczytaÄ dane z kontrolera moĹźemy wykorzystaÄ dwie metody: - program stacji bazowej np. [QGroundControl](http://qgroundcontrol.com/) czy [Mission Planner](https://ardupilot.org/planner/). W przypadku systemu Windows zalecam uĹźywanie programu Mission Planner, poniewaĹź posiada on duĹźo uĹźytecznych funkcjonalnoĹci. Niestety jest on dostÄpny jedynie na systemy Windows, dlatego na potrzeby laboratorium uĹźyjemy QGroundControl. Nie mniej jednak program QGroundControl jest rĂłwnieĹź bardzo uĹźytecznym programem, a zainstalowaÄ moĹźemy go nawet na telefonie z systemem Android. -- bezpoĹrednio przy pomocy protokoĹu mavlink. TÄ metodÄ stosuje siÄ gdy do sterownika podĹÄ czamy komputer, ktĂłry ma nadzorowaÄ jego pracÄ i wydawaÄ mu komendy, tak jak w naszym przypadku. +- bezpoĹrednio przy pomocy protokoĹu mavlink. TÄ metodÄ stosuje siÄ, gdy do sterownika podĹÄ czamy komputer, ktĂłry ma nadzorowaÄ jego pracÄ i wydawaÄ mu komendy, tak jak w naszym przypadku. Najpierw rozpoczniemy pracÄ od programu QGroundControl. Zwykle uĹźywa siÄ go przy poczÄ tkowej konfiguracji pojazdu, a nastÄpnie do zdalnego monitorowania autonomicznej misji misji. @@ -164,7 +164,7 @@ Uruchom program QGroundControl ZnajdujÄ cy siÄ na pulpicie komputera zdalnego. Najpierw program ĹÄ czy siÄ z kontrolerem Pixhawk i ĹciÄ ga jego aktualnÄ konfiguracjÄ. W naszym przypadku uzyskamy komunikat, iĹź pojazd jest nie zdolny do dziaĹania, poniewaĹź nie zostaĹy podĹÄ czone kluczowe komponenty. Do prawidĹowego dziaĹania potrzebne jest zdalne poĹÄ czenie przez Radio RC oraz GPS. -PrzejdĹş do widoku mapy. +PrzejdĹş do widoku mapy.  JeĹli mielibyĹmy podĹÄ czony GPS, wiedzielibyĹmy aktualnÄ pozycjÄ naszego pojazdu. W prawym gĂłrnym rogu moĹźna zauwaĹźyÄ kilka podstawowych parametrĂłw jak orientacja w trzech osiach, wysokoĹÄ, prÄdkoĹÄ czy czas lotu. @@ -188,7 +188,7 @@ CzÄstotliwoĹÄ odĹwieĹźania moĹźemy w ustawieniach w zakĹadce MAVLink:  (JeĹli jest wyĹÄ czony to uruchom wiatrak na stronie zarzÄ dzania niniejszym laboratorium [link](http://153.19.49.102:5000) (ZakĹadka sterowanie. Po wĹÄ czeniu wiatraka sprawdĹş na kamerze), aby moduĹy zaczÄĹy siÄ poruszaÄ. WyĹÄ cz go po zakoĹczeniu Äwiczenia) -**Zadanie 8:** WyĹwietl na wykresie trzy prÄdkoĹci kÄ towe (xgyro, ygyro, zgyro) i zaobserwuj jak wyglÄ dajÄ wskazania przed zmianÄ i po zmianie czÄstotliwoĹci odĹwieĹźania. +**Zadanie 8:** WyĹwietl na wykresie trzy prÄdkoĹci kÄ towe (xgyro, ygyro, zgyro) i zaobserwuj, jak wyglÄ dajÄ wskazania przed zmianÄ i po zmianie czÄstotliwoĹci odĹwieĹźania. @@ -232,7 +232,7 @@ PrzykĹadowy plik launch pozwalajÄ cy uruchomiÄ poĹÄ czenie z pixhawkiem wygl </launch> ``` -To co pojawia siÄ przy kaĹźdym podĹÄ czeniu nowego urzÄ dzenia do komputera to koniecznoĹÄ sprawdzenia portu do ktĂłrego zostaĹo ono przypisane. SprawdĹş port do ktĂłrego zostaĹ podpiÄty pixhawk. Nazwa powinna rozpoczynaÄ siÄ od **usb-ArduPilot_fmuv3**. +To co pojawia siÄ przy kaĹźdym podĹÄ czeniu nowego urzÄ dzenia do komputera to koniecznoĹÄ sprawdzenia portu, do ktĂłrego zostaĹo ono przypisane. SprawdĹş port do ktĂłrego zostaĹ podpiÄty pixhawk. Nazwa powinna rozpoczynaÄ siÄ od **usb-ArduPilot_fmuv3**.  @@ -244,7 +244,7 @@ Po uruchomieniu stworzonego pliku powinno pojawiÄ siÄ wiele topicĂłw udostÄpn  -PosiadajÄ c dostÄp do danych moĹźemy zajÄ Ä siÄ przedmiotem tego Äwiczenia, czyli obliczeniem orientacji naszego kontrolera, a potencjalnie robota/pojazdu. Po pierwsze potrzebne sÄ nam dane z Ĺźyroskopu i akcelerometru. SÄ one dostÄpne na topicu **/mavros/imu/data_raw**. WiadomoĹci na tym topicu sÄ typu [sensor_msgs/Imu](http://docs.ros.org/en/melodic/api/sensor_msgs/html/msg/Imu.html) i standardowo zawierajÄ orientacjÄ (w tym przypadku jej niema poniewaĹź sÄ wysyĹane na tym topicu tylko dane z Ĺźyroskopu i akcelerowmetru), przyspieszenia liniowe w trzech osiach oraz prÄdkoĹci kÄ towe w trzech osiach. +PosiadajÄ c dostÄp do danych moĹźemy zajÄ Ä siÄ przedmiotem tego Äwiczenia, czyli obliczeniem orientacji naszego kontrolera, a potencjalnie robota/pojazdu. Po pierwsze potrzebne sÄ nam dane z Ĺźyroskopu i akcelerometru. SÄ one dostÄpne na topicu **/mavros/imu/data_raw**. WiadomoĹci na tym topicu sÄ typu [sensor_msgs/Imu](http://docs.ros.org/en/melodic/api/sensor_msgs/html/msg/Imu.html) i standardowo zawierajÄ orientacjÄ (w tym przypadku jej nie ma, poniewaĹź sÄ wysyĹane na tym topicu tylko dane z Ĺźyroskopu i akcelerowmetru), przyspieszenia liniowe w trzech osiach oraz prÄdkoĹci kÄ towe w trzech osiach. 