Laboratorium 3 - pw-eiti-anro-20l/kuzmich_ostrysz GitHub Wiki
W katalogu roboczym zostal utworzony nowy pakiet o nazwie simple_kinematic ktory jest kontynuacja pakietu visulization. W pakiecie tym zostalo utworzonych 7 nowych plikow: KDL_DKIN.py, NONKDL_DKIN.py, KDL_DKIN.launch, NONKDL_DKIN.launch, all.launch, borders.json i config.rviz. Program zaimplementowny w tych plikach ma za zadanie rozwiazanie zadania kinematyki prostej manipulatora metoda analityczna bez uzycia KDL oraz z uzyciem KDL i wizualizacje danego maniuplatora w RViz.
W pliku KDL_DKIN.py zostal napisany program rozwiazujacy kinematyke prosta z uzyciem KDL. W pliku tym zostaly napisane dwie funkcje:
- correct_Position - ktorej zadaniem jest porownanie pozycji koncowki manipulatora z wartosciami ograniczen zawartymi w pliku borders.json.
- simple_kinematics - ktora na poczatku sprawdza poprawnosc polozenia za pomoca wyzej opisanej funkcji, nastepnie pobiera parametry w notacji DH z pliku mdh_value.json, oblicza za pomoca biblioteki PyKDL pozycje i orientacje koncowki manipulatora, opisuje kolor i publikuje te informacje.
W pliku NONKDL_DKIN.py zostal napisany program rozwiazujacy kinematyke prosta bez uzycia KDL. Jak w pliku powyzej zostaly okreslone dwie funkcje:
- correctPosition - ktorej zadaniem jest porownanie pozycji koncowki manipulatora z wartosciami ograniczen zawartymi w pliku borders.json.
- simple_kinematics - ktora na poczatku sprawdza poprawnosc polozenia za pomoca wyzej opisanej funkcji, nastepnie pobiera parametry w notacji DH z pliku mdh_value.json zapisuje macierze rotacji i translacji dla poszczegolnych stawow. Nastepnie wyznacza polozenie koncowki manipulatora poprzez wymnozenie powyzszych macierzy, opisuje kolor i publikuje te informacje.
W pliku borders.json - znajduja sie dane ograniczenia zakresu ruchu manipulatora.
W pliku config.rviz - znajduje sie konfiguracja programu RViz z odpowiednimi parametrami wyswietlania grubosci, dlugosci i szerokosci strzalek.
W pliku KDL_DKIN.launch napisany zostal program ktorego zadaniem jest pobranie odowiednich parametrow manipulatora zadanych w pliku mdh_value.json i uruchomienie trzech wezlow joint_state_publisher, KDL_DKIN i RVIZ ktore komunikuja sie za posrednictwem tematow Jointstate i PoseStamped. Schemat komunikacji miedzy wezlami opisany jest ponizszym grafem:
W pliku NONKDL_DKIN.launch napisany zostal program ktorego zadaniem jest pobranie odowiednich parametrow manipulatora zadanych w pliku mdh_value.json i uruchomienie trzech wezlow joint_state_publisher, NONKDL_DKIN i RVIZ ktore komunikuja sie za posrednictwem tematow Jointstate i PoseStamped. Schemat komunikacji miedzy wezlami opisany jest ponizszym grafem:
W pliku all.launch napisany zostal program ktorego zadaniem jest pobranie odowiednich parametrow manipulatora zadanych w pliku mdh_value.json i uruchomienie pieciu wezlow joint_state_publisher, robot_stste_publisher, KDL_DKIN, NONKDL_DKIN i RVIZ ktore komunikuja sie za posrednictwem tematow Jointstate, PoseStamped i tf. Schemat komunikacji miedzy wezlami opisany 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 katalogu roboczym uzyc komend "source sevel/setup.bash" i "roscd simple_kinematic"
- uruchomic plik all.launch poleceniem "roslaunch simple_kinematic all.launch model:=urdf/movable.urdf."
- w programie RViz przejść do menu File i wybrać opcję Open Config
- wybrac plik config.rviz