Projekt

Ogólne

Profil

Lab5 » Historia » Wersja 3

Dawid Seredyński, 2018-06-13 19:06

1 1 Dawid Seredyński
h1. Lab 5: Inverse kinematics
2 2 Dawid Seredyński
3 2 Dawid Seredyński
h2. Scope:
4 2 Dawid Seredyński
5 2 Dawid Seredyński
This laboratory consist of two parts:
6 2 Dawid Seredyński
7 2 Dawid Seredyński
* A short introduction.
8 2 Dawid Seredyński
* Writing your own ROS package.
9 2 Dawid Seredyński
10 2 Dawid Seredyński
h2. The task:
11 2 Dawid Seredyński
12 2 Dawid Seredyński
* Develop the system from the previous laboratory by either copying the package or modyfying it.
13 2 Dawid Seredyński
* Tworzymy węzeł IKIN rozwiązujący kinematykę odwrotną manipulatora, na którym dotychczas pracowaliśmy,
14 2 Dawid Seredyński
* Tworzymy algorytm analityczny bez użycia numerycznych algorytmów KDL.
15 2 Dawid Seredyński
* Przy wyznaczaniu położenia stawów nie trzeba uwzględniać orientacji końcówki. Interesuje nas tylko osiąganie zadanego położenia (translacji).
16 2 Dawid Seredyński
* Węzeł IKIN powinien korzystać z parametrów zdefiniowanych w rosparam w tym samym miejscu co dla tworzonego wcześniej węzła DKIN
17 2 Dawid Seredyński
* Rozkazy dla węzła IKIN mają pochodzić z węzła interpolacji trajektorii w przestrzeni operacyjnej,
18 2 Dawid Seredyński
* Wyznaczone położenie stawów przesyłamy do robot_state_publisher,
19 2 Dawid Seredyński
20 2 Dawid Seredyński
  * Jeżeli wyznaczenie położenia nie jest możliwe, węzeł IKIN nie publikuje nowej pozycji zadanej oraz sygnalizuje błąd w ROS log
21 2 Dawid Seredyński
* Porównujemy w RVIZ, dwie pozycje:
22 2 Dawid Seredyński
23 2 Dawid Seredyński
  * Wyznaczoną przez węzeł interpolacji trajektorii w przestrzeni operacyjnej,
24 2 Dawid Seredyński
  * Pochodzącą z robot_state_publisher.
25 3 Dawid Seredyński
  !https://www.robotyka.ia.pw.edu.pl/redmine/attachments/download/182/lab5-scheme-a.png!
26 2 Dawid Seredyński
* Wysyłamy szereg rozkazów dla węzła interpolacji trajektorii w przestrzeni operacyjnej sprawdzając poprawność wykonania zadania,
27 2 Dawid Seredyński
28 2 Dawid Seredyński
  * W szczególności zadajemy z węzła ocmd ruch końcówki po prostokącie i elipsie. Ruch ma wykonywać się cyklicznie. Trajektoria ma pozostawiać ślad w postaci smugi.
29 2 Dawid Seredyński
    * Należy tak dobrać długości członów i postać narzędzia, żeby ruch był wykonalny dla pewnych przykładowych trajektorii.
30 2 Dawid Seredyński
* Ruch powinien wykonywać się poprawnie niezależnie od tego jaka będzie początkowa konfiguracja robota (położenie stawów).
31 2 Dawid Seredyński
32 2 Dawid Seredyński
  * Początkową konfigurację można zadawać korzystając ze struktury systemu z poprzedniego zadania (interpolacji w przestrzeni złącz).
33 2 Dawid Seredyński
  * Uwaga na wybór właściwego rozwiązania zadania odwrotnej kinematyki podczas interpolacji w przestrzeni operacyjnej, tak żeby nie wykonywać gwałtownych zmian położeń złącz.
34 2 Dawid Seredyński
35 2 Dawid Seredyński
    * Nie należy wprowadzać sztucznych ograniczeń zakresu ruchu w przestrzeni konfiguracyjnej, tak aby nie było konieczności wyboru jednego z kilku rozwiązań kinematyki odwrotnej.
36 2 Dawid Seredyński
* W wersji rozszerzonej:
37 2 Dawid Seredyński
38 2 Dawid Seredyński
  * należy uwzględnić ograniczenia kinematyki odwrotnej co do przestrzeni roboczej manipulatora.
39 2 Dawid Seredyński
40 2 Dawid Seredyński
    * W szczególności jeżeli wyznaczenie położenia nie jest możliwe, węzeł liczący kinematykę odwrotną nie powinien publikować nowych pozycji zadanych oraz ma sygnalizować błąd w ROS log
41 2 Dawid Seredyński
* W ramach repozytorium na serwerze GitHub z własnym pakietem dodajemy wiki z opisem plików źródłowych, instrukcją jak uruchomić system opisany w pliku roslaunch oraz przebiegiem testów.
42 2 Dawid Seredyński
43 2 Dawid Seredyński
  * Uczulam na właściwe udokumentowanie struktury systemu z oznaczeniem, gdzie są tematy, a gdzie zdalne wywoływanie procedur.
44 2 Dawid Seredyński
  * Przebiegi zmiennych z rqt_plot powinny potwierdzić zgodność pozycji końcówki robota z poszczególnych potoków przetwarzania pozycji zadanej przez interpolator (z użyciem odwrotnej kinematyki i bez).
45 2 Dawid Seredyński
* Use separate roslaunch files for:
46 2 Dawid Seredyński
47 2 Dawid Seredyński
  * roscore and RVIZ (it should be running until URDF file is modified).
48 2 Dawid Seredyński
  * The rest of the system.
49 2 Dawid Seredyński
* Test the system and show it to the tutor.