Locator Tutorial: Introduction

From 3D scanning Knowledge base - Photoneo wiki
Revision as of 11:35, 18 July 2018 by Durovsky (talk | contribs)

Jump to: navigation, search

Locator is a tool which enables user to control Photoneo 3D Localization via socket communication. Client - usually a robot controller - can trigger a new localization and receive single or multiple results directly via TCP/IP as a Cartesian Pose.

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 was primarily designed to communicate with robot controllers of various vendors but custom configuration using PLC or additional PC is also possible. Communication is TCP/IP based, Locator always works as server, while robot controller or other type of device connects to specific Locator port as a client. It is also possible to configure additional output port for further processing or logging purposes.

Locator returns Cartesian pose with respect to specific Coordinate Space as configured in PhoXi Control. The standard Locator use case assumes that scanner position is properly calibrated with respect to the robot base. In this case RobotSpace option should be selected as a target Coordinate Space and Translation Vector and Robot Transformation matrix should contain values according to the result of calibration procedure. See calibration tutorial for more info.

Communication protocol is robot-specific. However the user doesn't need to implement TCP/IP communication on the robot controller side himself, since this is the goal of Locator Robotic Modules. The Locator Robot API provides functions which can be used for high-level interfacing of Locator (connectToLocator, trigLocator, waitForLocatorResponse etc.). See Locator Robot Modules section for more info.


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 which enables user to configure, control and monitor Locator functionality.
  • Locator Core - runs on Vision Controller, the main Locator application which starts 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 triggering scans, receiving results and executing motion.


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 in the background. 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: Locator Configuration guide.


Locator tutorial.jpg


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 Localization SDK and 3rd party devices (robot controllers, PLCs, etc). The Locator Core takes PLCF (Photoneo Localization Configuration File) generated by Localization Configurator as an input, waits for trigger from client and performs 3D Localization of configured object in the scene acquired by selected PhoXi Device.

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 according to the configuration of Best Result Selector is returned to the client (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 work 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.

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. As already mentioned in Locator GUI section, 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 XYZ notation and so on. Robot modules developed for Locator ensure that object orientation will always be delivered to specific robot in correct notation.

User can easily integrate Locator into existing robotic application using Locator robot API. API provides functions for connecting to Locator, triggering scans, receiving results and even executing motions to received goals. 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

2. UNIVERSAL ROBOT - System Version 3.3 and higher (Q3 2018)

3. STAUBLI - Staubli CS8 controller and higher + VAL3 version s7.7.2 or higher (Q3 2018)

4. OMRON/ADEPT - Both s650 + s850 Adept Viper manipulators (Q3 2018)

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 (On demand)

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)


Where to go next

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

1. Locator Tutorial: Locator Configuration

2. Locator Tutorial: Locator Runtime

3. Locator Tutorial: Setting up Locator to work with ABB robots