Skip to content
This repository has been archived by the owner on Jul 3, 2019. It is now read-only.
/ robocluster Public archive

Communication wrapper library for serialization and transport of data through a distributed robotics system.

License

Notifications You must be signed in to change notification settings

UofSSpaceTeam/robocluster

Repository files navigation

robocluster

Build Status Codacy Badge Code Health Documentation Status Coverage Status

This is a library that powers the communication for the USST's mars rover, but is also applicable to any robotics system where multiple modules are involved. Robocluster allows you to build light weight distributed applications that talk to each other over a local area network using IP multicast and TCP sockets.

Documentation

We have sphinx generated documentation that can be found here. The Usage Tutorial steps through some example code to show off the features of using robocluster. The examples folder contains some example scripts to test out robocluster as well.

Installation (for development)

At some point (soon?) we'll put this on PyPi, but for now you can install robocluster as follows:

  1. clone the repo from github
  2. From the project root, do pip install -r requirements.txt.
  3. From the project root, do pip install -e ..
  4. Run the examples/device.py script to confirm everything works. It should print random numbers to the console.

If you have difficulty getting robocluster to run on your machine, you can try running it in a virtual machine. A configutation file for vagrant is provided for easy setup of a VM. Install Vagrant and a VM provisioner such as VirtualBox or VMware, and run:

vagrant up # This will take a while the first time to install the VM
vagrant ssh

You are now in a virtual machine and can cd to /vagrant where the source code is synced. The Vagrant config is set up to bridge your internet connection to the VM, so you may be prompted to select a network interface. This should allow the VM to interact over your local network just like any other physical machine.

Contributing

Create a branch off of dev and make changes from there. When your change is done, and you want feedback, submit a pull request to merge your branch into dev, and someone will review your code and merge it if it's ready. The master branch is sort of being used to mark major stable versions.

Tests

The test suite is set up so that you can run python setup.py test to run the tests with coverage statistics. You can also run the tests by themselves with pytest tests (assuming you have pytest installed through pip).

About

Communication wrapper library for serialization and transport of data through a distributed robotics system.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages