-
Notifications
You must be signed in to change notification settings - Fork 0
Lab 4
Zmodyfikowano ponownie pakiet z poprzedniego laboratorium. Dodano kilka plików źródłowych, które razem zajmują się wyznaczaniem trajektorii liniowej lub trapezowej dla punktu w przestrzeni lub dla stanów złącz.
roslaunch anrobot_description trajectorydisplay.launch
lub
roslaunch anrobot_description invpointtrajectorydisplay.launch
Aby zmienić z interpolacji liniowej na nieliniową należy zmienić parametr use_lin:=false, albo
w trakcie działania programu zmienić parametr /use_lin komendą
rosparam set /use_lin ${value}
Węzeł ten hostuje dwa serwisy:
- /inv_kinematics - zajmuje się przetworzeniem zadanego punktu końcowego na stany jointów.
- /set_end_target - przyjmuje zadane parametry dla interpolacji ruchu punktu (lub odwrotnej kinematyki dla lab5) i przesyła je do dalszych węzłów na temacie "/target_end"
Zawiera odpowiednio deklarację i implementację dwóch klas:
- Trajectory - zajmuje się obliczaniem kolejnych kroków w interpolacji trajektorii złącz. Nasłuchuje na topicu /joint_states.
- InvTrajectory - to samo, ale dla konkretnego punktu w przestrzeni - w tym dla końcowego efektora. Zadane punkty pobiera z topicu /target_end.
Obie z tych klas liczą kolejne pozycje z częstotliwością 20Hz. Publikują one obie końcowe stany złącz na temacie /trajectory_joint_states, a InvTrajectory dodatkowo publikuje pozycję punktu końcowego na temacie /end_trajectory.
Inicjalizuje węzeł trajektorii zwykłej.
Inicjalizuje węzeł trajektorii odwrotnej.
Zawiera serwis używany przy zadawaniu celu węzłowi inv_gen_trajectory.
Pierwsza część programu, z interpolacją ruchu dla złącz. Pozycja początkowa zadawana do jsp w pliku launch. Sterowanie odbywa się za pomocą gui jsp (polecany przycisk randomize dla zobaczenia liniowości/nieliniowości ruchu).
Druga część z interpolacją ruchu punktu w przestrzeni. Sterowanie przy pomocy serwisu /set_end_target z węzłu inv_kinematics, inicjalizacja przy pierwszej poprawnej wiadomości wysłanej na niego.

