Lab 5: Inverse kinematics¶
Scope:¶
This laboratory consists 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 modifying it.
- Create ROS node IKIN that calculates inverse kinematics (IK) of the manipulator.
- Create an analytical algorithm for IK without use of KDL.
- Ignore orientation of the end effector. In this task, only position (translation) is relevant.
- The node should use the same ROS parameters as previously implemented node DKIN.
- Commands for IKIN should be read from the node that interpolates trajectory in operational space.
- The calculated joint position should be sent to robot_state_publisher.
- If IK cannot be solved, the node IKIN does not publish new position and it sends error information to ROS log.
- Compare two positions in RVIZ:
- The one calculated by the node that interpolates trajectory in operational space.
- Position calculated by robot_state_publisher.
- Send a number of commands to operational space interpolation node and check if they are executed properly.
- In particular, the node ocmd commands motion of the end effector that follows rectangle and ellipse shape. Each motion should be executed periodically. The trajectory should be visualized as a streak in RVIZ. * Set such physical parameters of the manipulator (e.g. lengths of links) that the desired example motion is possible.
- Each example motion should be executed successfully for any initial configuration of the robot.
- You can set the initial position using the method from the previous laboratory (i.e. interpolation in joint space).
- Chose such solution for IK that the robot does not make any discontinuous motions.
- Do not add any limits in joint space.
- Additionally:
- Take into account limits of IK for the workspace of the robot.
- If IK cannot be solved, the node should not publish new position and it should send error information to ROS log.
- Take into account limits of IK for the workspace of the robot.
- Add wiki page to your repository (the documentation). The page should contain description of source files, instruction for launching and description of tests.
- On all graphs of structure of the system topics and services should be shown differently.
- The plots generated with rqt_plot should prove compatibility of poses of end effector calculated in different streams with the position calculated by interpolator (with and without IK).
- Use separate roslaunch files for:
- roscore and RVIZ (it should be running until URDF file is modified).
- The rest of the system.
- Test the system and show it to the tutor.