Skip to main content

Control Andrew Robots from Andrew Alliance

Project description

Reverse Engineering the Andrew Robot

Andrew is a robot designed to automatically perform bioscience experiments through pipetting precise quantities of liquids. The original Andrew robots are no longer supported by the manufacturer. Additionally, the existing software is old and based on Adobe AIR, a product similar to Flash, which is no longer supported by Adobe. To revitalize old robots, this repo exists to document the hardware and software of the Andrew robots, along with providing a Python library to interface with the robot.

Software Library

To install the package, run:

$ pip install andrew_robot

For basic usage, the AndrewRobot class can be used to control both the servos and lights of the robot.

from andrew.robot import AndrewRobot

robot = AndrewRobot('D:\\Resources\\andrew.xml', 'COM3', 250000, 'COM4')
# Set the max speed to something reasonably slow
robot.max_speed = 50

The AndrewRobot constructor takes the path to the andrew.xml config file, the serial port for the servos, the baud rate for the servos (this is presumably 250000 for all Andrew robots), and the serial port for the LED controller.

To control the servos, the move_servos() fucntion can be used. This method will attempt to move the arm to a safe height before moving the rest of the servos to their desired position, and then changing the arm height to its own desired position.

robot.move_servos(shoulder=1065, elbow=1530, wrist=1300, linear=2035, thumb=1779)

The right servo values for a desired pose can be found using the example find_poses.py.

Functions to control the LEDs are also provided. Note that these will need a slight delay after creating an AndrewRobot instance, as the LED controller restarts upon starting serial communication.

# Delay to let the LED controller restart
time.sleep(.1)

robot.led_arm(0)
robot.led_body(0)

Before any code can be run to interface with the servos, you will need to fix the drivers they use.

Documentation

Limitations

Research for this was done largely using the 1000G model of Andrew robot (probably, it's not labeled clearly, but we believe this is one of the first generation of Andrew robots) and briefly double-checked on a 1000R, although not thoroughly. It is very possible that other robots may have issues with this library. Pull requests to improve the information and code here are welcome.

Project details


Download files

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

Source Distribution

andrew_robot-0.0.1.tar.gz (4.4 MB view details)

Uploaded Source

Built Distribution

andrew_robot-0.0.1-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file andrew_robot-0.0.1.tar.gz.

File metadata

  • Download URL: andrew_robot-0.0.1.tar.gz
  • Upload date:
  • Size: 4.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for andrew_robot-0.0.1.tar.gz
Algorithm Hash digest
SHA256 f6c5c450b0461ce0caf9a445722519077ba5b3e021a921419f8715903306f307
MD5 a53ae925fe45768d43071c8c24033f4e
BLAKE2b-256 9df7590d86646a7fce91cafb19921012768b598859b9459ddec34760d852c8a9

See more details on using hashes here.

File details

Details for the file andrew_robot-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: andrew_robot-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for andrew_robot-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fbf891823d7cd1055d3ac38bf456c4f21cd6bf9993123e37f909c035685c7ca2
MD5 3118fa886132cbd7196d8247e92aa6a7
BLAKE2b-256 b2b4d2f162e9ae426777efe1ed04361d504045a0e653fe57a03b8f6e7fc978a0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page