-

vapor_master package from vapor_master repo

vapor_master

Package Summary

Tags No category tags.
Version 0.5.0
License Apache-2.0
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/roshub/vapor_master.git
VCS Type git
VCS Version master
Last Updated 2019-04-04
Dev Status DEVELOPED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

high availability ros master

Additional Links

Maintainers

  • Nicholas Zatkovich
  • Alan Meekins
  • RosHub Inc.

Authors

  • RosHub Inc.

<img src=./icons/roshub_vector_logo.svg width=150>

Vapor is a high availibility rosmaster implementation

Build Status Snap Status

Introduction

Vapor-master is a drop in replacement for rosmaster enabling high availability ROS service discovery. Vapor removes the single point of failure fundamental to ROS1 enabling new options for achieving greater scale and uptime of ROS1 workflows.

Installing

Vapor is available as a catkin package, debian package and Ubuntu Snap. We recommend consuming vapor via the debian package or Ubuntu Snap.

Prerequisites

A requirement of vapor is that you have installed and configured mongodb for your environment. For local testing you can simply run:

  • sudo apt install mongodb

Non-requirements

Vapor does not strictly require a ROS installtion, it can simply be run as a micro service if so desired.

Debian Package

NOTE: We are still awaiting the next rosdistro sync for Melodic, you can follow sync status here

Snap Package

Get it from the Snap Store

Vapor can be installed either by visiting the Ubuntu Snap store above or with the following command

  • snap install vapor-master

Once installed the snap runs as a daemon until stopped using:

  • snap stop vapor-master

To re-start simply:

  • snap start vapor-master

You can manually start vapor for:

  • snap run vapor-master

You can debug by seting the DEBUG environment variable:

  • DEBUG=* snap run vapor-master

All command line flags are accessible via the snap as well:

  • snap run vapor-master --help

Configuring

Vapor can be configured in four ways with highest precedence in order:

  1. Command line flags
  2. Configuration file
  3. Environment variables
  4. Defaults

Command Line Flags

Usage vapor-master
  --clean-db
  --no-clean-db
  --no-shutdown
  --db=[mongo-uri]
  --dboptions={[mongo-db-options]}
  --ROS_MASTER_URI=[ros-master-uri]
  --config=[configuration-file]

Configuration File

Vapor looks for configuration files in:

  • The file defined in the command line flag --config
  • $SNAP_COMMON/config.json
    • If $SNAP_COMMON is defined
  • $HOME/.vapor-master/config.json
    • If $HOME is defined
  • ./config.json
    • If neither $SNAP_COMMON or $HOME are defined

Environment Variables

  • $clean-db
  • $no-clean-db
  • $no-shutdown
  • $db=[mongodb-uri]
  • $dboptions={[mongo-db-options]}
  • $ROS_MASTER_URI

Defaults

  • clean-db: true
  • db: mongodb://localhost:27017/vapor_master
  • ROS_MASTER_URI: http://localhost:11311

Developing

To develop you will need to install

  • nodejs
  • yarn
  • ROS Melodic

To interactively develop run:

yarn
yarn watch

Tests

To run tests, first run catkin_make in the tests/native_client folder, and then source the file tests/native_client/devel/setup.bash.

Then run:

yarn test

Roadmap

  • Support snap configuration
  • Write Tutorials
  • Complete ROS API implementation
    • Database availability as ROS Topic
    • Vapor instance as ROS Topic
    • Rosgraph outage reporting as Topic and Action
  • hot-swap support
    • Detect and report lost mongo replicas
    • Automatic db replicaset expansion
  • rosout leader election
  • Autostart via systemd on Ubuntu/debian

Further Reading

Support

Should you need professional support, contact us.

Credits

<img src=./icons/roshub_logo_cropped_large.png width=300>

Vapor is open source software developed by RosHub Inc.

  • Philetus Weller
  • Nick Zatkovich
  • Alan Meekins
CHANGELOG

Changelog for package vapor_master

0.5.0 (2019-03-27) -----------* Bug fixes * Contributors: Nick Zatkovich

0.3.0 (2019-01-22) -----------* remove dead code * Allow parameter array and map containers (#26) * track array items * support yaml maps and arrays. ensure single no duplicate param paths and allow updating * Contributors: 7bit, Nick Zatkovich

0.1.0 (2018-12-31) -----------* Initial release * Contributors: Nick Zatkovich

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

Name
nodejs
npm

Dependant Packages

No known dependants.

Recent questions tagged vapor_master at Robotics Stack Exchange