Skip to content

gtoff/roboreg

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

No packages published

Languages

  • Python 75.9%
  • Shell 17.8%
  • HTML 6.3%