Skip to content

Get Started

IndyEye is a low-cost vision solution for cooperative robots. Various image processing modules can be used to easily recognize objects and implement them in pick-and-place operations. IndyEye comes integrated with a robot and its interface can be configured to a dedicated Android app.

IndyEye Installation

IndyEye is a built-in option for IndyCB, so every IndyCB supporting IndyEye contains the IndyEye logo and USB port. To start the installation, proceed with the following steps:

  1. Connect the USB port at the bottom of the robot into the integrated IndyCB’s IndyEye USB port.
  2. Connect the LAN cable to IndyCB’s LAN port and configure local network to connect with the IndyEye app.
  3. Install the IndyEye app on your tablet with the provided installation file.

IndyEye Connection

IndyEye app Main Screen

After the installation is complete, power on the IndyCB to operate the robot. An IndyEye exclusive app is used for its setup. Open the IndyEye app and enter the robot’s IP address. The IP (i.e. STEP-CP) address of the robot is the same as the paired IndyCB’s, and it can be found using an IP Scanner tool (i.e. (Advanced IP Scanner)). Once the IP address is entered click on the Connect button to establish a connection as in the picture above. The IP list shows the recent accessed IP addresses.

IndyEye Connection Screen

When a connection is made to IndyEye, a continuous video stream is automatically displayed on the left side of the app screen. Click the refresh icon in the upper right corner of the screen if the connection is lost or it is desired to reset the exposure setting. It’s possible to view the video in full screen mode by clicking on the full screen button at the bottom right of the screen.

Robot Connection

Robot Connection Screen

On the upper left side of the app screen, there is a Robot Connection Setup. The connection to the robot should be started to proceed with calibration or object detection using IndyEye and the robot. First, click the Connect button. When the picture below is shown on the screen as a pop-up window, select the robot model from the dropdown menu, write the IP address and click the Connect button. In this case, the IP is written as which is automatically given from IndyCB.

Switch to Direct Teaching mode

When a connection has been made the state will change to Normal next to the robot logo. By clicking the Normal button, it is possible to switch to Direct Teaching mode. This will be useful during calibration and other tasks where the robot needs to be repositioned.


Calibration of IndyEye can be done using the supplied calibration sheets captured in various directions. Place the calibration sheet on a surface as shown in the figure below. Click Mode of the calibration steps to check if Mounted Camera is selected.

Calibration Tab

During calibration, click the Viewpoints tab and proceed to Base Viewpoint Teaching in order to define the robot’s movement range. Like below, move the robot to base viewpoint and click the ‘Write’ icon to save. You can use direct teaching mode or Conty to move the robot, which were explained previously. After teaching, other defined viewpoints can be saved and loaded upon further calibration procedures by using the Save and Load button. Following the teaching method below, the last joint is adjusted to place the calibration sheet at the center of the app screen.


During teaching viewpoint 2 and 4, adjust axis 6 of the robot to equalize the screen’s horizontal and vertical axis to the calibration sheet. Also, adjust the distance between IndyEye and the sheet to make the sheet take over 1/3 of the screen before calibration.

Teaching of Seed Views

Teaching of Seed Views completed

In the Calibrate tab the calibration can now be started by pressing Start Calibration. The robot will automatically move and take pictures of the calibration sheet. It’s always possible to stop the calibration by pressing the button again which now shows Stop Calibration. In the first 50 steps the robot will take pictures from different positions. The last 50 steps will be calculations which take around 1 minute. Once finished a message with Calibration Completed is displayed.

Calibration done

In the Workspace a coordinate system on top of the sheet will be displayed after clicking the Detect button. If the calibration was setup successfully the coordinate system should be positioned correctly on the sheet. Manual adjustments can be made using the dials at the bottom right of the screen. This is recommended when very precise movements or detection is desired from IndyEye.

Workspace Settings

In the Save/Load tab it’s possible to Save the current calibrations or Load previous settings. To set the settings as the default settings click Set default. The default settings can be loaded with the Load default button.

Save calibration results

Using the Graph module

IndyEye Graph Module

Object detection can be performed in the Detection tab with use of the Graph module, setting the detection algorithm. The basic structure is composed of an input sensor (Camera), Detection, Segmentation, Inspection, Pose and Action (i.e. gripper movement). The detection algorithm can be edited by adding and modifying each module. By clicking Modify Graph from the detection tab, all the available modules can be checked. A detailed description of each graph module can be found by clicking on the graph module list Graph Modules List or at the help icon inside the IndyEye app. Basic usage of the graph module will be introduced below through a simple detection example.

Add Camera Module

To start editing the graph, press the Graph edit button. Then the Camera module is selected as the Sensor being used. It’s possible to add a module by using drag and drop or clicking on the module to make the window below appear. Then, add DetectMarker from the Detection class. It can be added by either drag and drop or clicking the module and the window shown below.

Selection of Connection Type

Next will add the module right after the previous module, Branch is used together with Switch statements and will add the module below the previous module. Condition will add a module above the previous module and will only be invoked if a condition is matched. In this (simple) example only the Next button will be used. No Refinement will be used, for Detection the DetectMarker option is chosen.

DetectMarker module settings

From the Logic class the Select module is added to the graph, which is necessary after the Detection class module. DetectMarker will detect any objects recognized as markers, with Select being the best match that can be selected. Within the Select module settings, the KEY selected is the score combined with the largest METHOD, meaning the object with the best match will be chosen. Then by pressing Save the program settings are saved.

Select module settings

Completed Graph

Once completed, click the Run button to execute the algorithm. As expected, the sheet is recognized as the closest match for the detection through DetectMarker.

Sheet recognition results

With this short example the first chapter of IndyEye has ended. In the next chapter more advanced IndyEye tutorials such as object inspection and pick and place will be explained.