judahr / vector-plus

A small C# library for managing new Vector behaviours cooperatively. Early days!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

VectorPlus

A C# library, framework and server for defining and managing new behaviours for the Vector robot (created by Anki, now supported by Digital Dream Labs).

VectorPlus communicates with your robot using the unofficial C# library Anki.Vector.SDK. It is designed to run continuously and maintain a connection to your Vector robot over your home wifi network.

Context

The SDK allows programs to access and control the Vector robot. Some capabilities require that the SDK take full control of the robot. While that is happening, the robot is locked.

VectorPlus creates behaviours that only take control of the robot as they need it, and release that control afterwards.

Current state

The project is still in early stages. You can launch it using VisualStudio and connect to your robot, or run it in a Docker container on any machine.

In planning:

  • Some better state tracking facilities.
  • Some more interesting demo behaviours.
  • Some documentation for writing your own behaviour modules.
  • Distribute VectorPlus.Lib as a Nuget package for developers to build against.

Running your VectorPlus server

VectorPlus is under development - some of these details may change...

Launching with Visual Studio

Download the solution, and run the VectorPlus.Web application with Visual Studio. It's a web server, so you can visit: http://localhost:5000 to test it on your own machine.

### Launching through Docker

There are a number of scripts to help you get started running the app in a Docker container:

  • docker-build.sh - this builds a docker image tagged vectorplusapp using VectorPlus.Web/Dockerfile.
  • docker-run.sh - this starts a docker container named vectorplus, running the app published on port 5000.
  • docker-stop.sh - this stops and removes the vectorplus docker container.

Connecting to the robot

By default, the application will pick up your Vector SDK configuration. If you're running on a personal machine where you've already set up the SDK, you don't need to do anything.

If you're running VectorPlus as a server on a separate machine (or inside Docker), you can configure the robot's SDK connection through the Connection page.

Enabling behaviours

Head over to the Configuration page, and upload a module. VectorPlus.Demo.Behaviour.dll is the same module which you can build as a part of this Visual Studio solution. From there you can activate a number of different behaviours to try out with Vector.

Demo behaviours

Developing new behaviours

VectorPlus is intended to make it easy to build new behaviours that can co-exist. They can be bundled up and distributed as modules in DLL form for others to install.

TODO: bundle VectorPlus.Lib as a Nuget package.

Credit

Huge credit to Digital Dream Labs for picking up where Anki left off, maintaining and supporting both Cosmo and Vector robots. If you haven't already purchased a subscription to updates, you can do so at their site.

Other useful tools

About

A small C# library for managing new Vector behaviours cooperatively. Early days!


Languages

Language:C# 89.7%Language:HTML 9.0%Language:CSS 0.7%Language:Dockerfile 0.3%Language:Shell 0.2%Language:JavaScript 0.1%