forked from serviceprototypinglab/roboreg
Service registry and device manager for fleets of robots
License
gtoff/roboreg
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Roboreg - A service registry and device manager for fleets of robots Copyright (C) 2016 Zürcher Hochschule für Angewandte Wissenschaften https://blog.zhaw.ch/icclab/category/research-approach/themes/cloud-robotics/ ==================================================================== Purpose ------- Roboreg gives owners or tenants of robots the ability to check their status, use their services, and deploy and run software applications. Roboreg uses Salt as underlying device coupling infrastructure. The service functionality will be provided by ROS nodes present on the robots. +---------------+ | CLI Interface | +---------------+ | v +=========+ +----------+ +-------------+ +----------------+ ||Roboreg||-->| Salt API |-->| Salt Master |--->| Salt Minion(s) | +=========+ +----------+ +-------------+ +----------------+ ^ | +--------------------+ | Service Interface | +--------------------+ Note: This is a research prototype. Your robots may go wild. Installation instructions ------------------------- This project requires Salt version 2016.3. The non-API parts should work with the older 2014.1. Salt will have to be patched (apply salt-netapi.diff) as otherwise the master will not be found by the API. Install Salt and (optionally) deactivate the system-wide daemons to rather control your own instances: $ apt-get install salt-master salt-minion salt-api $ update-rc.d salt-master disable; systemctl stop salt-master # optional $ update-rc.d salt-minion disable; systemctl stop salt-minion # optional $ sudo patch /usr/lib/python2.7/dist-packages/salt/netapi/__init__.py salt/salt-netapi.diff Copy roboreg.ini.dist to roboreg.ini and configure it accordingly. Launch in the following order (on separate terminals), if not already done: $ ./salt/launch-salt-master.sh $ ./salt/launch-salt-minion.sh $ salt-key -c salt/config --accept $HOSTNAME Test the functionality: $ ./test-scripts/salt-command.sh ls $ ./test-scripts/salt-roscommand.sh To make use of the Roboreg registry, launch in addition: $ ./salt/launch-salt-api.sh Again, test the functionality (you should NOT see an unauthorized status). Then, run the client: $ ./test-scripts/api-call-http.sh $ ./roboreg show The output of Roboreg is as follows: Robot minionhost / t=1465385020 / h=adbbc3 [ *] ^name($HN.) ^timestamp ^hash ^liveliness Notice how mutual exclusion is realised with "roboreg show $HOSTNAME". Try function chaining to apply an operation to a selection: $ ./roboreg pick "camera=True" » call test Use the embedded service gateway: http://localhost:11000/?camera=True. Source the syntax auto-completion in bash: $ . roboreg.bashcompletion Alternatively, copy the file permanently to /etc/bash_completion.d/.
About
Service registry and device manager for fleets of robots
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Python 75.9%
- Shell 17.8%
- HTML 6.3%