Difference between revisions of "Bin Picking Tutorial: Introduction to Robot Interfaces"

From 3D scanning Knowledge base - Photoneo wiki
Jump to: navigation, search
 
(38 intermediate revisions by the same user not shown)
Line 1: Line 1:
The main goal of this page is to provide general introduction to the robot interfaces topic, which is an uneavitable part of Photoneo BP Solution.
+
The main aim of this page is to provide a general introduction to the robot interfaces, which form vital element of Photoneo Bin Picking Studio.
  
'''It is highly recommended to read this tutorial before proceeding to specific robot interface installation !!! '''
+
'''It is highly recommended that users read this tutorial prior to installation of specific robot interface !!! '''
  
 
== Architecture ==
 
== Architecture ==
  
Photoneo Bin Picking Solution is compatible with industrial manipulators of various robotic vendors. For example, if you order Photoneo Bin Picking solution for your ABB robot, in addition to pre-configured Vision Controller with Bin Picking application, you will also receive Photoneo-ABB USB Stick containing '''Bin Picking Client''' and '''State Server implementation''' written in RAPID language. This code needs to be installed on your robot controller to enable proper communication between Bin Picking application and ABB IRC5 system. Installation procedure and configuration tutorials are available in ''"Setting up"'' guides linked at the bottom of this page.  
+
The Photoneo Bin Picking Studio is compatible with a wide range of industrial manipulators produced by different robotic manufacturers. For example, if you order Photoneo Bin Picking Studio for your ABB robot, in addition to the pre-configured Vision Controller with bin picking application, you will also receive a Photoneo-ABB Interface as an .zip archive containing our '''Bin Picking Client''' and '''State Server implementation''' written in RAPID language. This code must be installed on your robot controller in order to enable proper communication between the bin picking application and the ABB IRC5 system. If you have a Fanuc robot, you will receive an interface written in Karel and TPE for Fanuc controllers; similarly a Melfa V interface is provided for Mitsubishi Robots, a Val3 interface for Staubli robots and so on. Installation procedures and configuration tutorials for particular brands are available in ''"Setting up guides"'' which is linked at the bottom of this page.  
  
The plugin-based architecture of Photoneo BP Solution enabling various robot client implementations is shown in the figure below:
 
  
[[File:Binpicking overview updated small.jpg]]
+
The plugin-based architecture of the Photoneo BP Studio enabling various robot client implementations is shown in the figure below:
 +
 
 +
[[File:Binpicking overview ver2.png]]
  
 
== General principles: ==
 
== General principles: ==
  
As mentioned above, Photoneo Bin Picking Solution is compatible with industrial manipulators of various robotic vendors. Each implementation and installation procedure is different, however five high-level principles are common for all of them:
+
As was mentioned above, the Photoneo Bin Picking Studio is compatible with a wide range of industrial manipulators produced by different manufacturers. The implementation and installation processes differ for each individual robot model, but five general principles apply to all of them:
  
 
=== 1. State Server + Bin Picking Client ===
 
=== 1. State Server + Bin Picking Client ===
  
Robot Interface for Photoneo BP Solution always consists of two tasks - '''State Server''' + '''Bin Picking Client'''. Both processes need to run in parallel on the target robot controller. State Server, reporting current joint and tool pose coordinates, usually runs in background, while BP Client responsible for the Request/Response transfers between Vision and robot controller is directly controlled by the robot Programmer/Operator using Photoneo Robotic API.  
+
The Robot Interface for Photoneo BP Studio always consists of two tasks - '''State Server''' + '''Bin Picking Client'''. Both processes must run in parallel on the target robot controller. State Server, reporting the current joint and tool pose coordinates, usually runs in the background, while BP Client, which is responsible for the Request/Response transfers between Vision Controller and the robot controller, is controlled directly by the robot Programmer/Operator using Photoneo Robotic API.  
 
   
 
   
 
 
=== 2. TCP/IP Based ===
 
=== 2. TCP/IP Based ===
  
TCP/IP is utilized for communication between Photoneo Vision Controller and specific robot controller. It is usually possible to configure additional industrial fieldbus for basic robot control (ON/OFF, robot program selection, safety purposes etc.), however an option of replacing TCP/IP communication by any other industrial fieldbus is currently not supported.
+
TCP/IP is utilized for communication between Photoneo Vision Controller and the specific robot controller. In most cases an additional industrial fieldbus can be configured for basic robot control (ON/OFF, robot program selection, safety purposes etc.), however the option of replacing TCP/IP communication by means of any other industrial fieldbus is currently not supported.
  
 
=== 3. Full Operator Control ===
 
=== 3. Full Operator Control ===
  
