Laboratorium 3 Dokumentacja - pw-eiti-anro-21l/dwornik_matysek GitHub Wiki
Pliki
Skrypty
nonkdl_dkin.py
- plik wykonawczy dla węzła obsługującego węzeł NONKDL_DKIN, który oblicza położenie kursora na podstawie metody analitycznej
- na początku program wczytuje parametry z pliku params.yaml i tworzy subscribera dla tematu joint_states
- następnie na temacie /pose_stamped_nonkdl publikowana jest nowa pozycja dla kursora
kdl_dkin.py
- plik wykonawczy dla węzła obsługującego węzeł KDL_DKIN, który korzysta z biblioteki KDL
- podobnie jak poprzednio, program zaczyna się od inicjalizacji parametrów i subscribera
- potem tworzymy obiekt typu Chain, zawierający dane o połączeniach i orientacji stawów robota
- następnie tworzymy obiekt typu JntArray i dodajemy do niego dane z topicu joint_states
- następnie wywołujemy ChainFkSolverPos_recursive(), który rozwiązuje prostą kinematykę
- rezultaty przetwarzamy na kwaternion i publikujemy na temacie pose_stamped_kdl
Pliki związane z modelem
- param.yaml - plik z parametrami ramienia
- robot.rviz - plik umożliwiający wizualizację robota w RVIZie
- robot.urdf.xacro.xml - plik definiujące parametry i ograniczenia ruchu ramion
Schemat systemu
Tematy
Publishery
- /pose_stamped_kdl
- /pose_stamped_nonkdl
Subscribery
- joint_poses
Testy
Wykres wartości orientacji dla zmiany ustawień stawów z (0, 0, 0) na (-0,96; -0,13; 0,1)
Wykres wartości położenia dla zmiany ustawień stawów z (0, 0, 0) na (-2,53; 0,26; 0,03)
Obserwacja
Wykresy dla obydwu wykresów mają zbliżone charakterystyki. Jednak, gdy na przykład przybliżymy drugi wykres, to możemy zobaczyć, że węzeł NONKDL_DKIN szybciej dostosowuje się do zmian, niż KDL_DKIN:
Możliwe, że obliczenia w funkcjach biblioteki KDL są bardziej złożone, niż te w węźle bez KDLa, przez co ten drugi działa szybciej