/vector-web-setup

Tool to perform initial configuration of Vector robots.

Primary LanguageJavaScriptMIT LicenseMIT

Vector Web Setup

Vector Web Setup provides an open source tool to allow users of Vector to configure their robot without relying on the proprietary phone application that previously provided the only method a user could use to configure their robot.

As Digital Dream Labs releases both the Escape Pod and OSKR code it is anticipated this tool will become an important part of the system by which users deploy both their own server side code, and their own custom software images to the robot.

For now it simply provides an alternative to the existing phone application and allows users to maintain local copies of the operating system images for redundancy purposes.

The software is written in Node.js and has should run anywhere you can run Node.js. It is tested on Windows, Mac OSX, and Linux.

Normal End User Usage

Most users will simply want to run a copy of the web server locally to interact with their robot. They will not need to use github to do this.

One time install:

  1. Install Node.js however that is done on their system.
  2. Install vector-web-setup package: npm install -g vector-web-setup
  3. Perform an initial configuration: vector-web-setup configure
  4. Perform a local sync of software files: vector-web-setup ota-sync

Daily usage:

  1. Start the web-server: vector-web-setup serve
  2. Open a Chrome Browser and go to http://localhost:8000/.
  3. Follow the instructions provided by the web application.

The application talks to the robot via BLE. There is a standard for browsers to support this but it is currently only implemented on Chrome. Until that changes use of the chrome browser is required.

Admin usage

As we release firmware to unlock OSKR robots or other alternate firmwares users may wish to install different firmwares for installation. There is a two-step process for this. First a file is downloaded and included in the manifest. After verifying that the file has downloaded correctly and completely it is signed with a checksum. This allows future users to distribute their own configurations to other users.

Example: use GooeyChickenman archives

There are backups of the firmware available via the user GooeyChickenman on github. Lets pretend that for some reason the official copies of the firmware are down, and you want to use the GooeyChickenman files as a replacement:

  1. Add the new file to the inventory: vector-web-setup ota-add https://github.com/GooeyChickenman/victor/raw/master/firmware/prod/1.6.0.3331.ota
  2. Download the file: vector-web-setup ota-sync
  3. Install it on a robot by running the software and selecting the new file.
  4. Sign the file after you've verified it's good: vector-web-setup ota-approve 1.6.0.3331.ota

Example: Add OSKR image locally

Example: Distribute Your configuration to another user

Example: Install another user's configuration

Contributions

Contributions from the community are always welcome!

For something simple such as fixing a typo or adjusting the css layout for a certain device simply create a pull request and we'll take a look.

If you have more substantial customizations or redesign it is highly recommended that you open an advisory issue to discuss with the team before spending significant time developing a solution that may be rejected for various reasons.

Any submitted pull request should pass the test suite run with npm test and will hopefully have additional tests as needed. It should also include a friendly entry in CHANGLOG.md describing the change/enhancement/fix.

And as always the project can be forked permanantly if you want to make significant changes without our permission!