Locator Tutorial: Introduction

From 3D scanning Knowledge base - Photoneo wiki
Revision as of 10:23, 6 August 2018 by Durovsky (talk | contribs)

Jump to: navigation, search

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 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 2.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 connection from the client. As soon as the connection from the client is established, Locator Core waits for a trigger command from the client to perform scan & 3D Localization of configured object. As soon as targets are localized in the scene, result 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 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. 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: Setup and Runtime

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