Skip to main content

Python control interface for the Durin robot

Project description

Durin control system

This repository contains Python code that interfaces with the robot Durin, built by the Neurocomputing Systems group at the KTH Royal Instititute of Technology. Please note that this is only the reference implementation for our interface. See below.

Installation

We require a working Python installation with access to pip. After that, installation is straight-forward:

pip install git+https://github.com/ncskth/durin

Usage

The interface is meant to be used via Python. More examples can be found in the durin/examples folder.

from durin import *

# The ip address to Durin is 172.16.223.9X, where X is the number of the robot (1, 2, or 5).
durin_ip = "172.16.223.91"

# This connects to durin and displays a user interface (UI)
with DurinUI(durin_ip) as durin:

    while True:
        # Get observation
        (obs, dvs, cmd) = durin.read()

        # Do clever things...

        # Move durin 100 units left with 0 forward/backward motion and 0 rotation
        command = Move(100, 0, 0)

        # Send a command to Durin
        durin(command)

        # ... this loop continues forever!
        # You can exit it on your computer by pressing CTRL+C

Sensory data

The durin.read() method will give you access to

  1. An Observation from the robot sensors object containing
    • .tof Time of Flight sensors
    • .charge Battery charge
  2. A 640x480 DVS PyTorch tensor
    • This tensor has buffered/stacked events since the last .read() command.
    • Note that this is only available if the Durin has a DVS sensor installed
  3. Replies from the robot, following any Poll commands
    • This is specified in the protocol datasheet below - feel free to ignore

Commands

The most important command is Move(x, y, rotation). the x, y, rotation values should be in the interval between [-500, 500].

Custom implementation

You can interface to the microcontroller (sensor + wheel actuation) and DVS microcamera with TCP and UDP. A complete specification is available via Google Drive: https://docs.google.com/spreadsheets/d/11jD30J00-03ygZ6zJaVTnjJRQKfczT-wMIdBdpYMxD4/edit?usp=sharing

Each robot has two IP addresses - one for the microcontroller and one for the DVS controller. The robots are numbered 1, 2, or 5. Insert those numbers where X is written below:

  • 172.16.223.9X: Microcontroller for sensory data and motor commands
  • 172.16.223.10x: Raspberry Pi for streaming DVS data

Contact

Reach out to Juan or Jens if you need anything.

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

durin-0.0.58.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

durin-0.0.58-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file durin-0.0.58.tar.gz.

File metadata

  • Download URL: durin-0.0.58.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for durin-0.0.58.tar.gz
Algorithm Hash digest
SHA256 7e26a54be98b8b4e8c31bc442182bfe8b8620f9dbaafddd0381cf1fd4a39f7ea
MD5 91ddc108bc40eaab98dcb4ade151ef16
BLAKE2b-256 041080a7ce9bd60be6b51ad3bda947174a17d3868e1185544e2ede93258f3b23

See more details on using hashes here.

File details

Details for the file durin-0.0.58-py3-none-any.whl.

File metadata

  • Download URL: durin-0.0.58-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.14

File hashes

Hashes for durin-0.0.58-py3-none-any.whl
Algorithm Hash digest
SHA256 373e6a5e2fa521c628b7fdca9e8dcc2c83e24d58b3542d2b4389bde0f0d2f389
MD5 b22dfceecea1cb4fcc88e3ff9a8d1724
BLAKE2b-256 e28291ea067912de4f4999c60a7950182cb3dc26f63d3a774446040cc4a4434f

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