Hardware & software interface for robot programming by manual guidance
The module for robot programming by manual guidance enables fast and intuitive programming of new robot motions without using traditional programming tools such as teach pendants. Programming with teach pendants is namely slow and cumbersome. Our module enables the operator to simply grab the robot arm with her/his own hands and guide it through the desired task. This way both single robot postures and complex robot movements (free-form trajectories) can be programmed easily. To enable programming by manual guidance (also called kinesthetic teaching), the robot must provide the gravity compensation mode. Robots with gravity compensation mode include Kuka LBR iiwa, Universal robots UR series, and Franka Emika Panda. This module provides a button interface and a GUI to support easy programming and storing of the acquired information.
The module is implemented in ROS (Robot Operating System, https://www.ros.org) Kinetic environment and provides a Graphical User Interface (GUI) that facilitates robot motion acquisition by manual guidance. The newly programmed motions can be saved in the MongoDB database provided by ROS. Point to point movements and free-form trajectories represented by dynamic movement primitives (DMPs) are supported.
The GUI, called The Helping Hand, is at the front-end of the module. It has two tabs: the main tab called Capture controls and the secondary one called Settings/Configuration. The database component is at the back-end of the module. The mongodb_store ROS package is used to provide the database, as it allows all ROS nodes on the network to access the database. A physical button interface must be mounted on the robot arm. It eases the acquisition of data as it lowers the effort and shortens the time needed for teaching.
The GUI communicates with the robot and ROS through the buttons. We developed hardware buttons for Universal UR-10 and Franka Emika Panda robots. These robots are also supported by The Helping Hand software.
While the GUI software is free of charge and available for download, suitable hardware buttons and a robot with gravity compensation must be purchased by a user. JSI offers support for software installation as well as button construction free of charge in TRINITY open calls and on contract basis
Inputs and outputs
All the data is transferred via the ROS backbone of the system.
The desired commands are specified by pressing the buttons on the button interface. The communication occurs via ROS standard bool message type std_msgs/Bool.
The button presses specify 1. the beginning and the end of manual guidance, 2. control the (de)activation of the gravity compensation mode (the robot can be guided only in gravity compensation mode), and 3. determine the type of motion information to be stored.
The following outputs are possible once the motion has been demonstrated by manual guidance:
sensor_msgs/JointState; this message type is used to store joint angles
geometry_msgs/Pose; this message type is used to store Cartesian space poses
robot_module_msgs/JointSpaceDMP; this message type is used to store a trajectory encoded with joint space DMPs
robot_module_msgs/CartesianSpaceDMP; this message type is used to store a trajectory encoded with Cartesian space DMPs
In the above list, DMP stands for dynamic movement primitives, which are used to encode complex trajectories in a compact way. Same message types are used to communicate with the robot driver to execute the programmed trajectories.
Formats and standards
The software module is open source and released under a three-clause BSD license https://opensource.org/licenses/BSD-3-Clause
ROS Kinetic is used as the backbone of the module.
Safety standard for human-robot collaboration must be considered.
Jožef Stefan Institute, Department of Automatics, Biocybernetics and Robotics
A more detailed description of this modulerpd.pdf
A training manual describing the module, installation procedure, and how to use the module can be found at https://www.ijs.si/usr/aude/trinity/rpd_manual.pdf