'''Photoneo BP Client does not take over the control of the robot!''' Photoneo BP Solution only feeds robot controller by trajectory waypoints and appropriate gripper commands and it is always the robot Programmer/Operator who decides when to perform bin picking actions by calling particular jobs/routines/programs provided by Photoneo Robotic API. Motion speed and implementation of gripper commands is also the responsibility of the robot Programmer/Operator.  
+
'''Photoneo BP Client does not assume control of the robot!''' Photoneo BP Studio only feeds trajectory waypoints and appropriate gripper commands to the robot controller and it is always the robot Programmer/Operator who decides when to perform bin picking actions by calling particular jobs/routines/programs provided by Photoneo Robotic API. The robot programmer is also responsible for implementing gripper commands and setting appropriate motion speed.  
  
In order to provide adequate feedback, Photoneo BP Client always enables robot Programmer/Operator to track current robot program execution directly on the pendant. Motion is never performed by background tasks and out of the Programmer/Operator scope. High caution is necessary especially during initial commissioning. Always make sure that motion speed is set adequately and be prepared to halt robot program execution immediately.  
+
In order to provide adequate feedback, Photoneo BP Client always enables the robot Programmer/Operator to track current robot program execution directly on the pendant. Motions are never executed by background tasks and out of the Programmer/Operator scope. Extreme caution is necessary especially during initial commissioning. Users must always make sure that motion speed is set appropriately and should be prepared to halt robot program execution immediately in case of untoward events.
  
 
=== 4. Easy to Integrate ===
 
=== 4. Easy to Integrate ===
  
'''Robot Interfaces for Photoneo BP solution were developed to be easily integrated into existing robotic applications''' written in standard robotic languages. From robot programming point of view, Photoneo BP Robot Interface is just a set of jobs/routines/programs that are available for the robot Programmer/Operator to be called when bin picking operation is about to be executed.  
+
'''Robot Interfaces for Photoneo BP Studio have been developed to be easily integrated into existing robotic applications''' written in standard robotic languages. From a robot programming point of view, the Photoneo BP Robot Interface is a set of jobs/routines/programs that are available for the robot Programmer/Operator to be called when bin picking is about to be executed.  
  
For example when a next object needs to be picked, operator calls a job/routine/program named ''requestTrajectory()'' or similar. Robot interface transmits this request to the Vision Controller, Vision Controller performs requested action (triggers scan & compute motion plan) and the result (set of trajectories and gripper commands) is transmitted back to the robot controller. Robot Programmer/Operator is notified by predefined register or flag that new motion data are available and it is up to him when he decides to perform the bin picking movement. This is realized by calling another job/routine/program usually named ''executeTrajectory()'' or similar.  
+
For example when the next object needs to be picked, the robot Programmer/Operator calls a job/routine/program named ''requestTrajectory()'' or req_traj() or similar(depending on language syntax limits). The Robot interface transmits this request to the Vision Controller, which then performs the requested action (i.e. triggers a scan & compute motion plan) and the result (i.e. the set of trajectories and gripper commands) is transmitted back to the robot controller. The Robot Programmer/Operator is notified by a predefined register or flag that new motion data isachieved by realized by calling another job/routine/program usually named ''executeTrajectory()'' or similar.  
  
See specific robot vendor tutorial for further information about Photoneo robotic API.   
+
See specific robot vendor tutorials for further information about the Photoneo robotic API.   
  
 
=== 5. Trajectory Validation ===
 
=== 5. Trajectory Validation ===
  
Bin Picking procedure is mostly composed of four sub-trajectories (approach, grasp, deapproach and end) and two or three gripper commands. Each sub-trajectory consists of several waypoints (usually 10-100) defined in joint position representation, which robot is trying to follow during the movement. Photoneo BP Client leverages '''downloading approach''' (in contrast to streaming one) meaning that each trajectory is downloaded from the Vision Controller and verified by the robot controller before execution. No motion is executed until robot controller checks whether each received waypoint matches the waypoint originally sent by the Vision Controller.  
+
The bin picking procedure is mostly comprised of four sub-trajectories (approach, grasp, de-approach and end) and two or three gripper commands. Each sub-trajectory consists of several waypoints (usually 10-100) defined in joint position representation, which the robot attempts to follow during the movement. Photoneo BP Client leverages a '''downloading approach''' (in contrast to a streaming one) meaning that each trajectory is downloaded from the Vision Controller and verified by the robot controller prior execution. No motion is executed until the robot controller has checked whether received waypoint matches the waypoint originally sent by the Vision Controller.  
  
 
== Supported Robotic Systems & Prerequisites: ==
 
== Supported Robotic Systems & Prerequisites: ==
  
