Locator Tutorial: Introduction
The main aim of this page is to provide a general introduction to the Locator, a tool which allows remote control of Photoneo Localization SDK.
Users are strongly recommended to read this tutorial prior to installation of specific robot interfaces !!!
- Locator is a tool which enables users to control 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 website for more information and sizing options.
- Locator returns single or multiple Cartesian poses. Coordinate Space in which Cartesian poses are returned is configured directly in the PhoXi Control application.
- Locator assumes that the scanner position has been properly calibrated with respect to the robot base. See our calibration tutorial for more information.
- Locator communication is TCP/IP based; the Locator always works as a server, while the robot controller or other devices connect to the configured Locator port as a client.
- Locator communication protocol permits socket communication with various devices. For standard robotic vendors (ABB, FANUC, STAUBLI, etc.) user do not need to implement TCP/IP communication on the robot controller itself, since this is the purpose of the Locator Robotic Modules. For communication with different devices (PLC, PC, etc.), a full specification of communication protocol is available.
What is included
The Locator product consists of 5 components:
- Vision Controller - an Intel® 6th-Gen Skylake machine vision controller with vision-specific I/O, real-time control & GPU computing
- Locator Configurator - runs on Vision Controller, a QT based application with 3D visualizer which enables users to configure, control and monitor Locator functionality.
- Locator Core - runs on Vision Controller as a background service; this is the main Locator application which controls the localization, processes results and handles communication with the connected client.
- Locator Robot Module - runs on the robot controller; the module provides a simple API written in specific robot programming languages (RAPID, URScript, KAREL ...) for communication with the Locator Core.
- Locator HW License - USB dongle which is required for Localization and Locator runtime
Additional software tools available on Vision Controller:
- PhoXi Control - is essential tool for PhoXi Scanners. It is used for establishing connection with PhoXi Scanners and configuration of scanning parameters.
- Photoneo Localization Configurator - is an application for configuration of Localization algorithm parameters. The result is stored in a specific file format called .PLCF
- Photoneo Robot-Camera Calibration Tool - is used to find the transformation between the PhoXi Scanner and origin of robot coordinate space.
Locator Configurator is a standalone QT-based user interface for configuring, controlling and monitoring the Locator Core application which run as a background service. As is shown in the figure below, the UI consists of two panels - the control panel on the left and the 3D visualizer on the right. More details about how to configure Locator to meet your application requirements can be found in the Locator Tutorial: Setup and Runtime guide.
Locator Configurator - 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 is built 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 a PLCF (Photoneo Localization Configuration File) generated by the Localization Configurator as an input, opens a predefined port on the socket and waits for a connection from the client. As soon as the connection from the client is established and the first trigger command is received, Locator performs a Scan & 3D Localization of the 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 than one object is found by the localization algorithm, only one result is returned to the client based on configuration of Best Result Selector (Max Z, Min Z, Max Overlap etc.)
- Multiple Result Mode - users can choose 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 information on how to switch between Single and Multiple Result modes 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 an ABB robot, in addition to the pre-configured Vision Controller with the 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 the ABB IRC5 system. Installation procedures and configuration tutorials for specific brands are available in the Setting up guides linked at the bottom of this page.
The concept of Locator Robot Modules is also important because of potential incompatibilities related to orientation representation. Robot vendors use various notations for representing orientations; for example ABB uses Quaternions, UR uses rotation vectors, Omron robots use 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 each specific robot in the correct notation.
From a robot programming point of view, the Locator Robot Module is a simple API - a set of functions which are intended for high level control of Locator application. The Locator API provides functions for connecting to Locator, triggering scans, receiving results and even executing motions to received goals. Users can integrate these functions directly into existing application while maintaining full control of the application. See Setting up guides for further information about specific implementations.
The current status of Locator Robot modules is shown in the figure below:
Supported Robotic Systems & Prerequisites
Robot interfaces for the Locator system were developed using the most-up-to-date hardware. By default, the system has been 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 socket messaging functionality:
1. ABB - RobotWare OS > 5.13 + PC-Interface (616-6) option [Ready]
2. KUKA - KUKA System Software 8.2 and higher (KRC4) + EthernetKRL option [Ready]
3. SIASUN - SIASUN Cobot SCR5 UI:2.0.5 Robot: 1.0.5 [Ready]
4. FANUC - System version 8.10 or higher + R632 - KAREL + R648 - User Socket Messaging options [Ready]
5. UNIVERSAL ROBOT - CB3.1 Controllers or E-series, System Version 3.3 and higher [URCap Ready]
6. YASKAWA - YRC1000 Controller v.1.34 and higher + MotoPlus Runtime option (DX100, DX200, FS100 controllers can be added on demand) [Ready]
7. STAUBLI - Staubli CS8 controller and higher + VAL3 version s7.7.2 or higher [On demand]
8. OMRON/ADEPT - Both s650 + s850 Adept Viper manipulators [On demand]
9. MITSUBISHI - CR750-D Controllers + Software version - H7 and higher [On demand]
10. KAWASAKI - E series Controllers [On demand]
Where to go next
The following Locator tutorials provide detailed instructions about Locator Setup, Runtime and installation of the specific robot modules.
1. Locator Tutorial: Setup and Runtime [Ready]
6. Locator Tutorial: Setting up Locator to work with UR robots [In Progress]
7. Locator Tutorial: Setting up Locator to work with YASKAWA robots [In Progress]