Lab4 » Historia » Wersja 4
« Poprzednie -
Wersja 4/9
(diff) -
Następne » -
Obecna wersja
Dawid Seredyński, 2018-06-13 17:45
Lab 4: Interpolation of motion¶
Scope:¶
This laboratory consist of two parts:
- A short introduction.
- Writing your own ROS package.
The task:¶
- Develop the system from the previous laboratory by either copying the package or modyfying it.
- Create ROS node jint that interpolates trajectory in configuration space.
- The node uses ROS service (Remote Procedure Call - RPC) of type jint_control_srv. You should create this service type.
- The node jint gets desired joint position and other required parameters (e.g. duration) as input.
- 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).
- The RPC can be executed directly from terminal or by a dedicated node jcmd.
- After reception of valid command, the node jint publishes interpolated positions on ROS topic and sends it to robot_state_publiher node.
- At first, use linear interpolation.
- 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.
- All interpolation modes should be implemented in one ROS node and can be selected in jint_control_srv.
- Visualize behavior of the system in RVIZ. Visualize the followed trajectory.
- The node uses ROS service (Remote Procedure Call - RPC) of type jint_control_srv. You should create this service type.
- Tworzymy analogiczny węzeł oint, który wygeneruje, poprzez interpolację, pozycje pewnego układu w przestrzeni operacyjnej (Kartezjańskiej) * 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ą * W RVIZ wykorzystujemy marker pose i ustawiamy shape jako axes * Wiadomość wysyłana do RVIZ jest typu PoseStamped z pakietu geometry_msgs * W wersji podstawowej koncentrujemy się na interpolacji położenia przyjmując stałą orientację. * W wersji rozszerzone interpolujemy też orientację, * Rozkaz dla węzła oint jest przesyłany w service oint_control_srv z konsoli bądź dedykowanego węzła ocmd * Wizualizujemy działanie systemu w RVIZ, nanosząc na scenę przykładową trajektorię, po której poruszał się układ.
- 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. * Uczulam na właściwe udokumentowanie struktury systemu z oznaczeniem, gdzie są tematy, a gdzie zdalne wywoływanie procedur. * 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.
- 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. * Pozostała część systemu sterowania powinna być uruchamiana w oddzielnym pliku roslaunch.
- Test the system and show it to the tutor.