All Projects → roshub → vapor_master

roshub / vapor_master

Licence: Apache-2.0 license
high availability ros master

Programming Languages

python
139335 projects - #7 most used programming language
javascript
184084 projects - #8 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to vapor master

yak
yak (yet another kinfu) is a library and ROS wrapper for Truncated Signed Distance Fields (TSDFs).
Stars: ✭ 25 (+47.06%)
Mutual labels:  ros
microstrain inertial
ROS driver for all of MicroStrain's current G and C series products. To learn more visit
Stars: ✭ 44 (+158.82%)
Mutual labels:  ros
roboclaw ros
ros for roboclaw
Stars: ✭ 38 (+123.53%)
Mutual labels:  ros
KRS
The Kria Robotics Stack (KRS) is a ROS 2 superset for industry, an integrated set of robot libraries and utilities to accelerate the development, maintenance and commercialization of industrial-grade robotic solutions while using adaptive computing.
Stars: ✭ 26 (+52.94%)
Mutual labels:  ros
tensorflow ros cpp
Catkin-friendly C++ bindings for tensorflow.
Stars: ✭ 60 (+252.94%)
Mutual labels:  ros
mycobot ros
A ros package for myCobot.
Stars: ✭ 76 (+347.06%)
Mutual labels:  ros
ros dmp
Dynamic Motion Primitives
Stars: ✭ 25 (+47.06%)
Mutual labels:  ros
vicon
Code for working with the Vicon tracking system
Stars: ✭ 20 (+17.65%)
Mutual labels:  ros
double laser mapping location
ros1 gazebo cartographer amcl
Stars: ✭ 41 (+141.18%)
Mutual labels:  ros
robomaster s1 can hack
DJI RoboMaster S1 CAN Hack
Stars: ✭ 71 (+317.65%)
Mutual labels:  ros
lidar-sync-mimics-gps
Open-Source LiDAR Time Synchronization System by Mimicking GPS-clock
Stars: ✭ 52 (+205.88%)
Mutual labels:  ros
dofbot-jetson nano
Yahboom DOFBOT AI Vision Robotic Arm with ROS for Jetson NANO 4GB B01
Stars: ✭ 24 (+41.18%)
Mutual labels:  ros
teraranger
Ros nodes for single TeraRanger sensors
Stars: ✭ 19 (+11.76%)
Mutual labels:  ros
pg async.rs
Asynchronous, HA (master-master) PostgreSQL driver on top of libpq.
Stars: ✭ 40 (+135.29%)
Mutual labels:  high-availability
robotiq 2finger grippers
ROS packages enabling the control, visualization and simulation of the Robotiq 2 Fingers Adaptive Grippers model version C3
Stars: ✭ 59 (+247.06%)
Mutual labels:  ros
the-Cooper-Mapper
An open source autonomous driving research platform for Active SLAM & Multisensor Data Fusion
Stars: ✭ 38 (+123.53%)
Mutual labels:  ros
core
Enterprise Grade #NodeJS Platform implementing Industry Standards & Patterns in order to provide Connectivity, Stability, High-Availability and High-Performance
Stars: ✭ 54 (+217.65%)
Mutual labels:  high-availability
DDPG
End to End Mobile Robot Navigation using DDPG (Continuous Control with Deep Reinforcement Learning) based on Tensorflow + Gazebo
Stars: ✭ 41 (+141.18%)
Mutual labels:  ros
riptide setup
The software packages which power The OSU Underwater Robotics Team's AUV.
Stars: ✭ 31 (+82.35%)
Mutual labels:  ros
py trees ros
ROS extensions and implementations for py_trees
Stars: ✭ 80 (+370.59%)
Mutual labels:  ros

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

Vapor is open source software developed by RosHub Inc.

  • Philetus Weller
  • Nick Zatkovich
  • Alan Meekins
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].