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 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
- An
Observation
from the robot sensors object containing.tof
Time of Flight sensors.charge
Battery charge
- 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
- This tensor has buffered/stacked events since the last
- 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 commands172.16.223.10x
: Raspberry Pi for streaming DVS data
Contact
Reach out to Juan or Jens if you need anything.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file durin-0.0.63.tar.gz
.
File metadata
- Download URL: durin-0.0.63.tar.gz
- Upload date:
- Size: 17.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 086668161d867e72c9775499047bc627fc9d747e226717f85df79ace8c826826 |
|
MD5 | 29aefe187462620d4d6f791f03e3b269 |
|
BLAKE2b-256 | 1dfd047cf334e20c80e6ebd0796fcce16cde8bbb4291add005cbe2b9c1bb1e56 |
File details
Details for the file durin-0.0.63-py3-none-any.whl
.
File metadata
- Download URL: durin-0.0.63-py3-none-any.whl
- Upload date:
- Size: 22.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b7c5a1dcadfd23752b962e87432cecd188b45356976d7108d8d7340fecf9bb3 |
|
MD5 | b9b30dde4d0cf0feb4b08d0a2752fbfe |
|
BLAKE2b-256 | 38f4feed9dc38b5aa1458c9b40ab3013f98205f06e5a95da1a8283fd28f6fd27 |