Robot interfaces for Photoneo BP system were developed using the latest available hardware. By default we are targeting 6-axis industrial manipulators of various scales but recently we have been also experimenting with collaborative robots such as KUKA IIWA or ABB YUMI which should be also supported in upcoming releases.
+
Robot interfaces for the Photoneo BP system were developed using the latest available hardware. By default the system was designed for use with 6-axis industrial manipulators of various scales but recently we have been also been experimenting with collaborative robots such as KUKA IIWA or ABB YUMI which should also be supported in upcoming releases.
  
Following list summarizes currently supported systems and specific software options required for multitasking and user socket messaging functionality:
+
The following list summarizes the systems which are currently supported and the specific software options required for multitasking and user socket messaging functionality:
  
 
1. '''ABB''' - RobotWare OS > 5.13 + PC-Interface (616-6) + Multitasking Module (672-1) options
 
1. '''ABB''' - RobotWare OS > 5.13 + PC-Interface (616-6) + Multitasking Module (672-1) options
  
2. '''KUKA''' - KUKA System Software 8.2 and higher (KRC4) + EthernetKRL option
+
2. '''KUKA''' - KUKA System Software 8.2 and higher (KRC4) + EthernetKRL option 2.2.7 and higher
  
 
3. '''FANUC''' - System version 8.10 or higher + R632 - KAREL + R648 - User Socket Messaging options
 
3. '''FANUC''' - System version 8.10 or higher + R632 - KAREL + R648 - User Socket Messaging options
Line 63: Line 63:
  
 
8. '''UNIVERSAL ROBOT''' - System Version 1.8 and higher
 
8. '''UNIVERSAL ROBOT''' - System Version 1.8 and higher
 +
 +
9. '''KAWASAKI''' - E-series controllers
  
 
== Where to go next ==
 
== Where to go next ==
  
''Setting up'' tutorials provide detailed instructions how to configure specific robot controller and install required Photoneo Robot Interface sources:
+
Our Setting up tutorials provide detailed instructions on how to configure specific robot controllers and to install the required Photoneo Robot Interface sources:
 +
 
 +
1. [[Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with ABB robots]] [Ready]
  
1. [[Bin Picking Tutorial: Setting up Photoneo BP Solution with ABB robots]] [In progress]
+
2. [[Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with KUKA robots]] [Ready]
  
2. Setting up Photoneo BP Solution with KUKA robots [ToDo]
+
3. [[Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with FANUC robots]] [Ready]
  
3. [[Bin Picking Tutorial: Setting up Photoneo BP Solution with FANUC robots]] [In progress]
+
4. [[Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with STAUBLI robots]] [Ready]
  
4. Setting up Photoneo BP Solution with STAUBLI robots [ToDo]
+
5. [[Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with UR robots]] [Ready]
  
5. Setting up Photoneo BP Solution with YASKAWA robots [ToDo]
+
6. [[Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with KAWASAKI robots]] [Ready]
  
6. Setting up Photoneo BP Solution with MISTUBISHI robots [ToDo]
+
7. [[Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with YASKAWA robots]] [Ready]
  
7. Setting up Photoneo BP Solution with OMRON/ADEPT robots [ToDo]
+
8. [[Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with MITSUBISHI robots]] [In Review]
  
8. Setting up Photoneo BP Solution with UR robots [ToDo]
+
9. [[Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with OMRON robots]] [Basic version]

Latest revision as of 12:26, 9 March 2019

The main aim of this page is to provide a general introduction to the robot interfaces, which form vital element of Photoneo Bin Picking Studio.

It is highly recommended that users read this tutorial prior to installation of specific robot interface !!!

Architecture

The Photoneo Bin Picking Studio is compatible with a wide range of industrial manipulators produced by different robotic manufacturers. For example, if you order Photoneo Bin Picking Studio for your ABB robot, in addition to the pre-configured Vision Controller with bin picking application, you will also receive a Photoneo-ABB Interface as an .zip archive containing our Bin Picking Client and State Server implementation written in RAPID language. This code must be installed on your robot controller in order to enable proper communication between the bin picking application and the ABB IRC5 system. If you have a Fanuc robot, you will receive an interface written in Karel and TPE for Fanuc controllers; similarly a Melfa V interface is provided for Mitsubishi Robots, a Val3 interface for Staubli robots and so on. Installation procedures and configuration tutorials for particular brands are available in "Setting up guides" which is linked at the bottom of this page.


The plugin-based architecture of the Photoneo BP Studio enabling various robot client implementations is shown in the figure below:

Binpicking overview ver2.png

General principles:

As was mentioned above, the Photoneo Bin Picking Studio is compatible with a wide range of industrial manipulators produced by different manufacturers. The implementation and installation processes differ for each individual robot model, but five general principles apply to all of them:

1. State Server + Bin Picking Client

