Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added link to blog post #6

Merged
merged 1 commit into from Jan 7, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
26 changes: 14 additions & 12 deletions examples/machine_vision_object_pickup/README.md
Expand Up @@ -2,15 +2,17 @@

This example shows how to interface a camera (Datalogic T47) with the Eva Python SDK for dynamically moving Eva to an object detected by the camera and picking it up.

For more information please read [this blog post](https://blog.automata.tech/machine-vision-integrating-eva-with-a-smart-camera) which gives more detailed information and pictures to accompany this code example.

## Requirements

This example assumes you have a working machine vison camera. The camera is trained through its native software to give the X and Y coordinates and rotation angle of a detected object relative to the camera frame.
This example assumes you have a working machine vison camera. The camera is trained through its native software to give the X and Y coordinates and rotation angle of a detected object relative to the camera frame.
These values are then used to perform the pick and place operation by using the inverse kinematics function.

The communication between the camera and the robot is based on a TCP/IP server, the parameters of which have been set up in the camera software.
The communication between the camera and the robot is based on a TCP/IP server, the parameters of which have been set up in the camera software.
A string containing the X, Y and angle parameters is generated and streamed to Eva.

The relative orientation of the camera with respect to the robot position is obtained through a calibration procedure.
The relative orientation of the camera with respect to the robot position is obtained through a calibration procedure.
This example assumes that the camera's XY plane is parallel to Eva's XY plane. Their relative rotation can be input in the script.

## Supported Version
Expand All @@ -22,29 +24,29 @@ Requirements to run this script as is:

## Project description

__[main.py](main.py)__
**[main.py](main.py)**

This file is the main script and contains the logic to connect to Eva and to communicate with the camera. This will perform the pick and place task, as a function of the objects sensed by the camera.
This file is the main script and contains the logic to connect to Eva and to communicate with the camera. This will perform the pick and place task, as a function of the objects sensed by the camera.

You can use this file to modify the toolpath settings (speed, additional waypoints, IOs, etc).

__[evaUtilities.py](evaUtilities.py)__
**[evaUtilities.py](evaUtilities.py)**

This file contains the auxiliary functions needed by the **main.py** script (frame of reference handling, angle and quaternion conversion, inverse kinematics, string reading, string parsing). You should not changed this file.


__[config/config_manager.py](config/config_manager.py)__
**[config/config_manager.py](config/config_manager.py)**

This file loads the YAML parameter file. You should not changed this file.

__[config/use_case_config.yaml](config/use_case_config.yaml)__
**[config/use_case_config.yaml](config/use_case_config.yaml)**

This YAML file contains the parameters needed for the simulation, which are initialized to zero by default.
This YAML file contains the parameters needed for the simulation, which are initialized to zero by default.

In detailed, you will have to input:

- EVA communication setup (host, token)
- TCP/IP communication setup (server, port)
- objects characteristic (number, name, size)
- EVA configurations (home, guess, drop-off).
- objects characteristic (number, name, size)
- EVA configurations (home, guess, drop-off)

**NOTE: without changing these parameters, EVA will automatically set its home position in the upright configuration**