Skip to main content

SDK for the Automata Eva robotic arm

Project description

Eva Python SDK PyPI version Build status codecov

The Eva Python SDK provides convenient access to the Automata Eva API from applications written in Python 3.

* This SDK is currently in beta

Installation

Requires Python 3, not compatible with Python 2

Pip

Make sure you have Python3 and pip installed, then run the following command:

$ pip install evasdk

# Or for a specific version, i.e the lastest compatible version 2.x.x:
$ pip install evasdk~=2.0.0

Pipenv

Make sure you have Python3 and Pipenv installed, then run the following command:

$ pipenv install evasdk

# Or for a specific version, i.e the lastest compatible version 2.x.x:
$ pipenv install evasdk~=2.0.0

Detail Instructions

If your not familiar with Python or for more detailed instructions please refer to our wiki:

Examples

The Eva object allows you to directly control an Eva robot. It provides lots of useful helper function for interacting with the robot.

Eva

Connecting

host = '<your_eva_IP_here>'
token = '<your_token_here>'

eva = Eva(host, token)

GoTo movement

eva = Eva(host_ip, token)

with eva.lock():
    eva.control_wait_for_ready()
    eva.control_go_to([0, 0, 0, 0, 0, 0], mode='teach')

Toolpath create and run

toolpath = {
    "metadata":{
        "default_velocity":0.7,
        "next_label_id":5,
        "analog_modes":{ "i0":"voltage", "i1":"voltage", "o0":"voltage", "o1":"voltage" }
    },
    "waypoints":[
        { "joints":[-0.68147224, 0.3648368, -1.0703622, 9.354615e-05, -2.4358354, -0.6813218], "label_id":3 },
        { "joints":[-0.6350288, 0.25192022, -1.0664424, 0.030407501, -2.2955494, -0.615318], "label_id":2 },
        { "joints":[-0.13414459, 0.5361486, -1.280493, -6.992453e-08, -2.3972468, -0.13414553], "label_id":1 },
        { "joints":[-0.4103904, 0.33332264, -1.5417944, -5.380291e-06, -1.9328799, -0.41031334], "label_id":4 }
    ],
    "timeline":[
        { "type":"home", "waypoint_id":2 },
        { "type":"trajectory", "trajectory":"joint_space", "waypoint_id":1 },
        { "type":"trajectory", "trajectory":"joint_space", "waypoint_id":0 },
        { "type":"trajectory", "trajectory":"joint_space", "waypoint_id":2 }
    ]
}

eva = Eva(host, token)

with eva.lock():
    eva.control_wait_for_ready()
    eva.toolpaths_use(toolpath)
    eva.control_home()
    eva.control_run(loop=1, mode='teach')

Please refer to the examples directory for more SDK usage examples.

evasdk.eva_http and evasdk.eva_ws

These can be used to interact directly with the HTTP and Websocket APIs. Useful when you don't want the managed websocket connection provided by the evasdk.Eva object.

Versioning

To determine which version of the SDK works with your Eva's software version number (found on the Choreograph config page), please use the following chart:

SDK Version Supported Eva Version
1.x.x 2.0.0 - 2.1.2
2.x.x 3.x.x

For more information on how to install a particular version of the SDK, please refer to the Installation section. We use the Semver version numbering stratergy.

Logging

The SDK uses Debug and Error level logging exclusively. Each Eva instance will log using the name evasdk.Eva:<host_name_here>. If you wish to enable the debug logging:

logging.basicConfig(level=logging.DEBUG)

Bugs and feature requests

Please raise any bugs or feature requests as a Github issues. We also gratefully accept pull requests for features and bug fixes.

Testing

$ pipenv shell
$ python -m pytest evasdk/<name-of-file-to-test>

# some test require supplying ip and token via the `--ip` and `--token` arguements
$ python -m pytest evasdk/<name-of-file-to-test> --ip 172.16.16.2 --token abc-123-def-456

License

This code is free to use under the terms of the Apache 2 license. Please refer to LICENSE for more information.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for evasdk, version 2.0.0
Filename, size File type Python version Upload date Hashes
Filename, size evasdk-2.0.0-py3-none-any.whl (13.4 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size evasdk-2.0.0.tar.gz (12.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page