Lab4 » Historia » Wersja 6
« Poprzednie -
Wersja 6/9
(diff) -
Następne » -
Obecna wersja
Dawid Seredyński, 2018-06-13 17:55
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.
- Create a similar ROS node oint, that generates interpolation of a reference frame in Cartesian space.
- In this task the frame is not related to the robot nor to its end effector.
- Use pose marker in RVIZ and set its shape 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.