Lab4 » Historia » Wersja 6
Wersja 5 (Dawid Seredyński, 2018-06-13 17:46) → Wersja 6/9 (Dawid Seredyński, 2018-06-13 17:55)
h1. Lab 4: Interpolation of motion
h2. Scope:
This laboratory consist of two parts:
* A short introduction.
* Writing your own ROS package.
h2. 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.
!https://www.robotyka.ia.pw.edu.pl/redmine/attachments/download/180/lab4-scheme-a.png!
* Create a similar ROS node Tworzymy analogiczny węzeł oint, that generates interpolation of a reference frame in Cartesian space. który wygeneruje, poprzez interpolację, pozycje pewnego układu w przestrzeni operacyjnej (Kartezjańskiej)
* In this task the frame is not related to the robot nor to its end effector. 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ą
* Use *pose* W RVIZ wykorzystujemy marker in RVIZ and set its shape 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.
!https://www.robotyka.ia.pw.edu.pl/redmine/attachments/download/181/lab4-scheme-b.png!
* 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.
h2. Scope:
This laboratory consist of two parts:
* A short introduction.
* Writing your own ROS package.
h2. 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.
!https://www.robotyka.ia.pw.edu.pl/redmine/attachments/download/180/lab4-scheme-a.png!
* Create a similar ROS node Tworzymy analogiczny węzeł oint, that generates interpolation of a reference frame in Cartesian space. który wygeneruje, poprzez interpolację, pozycje pewnego układu w przestrzeni operacyjnej (Kartezjańskiej)
* In this task the frame is not related to the robot nor to its end effector. 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ą
* Use *pose* W RVIZ wykorzystujemy marker in RVIZ and set its shape 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.
!https://www.robotyka.ia.pw.edu.pl/redmine/attachments/download/181/lab4-scheme-b.png!
* 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.