Up:Tutorial?

If you have any question, please contact yoann.dutel@outlook.fr

Introduction

The aim of this tutorial is to explain how to use KDL with ROS in SIGVerse.

With KDL, you could use an inverse kinematic solver. So, you could control the arm of a robot. KDL is not very accurate. So you musn't use this exmample to grasp an object on a table. But you can use this to have an iteraction with an human. An other Inverse Kinematic Solver is in process of integration for SigVerse : IKFast.

We will show you a demonstration with an example in SIGVerse.

Requirements

  • Ubuntu 32/64 bit PC. (Ubuntu installed on virtual machine is also file)
  • SIGServer 2.2.2 or later
  • SIGViewer 2.2.0 or later
  • ROS : refer to this tutorial ROS integration
  • KDL : refer to this page : http://wiki.ros.org/kdl

Use the package

Download the package

Clone the ROS package from github in your ROS workspace. You can clone the entire repository by running :

$ git clone https://github.com/SIGVerse/samples.git

Or you can get the source code here on Github : https://github.com/SIGVerse/samples/tree/master/Kinem_Sig_Ros

Insert the environment

Include this xml file in the devel/lib directory of your ROS workspace :

Build the project

Go in your ROS workspace and build your project. For example :

$ cd ~/catkin_ws
$ catkin_make

Run this command to initialize KDL node in ROS :

$ source /opt/ros/groovy/setup.sh

Testing the package

Run the simulation

Run three terminal.

  • On the first, run the ROS system
    $ roscore
  • On the second, run the node (here it's for KDL) in your ROS workspace
    $ cd ~/catkin_ws
    $ rosrun Kinem_Sig_Ros Arm_Control1
  • On the third, run SIGServer
    $ cd ~/catkin_ws/devel/lib
    $ sigserver.sh -w ./RobotInMove.xml

How use the demonstrator

You must send a specific command to control the arm :

  • To move the arm :
    • 1) In SIGViewer, send the message "move_arm_kdl" to the robot
    • 2) In SIGServer, indicate the destination coordinate in robot basis (x,y,z and roll,pitch,yaw)
  • To get information for the position of the hand :
    • 1) In SIGViewer, send the message "get_hand" to the robot
    • 2) In SIGServer, you see the position in robot and world basis
  • To get the position of each joint
    • 1) In SIGViewer, send the message "get" to the robot
    • 2) In SIGServer, you see the position of each joint in robot basis

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2014-07-25 (Fri) 19:38:18 (2558d)