Projekt

Ogólne

Profil

Lab4 » Historia » Wersja 8

Dawid Seredyński, 2018-06-13 21:52

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 8 Dawid Seredyński
  !lab4-scheme-a.png!
27 2 Dawid Seredyński
28 6 Dawid Seredyński
* Create a similar ROS node oint, that generates interpolation of a reference frame in Cartesian space.
29 5 Dawid Seredyński
30 6 Dawid Seredyński
  * In this task the frame is not related to the robot nor to its end effector.
31 7 Dawid Seredyński
  * Use *pose* marker in RVIZ and set its shape as axes.
32 7 Dawid Seredyński
  * The message sent to RVIZ is of type PoseStamped from geometry_msgs package.
33 7 Dawid Seredyński
  * At first, interpolate position only and keep orientation constant.
34 7 Dawid Seredyński
  * Next, interpolate orientation.
35 7 Dawid Seredyński
  * The command for node oint is sent through ROS service of type oint_control_srv from terminal or from a dedicated node ocmd.
36 7 Dawid Seredyński
  * Visualize behavior of the system in RVIZ. Draw the trajectory of the frame.
37 8 Dawid Seredyński
  !lab4-scheme-b.png!
38 5 Dawid Seredyński
39 7 Dawid Seredyński
* Add wiki page to your repository (the documentation). The page should contain description of source files, instruction for launching and description of tests.
40 2 Dawid Seredyński
41 7 Dawid Seredyński
  * On all graphs of structure of the system topics and services should be shown differently.
42 7 Dawid Seredyński
  * The plots of variables from topics should contain outputs of interpolators. The outputs should be continous.
43 7 Dawid Seredyński
* Use separate roslaunch files for:
44 2 Dawid Seredyński
45 7 Dawid Seredyński
  * roscore and RVIZ (it should be running until URDF file is modified).
46 7 Dawid Seredyński
  * The rest of the system.
47 2 Dawid Seredyński
* Test the system and show it to the tutor.