Difference between revisions of "Locator Tutorial: Introduction"

From 3D scanning Knowledge base - Photoneo wiki
Jump to: navigation, search
Line 5: Line 5:
 
== Overview ==
 
== Overview ==
  
* - Locator is a tool which enables user to control [http://www.photoneo.com/product-detail/photoneo-localization-sdk/ Photoneo 3D Localization] via socket communication.
+
* Locator is a tool which enables user to control [http://www.photoneo.com/product-detail/photoneo-localization-sdk/ Photoneo 3D Localization] via socket communication.
  
* - Locator is intended to work with  '''Photoneo® PhoXi® 3D Scanners'''. If you are not familiar with this product, please visit our [http://www.photoneo.com/product-showcase/phoxi_3d_scanners/ website] for more info and sizing options.
+
* Locator is intended to work with  '''Photoneo® PhoXi® 3D Scanners'''. If you are not familiar with this product, please visit our [http://www.photoneo.com/product-showcase/phoxi_3d_scanners/ website] for more info and sizing options.
  
* - Locator returns single or multiple Cartesian poses. Coordinate Space in which Cartesian poses are returned is configured directly in '''PhoXi Control''' application.  
+
* Locator returns single or multiple Cartesian poses. Coordinate Space in which Cartesian poses are returned is configured directly in '''PhoXi Control''' application.  
  
* - Locator use case assumes that scanner position is properly calibrated with respect to the robot base. See [http://wiki.photoneo.com/index.php/Robot-Camera_Calibration_Tool calibration tutorial] for more info.
+
* Locator use case assumes that scanner position is properly calibrated with respect to the robot base. See [http://wiki.photoneo.com/index.php/Robot-Camera_Calibration_Tool calibration tutorial] for more info.
  
* - Locator communication is TCP/IP based, Locator always works as server, while robot controller or other type of device connects to the configured Locator port as a client.
+
* Locator communication is TCP/IP based, Locator always works as server, while robot controller or other type of device connects to the configured Locator port as a client.
  
* - Locator communication protocol enables socket communication with various devices. For standard robotic vendors (ABB, FANUC, STAUBLI, etc.) user doesn't need to implement TCP/IP communication on the robot controller side himself, since this is the goal of Locator Robotic Modules. For communication with different devices (PLC, PC, etc.) a full specification of communication protocol is available.  
+
* Locator communication protocol enables socket communication with various devices. For standard robotic vendors (ABB, FANUC, STAUBLI, etc.) user doesn't need to implement TCP/IP communication on the robot controller side himself, since this is the goal of Locator Robotic Modules. For communication with different devices (PLC, PC, etc.) a full specification of communication protocol is available.  
  
 
== What is included ==
 
== What is included ==

Revision as of 11:49, 6 August 2018

The main aim of this page is to provide a general introduction to the Locator, a tool which enables remote control of Photoneo Localization SDK

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

Overview

  • Locator is intended to work with Photoneo® PhoXi® 3D Scanners. If you are not familiar with this product, please visit our website for more info and sizing options.
  • Locator returns single or multiple Cartesian poses. Coordinate Space in which Cartesian poses are returned is configured directly in PhoXi Control application.
  • Locator use case assumes that scanner position is properly calibrated with respect to the robot base. See calibration tutorial for more info.
  • Locator communication is TCP/IP based, Locator always works as server, while robot controller or other type of device connects to the configured Locator port as a client.
  • Locator communication protocol enables socket communication with various devices. For standard robotic vendors (ABB, FANUC, STAUBLI, etc.) user doesn't need to implement TCP/IP communication on the robot controller side himself, since this is the goal of Locator Robotic Modules. For communication with different devices (PLC, PC, etc.) a full specification of communication protocol is available.

What is included

Locator as a product consists of 4 components:

  • Vision Controller - the Intel® 6th-Gen Skylake machine vision controller with vision-specific I/O, real-time control & GPU computing
  • Locator UI - runs on Vision Controller, it is a QT based application with 3D visualizer which enables user to configure, control and monitor Locator functionality.
  • Locator Core - runs on Vision Controller as a background service, it is the main Locator application which controls the localization, process results and handles communication with connected client.
  • Locator Robot Module - runs on the robot controller, provide simple API written in specific robot programming language (RAPID, URScript, KAREL ...) for communication with Locator Core.

Vision Controller

Locator Vision Controller2.png

Locator UI

Locator UI is a standalone QT-based user interface for configuring, controlling and monitoring the Locator Core application running as a background service. As shown in the figure below, the UI consists of two panels - the control panel on the left and 3D visualizer on the right side. More details about how to configure Locator to meet your application requirements can be found in the Locator Tutorial: Setup and Runtime guide.


Locator tutorial 2.jpg

Locator UI - Example use case - PLCF was configured to return 20 results, client used Multiple Results Mode and requested 5 results, Best Result Selector set to Max Z coordinate.

Locator Core

Locator Core is build on top of Photoneo 3D Localization C++ SDK. It is designed to work as a background service and provide a TCP/IP based interface between Photoneo Localization C++ SDK and 3rd party devices (robot controllers, PCs, PLCs, etc). The Locator Core takes PLCF(Photoneo Localization Configuration File) generated by Localization Configurator as an input, opens predefined port on the socket and waits for connection from the client. As soon as the connection from the client is established and first trigger command is received, Locator performs Scan & 3D Localization of configured object within the scene. Localized objects are sorted according to the Best Result Selector and the final result is transmitted to the client.

Locator currently supports two basic modes of operation - Single Result Mode and Multiple Result Mode.

  • Single Result Mode - Even if more objects are found by the localization algorithm, only single result is returned to the client according to the configuration of Best Result Selector (Max Z, Min Z, Max Overlap etc.)
  • Multiple Result Mode - it is up to the user to decide how many results should be returned by the Locator. In this case Best Result Selector works as a sorting criterion.

See specific Setting up guides linked at the bottom of this page for more info on how to switch between Single and Multiple Result mode when interfacing Locator.

Locator Robot Modules

The Locator was designed to be compatible with a wide range of industrial manipulators produced by different robotic manufacturers. For example, if you order Locator for ABB robot, in addition to pre-configured Vision Controller with Locator application you will also receive a Locator ABB Module written in RAPID language. This code must be installed on your robot controller in order to enable proper communication between the Locator application and ABB IRC5 system. Installation procedures and configuration tutorials for particular brands are available in Setting up guides linked at the bottom of this page.

The concept of Locator Robot Modules is also important because of incompatibilities related to orientation representation. Robot vendors use various notations for representing orientations, for example ABB uses Quaternions, UR rotation vectors, Omron robots Euler angles in ZYZ notation, KUKA standard ZYX notation and so on. Robot modules developed for Locator ensure that object orientation will always be delivered to specific robot in correct notation.

From robot programming point of view, Locator Robot Module is a simple API - a set of functions which are intended for high level control of Locator application. Locator API provides functions for connecting to Locator, triggering scans, receiving results and even executing motions to received goals. User can integrate these functions directly in to existing application while maintaining the full control of the application. See Setting up guides for further info about specific implementations.

The current status of Locator Robot modules is shown in the figure below:


Locator overview ABB.png


Supported Robotic Systems & Prerequisites

Robot interfaces for the Locator 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 other combinations are also possible.

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) option [Ready]

2. UNIVERSAL ROBOT - System Version 3.3 and higher [On demand]

3. STAUBLI - Staubli CS8 controller and higher + VAL3 version s7.7.2 or higher [On demand]

4. OMRON/ADEPT - Both s650 + s850 Adept Viper manipulators [On demand]

5. KUKA - KUKA System Software 8.2 and higher (KRC4) + EthernetKRL option [On demand]

6. FANUC - System version 8.10 or higher + R632 - KAREL + R648 - User Socket Messaging options (In progress)

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

8. MITSUBISHI - CR750-D Controllers + Software version - H7 and higher [On demand]

9. KAWASAKI - E series Controllers [On demand]


Where to go next

Following Locator tutorials provide detailed instructions on how to configure, run Locator and install required robot modules.

1. Locator Tutorial: Setup and Runtime [In progress]

2. Locator Tutorial: Setting up Locator to work with ABB robots [Ready]

3. Locator Tutorial: Setting up Locator to work with FANUC robots [In progress]