Lab4 » Historia » Wersja 5
Dawid Seredyński, 2018-06-13 17:46
1 | 3 | Dawid Seredyński | h1. Lab 4: Interpolation of motion |
---|---|---|---|
2 | 1 | Dawid Seredyński | |
3 | 1 | Dawid Seredyński | h2. Scope: |
4 | 1 | Dawid Seredyński | |
5 | 1 | Dawid Seredyński | This laboratory consist of two parts: |
6 | 1 | Dawid Seredyński | |
7 | 1 | Dawid Seredyński | * A short introduction. |
8 | 1 | Dawid Seredyński | * Writing your own ROS package. |
9 | 1 | Dawid Seredyński | |
10 | 1 | Dawid Seredyński | h2. The task: |
11 | 1 | Dawid Seredyński | |
12 | 4 | Dawid Seredyński | * Develop the system from the previous laboratory by either copying the package or modyfying it. |
13 | 4 | Dawid Seredyński | * Create ROS node jint that interpolates trajectory in configuration space. |
14 | 1 | Dawid Seredyński | |
15 | 4 | Dawid Seredyński | * The node uses ROS service (Remote Procedure Call - RPC) of type jint_control_srv. You should create this service type. |
16 | 2 | Dawid Seredyński | |
17 | 4 | Dawid Seredyński | * The node jint gets desired joint position and other required parameters (e.g. duration) as input. |
18 | 4 | Dawid Seredyński | * The node answers interpolation status that can be sent after the interpolation is complete or immediately, if there are errors in the input parameters (e.g. zero or negative duration). |
19 | 4 | Dawid Seredyński | * The RPC can be executed directly from terminal or by a dedicated node jcmd. |
20 | 4 | Dawid Seredyński | * After reception of valid command, the node jint publishes interpolated positions on ROS topic and sends it to robot_state_publiher node. |
21 | 4 | Dawid Seredyński | |
22 | 4 | Dawid Seredyński | * At first, use linear interpolation. |
23 | 4 | Dawid Seredyński | * Next, add more sophisticated method, e.g. trapezoid velocity profile or spline interpolation (please refer to: https://en.wikipedia.org/wiki/Spline_interpolation#Algorithm_to_find_the_interpolating_cubic_spline). You can assume zero velocity at the begining and at the end of motion. |
24 | 4 | Dawid Seredyński | * All interpolation modes should be implemented in one ROS node and can be selected in jint_control_srv. |
25 | 4 | Dawid Seredyński | * Visualize behavior of the system in RVIZ. Visualize the followed trajectory. |
26 | 5 | Dawid Seredyński | !https://www.robotyka.ia.pw.edu.pl/redmine/attachments/download/180/lab4-scheme-a.png! |
27 | 2 | Dawid Seredyński | |
28 | 2 | Dawid Seredyński | * Tworzymy analogiczny węzeł oint, który wygeneruje, poprzez interpolację, pozycje pewnego układu w przestrzeni operacyjnej (Kartezjańskiej) |
29 | 5 | Dawid Seredyński | |
30 | 2 | Dawid Seredyński | * W tym ćwiczeniu przemieszczany układ nie jest w żaden sposób związany z robotem, nie jest w szczególności jego końcówką |
31 | 2 | Dawid Seredyński | * W RVIZ wykorzystujemy marker pose i ustawiamy shape jako axes |
32 | 2 | Dawid Seredyński | * Wiadomość wysyłana do RVIZ jest typu PoseStamped z pakietu geometry_msgs |
33 | 2 | Dawid Seredyński | * W wersji podstawowej koncentrujemy się na interpolacji położenia przyjmując stałą orientację. |
34 | 2 | Dawid Seredyński | * W wersji rozszerzone interpolujemy też orientację, |
35 | 2 | Dawid Seredyński | * Rozkaz dla węzła oint jest przesyłany w service oint_control_srv z konsoli bądź dedykowanego węzła ocmd |
36 | 2 | Dawid Seredyński | * Wizualizujemy działanie systemu w RVIZ, nanosząc na scenę przykładową trajektorię, po której poruszał się układ. |
37 | 5 | Dawid Seredyński | !https://www.robotyka.ia.pw.edu.pl/redmine/attachments/download/181/lab4-scheme-b.png! |
38 | 5 | Dawid Seredyński | |
39 | 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. |
40 | 5 | Dawid Seredyński | |
41 | 2 | Dawid Seredyński | * Uczulam na właściwe udokumentowanie struktury systemu z oznaczeniem, gdzie są tematy, a gdzie zdalne wywoływanie procedur. |
42 | 2 | Dawid Seredyński | * Testy powinny zawierać przebiegi zmiennych z poszczególnych tematów. W szczególności istotna jest ciągłość przebiegów wyjść interpolatorów trajektorii. |
43 | 2 | Dawid Seredyński | * Podczas pracy z systemem właściwe jest wydzielenie pliku roslaunch, który będzie uruchamiany jako pierwszy w dedykowanej konsoli włączając roscore oraz RVIZ. Ta część systemu zasadniczo nie powinna być wyłączana, o ile nie jest modyfikowany plik URDF. |
44 | 5 | Dawid Seredyński | |
45 | 2 | Dawid Seredyński | * Pozostała część systemu sterowania powinna być uruchamiana w oddzielnym pliku roslaunch. |
46 | 2 | Dawid Seredyński | * Test the system and show it to the tutor. |