Laboratorium 4 Dokumentacja - pw-eiti-anro-21l/dwornik_matysek GitHub Wiki
Pliki
Pliki launch
- rviz.launch.py - plik uruchamiający rviza
- model.launch.py - plik ładujący model robota
Pliki skryptowe
- jint_control_srv.py - plik z interfejsem usługi jint
- jint.py - plik wykonawczy usługi jint
- oint_control_srv.py - plik z interfejsem usługi oint
- oint.py - plik wykonawczy usługi oint
Schemat systemu (jint)
Schemat systemu (oint)
Tematy
Publishery
Jint
- /joint_states
- /marker_pose
- /pose_stamped_nonkdl
Oint
- /pose_stamped_lab4
- /marker_pose
Działanie
Każdy z węzłów realizuje interpolację na 2 sposoby: liniowo i nieliniowo
Interpolacja liniowa
Znając punkt początkowy i końcowy można wytyczyć liniową trajektorię ruchu według poniższego wzoru:
Interpolacja nieliniowa
W tym przypadku stawy manipulatora będą zmieniać położenie w zależności od funkcji wielomianowej trzeciego stopnia:
Zakładamy, że prędkość ruch na początku i na końcu jest zerowa. Na podstawie poniższych warunków:
Możemy wyznaczyć wartości współczynników funkcji:
Testy
Jint
Zrzut ekrazu z rviza
- interpolacja liniowa
- interpolacja nieliniowa
Wykresy zmiany położenia dla ruchu z pozycji [0; 0; 0] do [-1; 0,5; 0,1] w ciągu 1 sekundy
- interpolacja liniowa
- interpolacja nieliniowa
Oint
Zrzut ekrazu z rviza
- interpolacja liniowa
- interpolacja nieliniowa
Wykresy zmiany położenia dla ruchu z pozycji [0; 0; 0; 0; 0; 0] do [0; 3; 1; 0,5; 0,5; 0,5] w czasie jednej sekundy
- interpolacja liniowa
- interpolacja nieliniowa