Skip to content
M.D edited this page Dec 19, 2016 · 7 revisions

anrobot_description

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.

Uruchomienie

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}

Pliki źródłowe

src/inv_kinematics.cpp

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"
include/anrobot_description/trajectory.h i src/trajectory.cpp

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.

src/gen_trajectory.cpp

Inicjalizuje węzeł trajektorii zwykłej.

src/gen_trajectory.cpp

Inicjalizuje węzeł trajektorii odwrotnej.

srv/SetTarget.srv

Zawiera serwis używany przy zadawaniu celu węzłowi inv_gen_trajectory.

Komunikacja

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.

Clone this wiki locally