All Projects → automata-tech → eva_python_sdk

automata-tech / eva_python_sdk

Licence: other
Python 3 SDK for interacting with the Eva robot arm

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to eva python sdk

grasp multiObject
Robotic grasp dataset for multi-object multi-grasp evaluation with RGB-D data. This dataset is annotated using the same protocal as Cornell Dataset, and can be used as multi-object extension of Cornell Dataset.
Stars: ✭ 59 (+353.85%)
Mutual labels:  robotics
EL6483 EmbeddedSystems
All course materials, build systems, etc. for the graduate Real-Time Embedded Systems Course, Spring 2017
Stars: ✭ 14 (+7.69%)
Mutual labels:  robotics
gear
Collision Avoidance Path Planning in Rust-lang
Stars: ✭ 29 (+123.08%)
Mutual labels:  robotics
rapcores
Robotic Application Processor
Stars: ✭ 14 (+7.69%)
Mutual labels:  robotics
l2r
Open-source reinforcement learning environment for autonomous racing.
Stars: ✭ 38 (+192.31%)
Mutual labels:  robotics
ROS-TCP-Connector
No description or website provided.
Stars: ✭ 123 (+846.15%)
Mutual labels:  robotics
bht-ams-playerstage
Player/Stage SLAM
Stars: ✭ 35 (+169.23%)
Mutual labels:  robotics
DiSCO-pytorch
Differentiable Scan Context with Orientation
Stars: ✭ 37 (+184.62%)
Mutual labels:  robotics
FusionAD
An open source autonomous driving stack by San Jose State University Autonomous Driving Team
Stars: ✭ 30 (+130.77%)
Mutual labels:  robotics
robotic-grasping
Antipodal Robotic Grasping using GR-ConvNet. IROS 2020.
Stars: ✭ 131 (+907.69%)
Mutual labels:  robotics
Drona
Drona is a programming framework for building safe robotics systems
Stars: ✭ 26 (+100%)
Mutual labels:  robotics
ndt localizer
This robot lcoalisation package for lidar-map based localisation using multi-sensor state estimation.
Stars: ✭ 32 (+146.15%)
Mutual labels:  robotics
bio ik
MoveIt kinematics_base plugin based on particle optimization & GA
Stars: ✭ 104 (+700%)
Mutual labels:  robotics
trajopt
Trajectory optimization algorithms for robotic control.
Stars: ✭ 74 (+469.23%)
Mutual labels:  robotics
sparse-scene-flow
This repo contains C++ code for sparse scene flow method.
Stars: ✭ 23 (+76.92%)
Mutual labels:  robotics
TORA.jl
Trajectory Optimization for Robot Arms
Stars: ✭ 27 (+107.69%)
Mutual labels:  robotics
robotic-warehouse
Multi-Robot Warehouse (RWARE): A multi-agent reinforcement learning environment
Stars: ✭ 62 (+376.92%)
Mutual labels:  robotics
ROS-Intelligent-Service-Robot
A ROS robot supporting voice control, autonomous navigation and robot arm motion.
Stars: ✭ 55 (+323.08%)
Mutual labels:  robotics
baddy-makers-edition
The place for the BADDY community to: get all you need (dxf plans, code etc.) to make and build your own BADDY share issues... and fixes! create stunning new features
Stars: ✭ 20 (+53.85%)
Mutual labels:  robotics
nn robustness analysis
Python tools for analyzing the robustness properties of neural networks (NNs) from MIT ACL
Stars: ✭ 36 (+176.92%)
Mutual labels:  robotics

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. Documentation is available here.

* This SDK is currently in beta

Installation

Requires Python 3, not compatible with Python 2

We support Python 3.6 and later.

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 following section provides some getting started example code, for more detailed examples please go to our eva_examples repository.

Eva

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

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": {
        "version": 2,
        "default_max_speed": 0.25,
        "payload": 0,
        "analog_modes": {
            "i0": "voltage",
            "i1": "voltage",
            "o0": "voltage",
            "o1": "voltage"
        },
        "next_label_id": 3
    },
    "waypoints": [{
        "label_id": 1,
        "joints": [0, 0.5235987755982988, -1.7453292519943295, 0, -1.9198621771937625, 0]
    }, {
        "label_id": 2,
        "joints": [0.18392622441053394, 0.8259819316864014, -2.050006151199341, 0.1785774528980255, -1.6037521743774412, -0.549331545829773]
    }],
    "timeline": [{
        "type": "home",
        "waypoint_id": 0
    }, {
        "type": "trajectory",
        "trajectory": "joint_space",
        "waypoint_id": 1
    }, {
        "type": "trajectory",
        "trajectory": "joint_space",
        "waypoint_id": 0
    }]
}

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 reference the following table:

SDK Version Supported Eva Version
1.0.0 2.0.0 - 2.1.2
2.0.0 3.0.0 - 3.0.1
3.0.0 and later 3.1.0 and later

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

# to run all test files in tests directory:
$ pipenv run test

# or to run a single test file:
$ pipenv shell
$ pipenv run testd tests/<test-name>_test.py

# some test require testing against a real robot. Therefore you will be required to supply a ip and token via the `--ip` and `--token` arguments as well as pass the --runrobot flag to notify pytest that you wish to run the robot tests:
$ pipenv run test --runrobot --ip 172.16.16.2 --token abc-123-def-456

# Tests requiring the robot or long amounts of time will not run by default,
# these require flags to be enabled, a full list of flags is available with the help flag:
$ pipenv run test -h

Documentation

Find the documentation here.

We are using Sphinx to generate documentation, and the documentation is deployed with Read The Docs.

We have added a few extensions to Sphinx

  • sphinx.ext.autodoc to automatically generate package documentation based off of Python docstrings.
  • m2r2 to convert rST to MD, this is so we can include README.md to the online docs.

We have a GitHub Action in the build.yaml workflow that will do this automatically update the documentation and commit the documentation changes on pushing a branch to GitHub. For this we are using EndBug/add-and-commit.

Read The Docs has automation rules. We have one set up that will automatically build documentation for any semver tagged version of the project.

We need to pass the force flag -f to overwrite modules.rst, as otherwise Sphinx will skip over searching the evasdk directory.

To generate a local version of the documentation:

cd docs
make html

Then open the file docs/_build/html/index.html in your browser.

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].