Laboratorium 1 - pw-eiti-anro-20l/kuzmich_ostrysz GitHub Wiki
Katalog roboczy catkin_ws zostal utworzony podczas przechodzenia tutoralu. W podkatalogu src zostal utworzony podkatalog anro-kuzmich_ostrysz w ktorym zostal utworzony nowy pakiet ROS o nazwie turtle_controller. W tym pakiecie zostaly utworzone dwa pliki: talker.py znajdujacy sie w podkatalogu scripts i turtlecontrol.launch znajdujacy sie w podkatalogu launch. Program zaimplementowany w tych plikach ma za zadanie obsluzyc sterowanie zolwiem za pomoca klawiszy innnych niz strzalki z podstawowego pakietu turtle_teleop_key.
W pliku talker.py zostaly zaimplementowane trzy funkcje:
-
getKey() - funkcja sluzaca do pobierania znaku z klawiatury ktory nie jest buforowany przez ENTER. w funkcji nastepujaco definiuje sie ustawienia terminala tak aby byla mozliwosc odczytu znaku bez buforowania, nastepnie pobierany jest znak, po czym znow przywracane sa domyslne ustawienia terminala.
-
reset() - funkcja sluzaca do przywracania domyslnych ustawien terminala
-
talker() - funkcja dzieki ktorej wezel publikuje do tematu turtle1/cmd_vel komunikat typu Twist z ograniczona iloscia wiadomosci w kolejce do 1, nastepnie podaje do rospy nazwe wezla, ustala wartosc czestotliwosci petli na 10Hz. Nastepnie w petli pobiera znak z klawiatury uzywajac do tego funkcji getKey() i porownuje go ze znakiem z serwera parametrow, jesli znaki sa zgodne to wykonuja okreslone dla danego znaku zadanie poruszenia zolwiem, i nastepnie publikuje ta wiadomosc do turtle1/cmd_vel odpowiadajacemu za sterowanie zolwiem. Funkcja umozliwia wyjscie z programu poprzez wcisniecie kombniacji klawiszy Ctrl+c.
W pliku turtlecontrol.launch opisane sa cztery parametry majace za zadanie umozliwienie sterowania zolwiem za pomoca klawiszy "w" "s" "a" "d". Klawisz "w" odpowiada za poruszanie sie do przodu, "s" do tylu, "a" w lewo i "d" w prawo. Znajduja tu sie takze dwa polecenia odpowiadajace za uruchomienie dwoch wezlow:
- talker.py ktorego zadaniem jest umozliwienie sterowania zolwiem.
- turtlesim_node odpowiadajacego za otworzenie okna z zolwiem.
Komunikacja pomiedzy wezlami opisana jest ponizszym grafem:
W celu uruchomienia programu nalezy:
- przejsc do katalogu roboczego uzywajac w terminalu komend "source /opt/ros/melodic/setup.bash" i " cd ~/catkin_ws/"
- pobrac repozytorium wywolujac polecenie wstool update
- w nowym terminalu uzywajac komend "source /opt/ros/melodic/setup.bash" i "roscore" uruchomic roscore
- w katalogu roboczym uzyc komend "source sevel/setup.bash" i "roscd turtle_controller"
- uruchomic plik turtlecontrol.launch poleceniem "roslaunch turtle_controller turtlecontrol.launch"