Wiki

Author: Jordi Pages < jordi.pages@pal-robotics.com >

Maintainer: Jordi Pages < jordi.pages@pal-robotics.com >

Support: tiago-support@pal-robotics.com

Source: https://github.com/pal-robotics/tiago_tutorials.git

(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

Planning in cartesian space

Description: UseMoveIt! to plan a joint trajectory in order to reach a given pose in cartesian space

Keywords: Motion planning, cartesian space, inverse kinematics

Tutorial Level: INTERMEDIATE

Next Tutorial: Planning cartesian space with TRAC-IK

tiago_planning_ik_title.jpg

Purpose

This tutorial shows how to use MoveIt! in order to move the end-effector frame of TIAGo to a desired pose in cartesian space. An example is given in C++.

Pre-requisites

First make sure that the tutorials are properly installed along with the TIAGo simulation, as shown in the Tutorials Installation Section.

Execution

First open two consoles and source the public simulation workspace as follows:

Launching the simulation

In the first console launch the following simulation

Gazebo will show up with TIAGo.

tiago_steel_planning_ik_gazebo.jpg

Wait until TIAGo has tucked its arm. Then you may proceed with the next steps.

Launching the nodes

Now we are going to run an example that will bring TIAGo's end-effector frame, i.e. arm_tool_link, to the following cartesian space configuration with respect to /base_footprint:

which corresponds to the following pose as shown in rviz:

tiago_goal_pose_planning_ik.jpg

In order to safely reach such a cartesian goal the node plan_arm_torso_ik included in tiago_moveit_tutorial package and has to be called as follows

An example of plan executed by the node is depicted in the following sequence of images:

tiago_planning_ik_example.jpg

Note that the final pose of /arm_tool_link is the desired one:

tiago_reached_pose_planning_ik_rviz.jpg

Inspecting the code

The code to implement such a node able to plan in cartesian space is shown below. Note that the key parts of the code are:

Note that when a plan is found and is executed with the following line of code

  68   group_arm_torso.move();

The required control commands are sent to the arm and torso controllers through their Action interfaces:

Wiki: Robots/TIAGo/Tutorials/MoveIt/Planning_cartesian_space (last edited 2023-02-24 10:55:07 by thomaspeyrucain)