The Robot Interface for Photoneo BP Studio always consists of two tasks - State Server + Bin Picking Client. Both processes must run in parallel on the target robot controller. State Server, reporting the current joint and tool pose coordinates, usually runs in the background, while BP Client, which is responsible for the Request/Response transfers between Vision Controller and the robot controller, is controlled directly by the robot Programmer/Operator using Photoneo Robotic API.

2. TCP/IP Based

TCP/IP is utilized for communication between Photoneo Vision Controller and the specific robot controller. In most cases an additional industrial fieldbus can be configured for basic robot control (ON/OFF, robot program selection, safety purposes etc.), however the option of replacing TCP/IP communication by means of any other industrial fieldbus is currently not supported.

3. Full Operator Control

Photoneo BP Client does not assume control of the robot! Photoneo BP Studio only feeds trajectory waypoints and appropriate gripper commands to the robot controller and it is always the robot Programmer/Operator who decides when to perform bin picking actions by calling particular jobs/routines/programs provided by Photoneo Robotic API. The robot programmer is also responsible for implementing gripper commands and setting appropriate motion speed.

In order to provide adequate feedback, Photoneo BP Client always enables the robot Programmer/Operator to track current robot program execution directly on the pendant. Motions are never executed by background tasks and out of the Programmer/Operator scope. Extreme caution is necessary especially during initial commissioning. Users must always make sure that motion speed is set appropriately and should be prepared to halt robot program execution immediately in case of untoward events.

4. Easy to Integrate

Robot Interfaces for Photoneo BP Studio have been developed to be easily integrated into existing robotic applications written in standard robotic languages. From a robot programming point of view, the Photoneo BP Robot Interface is a set of jobs/routines/programs that are available for the robot Programmer/Operator to be called when bin picking is about to be executed.

For example when the next object needs to be picked, the robot Programmer/Operator calls a job/routine/program named requestTrajectory() or req_traj() or similar(depending on language syntax limits). The Robot interface transmits this request to the Vision Controller, which then performs the requested action (i.e. triggers a scan & compute motion plan) and the result (i.e. the set of trajectories and gripper commands) is transmitted back to the robot controller. The Robot Programmer/Operator is notified by a predefined register or flag that new motion data isachieved by realized by calling another job/routine/program usually named executeTrajectory() or similar.

See specific robot vendor tutorials for further information about the Photoneo robotic API.

5. Trajectory Validation

The bin picking procedure is mostly comprised of four sub-trajectories (approach, grasp, de-approach and end) and two or three gripper commands. Each sub-trajectory consists of several waypoints (usually 10-100) defined in joint position representation, which the robot attempts to follow during the movement. Photoneo BP Client leverages a downloading approach (in contrast to a streaming one) meaning that each trajectory is downloaded from the Vision Controller and verified by the robot controller prior execution. No motion is executed until the robot controller has checked whether received waypoint matches the waypoint originally sent by the Vision Controller.

Supported Robotic Systems & Prerequisites:

Robot interfaces for the Photoneo BP system were developed using the latest available hardware. By default the system was designed for use with 6-axis industrial manipulators of various scales but recently we have been also been experimenting with collaborative robots such as KUKA IIWA or ABB YUMI which should also be supported in upcoming releases.

The following list summarizes the systems which are currently supported and the specific software options required for multitasking and user socket messaging functionality:

1. ABB - RobotWare OS > 5.13 + PC-Interface (616-6) + Multitasking Module (672-1) options

2. KUKA - KUKA System Software 8.2 and higher (KRC4) + EthernetKRL option 2.2.7 and higher

3. FANUC - System version 8.10 or higher + R632 - KAREL + R648 - User Socket Messaging options

4. STAUBLI - Staubli CS8 controller and higher + VAL3 version s7.7.2 or higher

5. YASKAWA - YRC1000 Controller v.1.34 and higher + MotoPlus Runtime option (DX100, DX200, FS100 controllers are currently not supported)

6. MITSUBISHI - CR750-D Controllers + Software version - H7 and higher

7. OMRON/ADEPT - Both s650 + s850 Adept Viper manipulators

8. UNIVERSAL ROBOT - System Version 1.8 and higher

9. KAWASAKI - E-series controllers

Where to go next

Our Setting up tutorials provide detailed instructions on how to configure specific robot controllers and to install the required Photoneo Robot Interface sources:

1. Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with ABB robots [Ready]

2. Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with KUKA robots [Ready]

3. Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with FANUC robots [Ready]

4. Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with STAUBLI robots [Ready]

5. Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with UR robots [Ready]

6. Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with KAWASAKI robots [Ready]

7. Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with YASKAWA robots [Ready]

8. Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with MITSUBISHI robots [In Review]

9. Bin Picking Tutorial: Setting up Photoneo Bin Picking Studio with OMRON robots [Basic version]