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