Giter VIP home page Giter VIP logo

rce's Introduction

Warning : RCE Alpha Deprecated

Note from the authors : This is the Alpha version of the cloud engine and is hereby deprecated. A lot has changed since we initially started this project during our university, both from the perspective of the needs and requirements of robots and the underlying technologies RoboEarth Cloud Engine relied on. After a detailed analysis of the current scenario, at this point it is impractical to build on the existing code base and have decided to take a clean room approach to build something new. Drawing from our experience and the success and shortcomings of building the first edition and what we learnt in the interim we are currently in the process of building a faster, more scalable, secure and fault tolerant version of the cloud engine. We are excited to inform you that our team at Rapyuta-Robotics is hard at work to release an all new version of our work as "Rapyuta Core" in the coming months into the open-source domain. When ready we will update this repository to reflect the same. Thank you for your support

Content of git respository

  • measure: Client-side scripts for a simple communication measurements and plotting. 0111

  • rce-client: Python and ROS client for the RoboEarth Cloud Engine. (Tested with ROS fuerte & groovy)

  • rce-comm: The files common to rce-core and rce-client.

  • rce-core: The core files of the RoboEarth Cloud Engine. (Tested with ROS fuerte & groovy)

  • rce-console: A console client for monitoring the Cloud Engine.

  • rce-util: Utility package of RoboEarth Cloud Engine.

  • rce++: C++ client for the RoboEarth Cloud Engine.

  • setup: Setup files and utilities that are referenced from the INSTALL file.

  • test: ROS packages which can be used with the framework. Contains server-side files for benchmark.

rce's People

Contributors

dhananjaysathe avatar dominiquehunziker avatar mayanks43 avatar micpalmia avatar mwaibel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rce's Issues

Install instructions need fix

The Install instructions need fixing , when followed word for word, something makes it say 'ResourceNotFound: Can not load manifest for ROS package "Test".' my guess is environment variables .Same bug report from the folks at Zaragoza

Received error message: Fatal Error on rce-ros configuration call

When calling rce-ros with certain configuration files, I get a number of Received error message: Fatal Error. On the master console, there is no error shown, but on the robot console I get a corresponding number of long stack traces ending with KeyError: 'odom', with various keys.

The curious thing is that with exactly the same .cfg file, I get these errors or not only depending on the order in which I define interfaces, connections and their properties.

As a simple example,

"interfaces" : [
        {
            "eTag"  : "cTag_01",
            "iTag"  : "cmdVel", 
            "iType" : "SubscriberInterface",
            "iCls"  : "geometry_msgs/Twist", 
            "addr"  : "youbot/cmd_vel"
        }, {
            "eTag"  : "youbot",
            "iTag"  : "cmdVel", 
            "iType" : "PublisherConverter",
            "iCls"  : "geometry_msgs/Twist", 
            "addr"  : "youbot/cmd_vel"
        }, {
            "eTag"  : "cTag_01",
            "iTag"  : "odom", 
            "iType" : "PublisherInterface",
            "iCls"  : "nav_msgs/Odometry", 
            "addr"  : "youbot/odom"
        }, {
            "eTag"  : "youbot",
            "iTag"  : "odom", 
            "iType" : "SubscriberConverter",
            "iCls"  : "nav_msgs/Odometry", 
            "addr"  : "youbot/odom"
        }
    ],

    "connections" : [
        {
            "tagA" : "cTag_01/cmdVel",
            "tagB" : "youbot/cmdVel"
        }, {
            "tagA" : "cTag_01/odom",
            "tagB" : "youbot/odom"
        }
    ]

doesn't give any errors, while

"interfaces" : [
       {
            "eTag"  : "cTag_01",
            "iTag"  : "odom", 
            "iType" : "PublisherInterface",
            "iCls"  : "nav_msgs/Odometry", 
            "addr"  : "youbot/odom"
        }, {
            "eTag"  : "youbot",
            "iTag"  : "odom", 
            "iType" : "SubscriberConverter",
            "iCls"  : "nav_msgs/Odometry", 
            "addr"  : "youbot/odom"
        }, {
            "eTag"  : "cTag_01",
            "iTag"  : "cmdVel", 
            "iType" : "SubscriberInterface",
            "iCls"  : "geometry_msgs/Twist", 
            "addr"  : "youbot/cmd_vel"
        }, {
            "eTag"  : "youbot",
            "iTag"  : "cmdVel", 
            "iType" : "PublisherConverter",
            "iCls"  : "geometry_msgs/Twist", 
            "addr"  : "youbot/cmd_vel"
        }
    ],

    "connections" : [
       {
            "tagA" : "cTag_01/odom",
            "tagB" : "youbot/odom"
        }, {
            "tagA" : "cTag_01/cmdVel",
            "tagB" : "youbot/cmdVel"
        }
    ]

prints a few errors (3 to 4).

When I try the config file with all the topics (joint, sensors, gripper) I get many more errors. In general anyway, everything works fine after the errors (that is, echoing the topics on the container works fine).

Storage Benchmarking

Benchmark data throughput between the old re_comm and the new fake_re_comm with hdfs-fuse.

ros kinetic

is there a way to install rapyuta with ros kinetic which installed on ubuntu 16.04 LTS ?
as it not listed in the options while installing the cloud

Release Police

Read via a documention from the perspective of a new PhD in mechanical engineering and report to the Group.

Data flow

Update Data flow in Developer Resources.

PyPI

Push rce packages to PyPI and allow setup of packages as per choice.

Virtual Network: Investigation

Investigate (no implementation) on the methods to create a private virtual network between a specific set of containers (including the case where the set resides across multiple machines).

Task: Investigate and present the findings Wed (29. May) 17:00.

@dhananjaysathe: Please put this top priority for this week.

rce-tool to list info

Add a script/tool to list info from config file, eg

  1. Where is container filesystem (maybe so more useful info regarding the filesystem?)
  2. Which package paths are mounted in the container
  3. Gather a list of ROS packages available in the container (based on the package paths mounted in the container)
  4. print a list of users in the cred db

Maybe add a feature to fetch all log files to simplify bug reports (and any other info we usually need)? (This implies that the logs are no longer printed to stdout, but to an actual logfile...)

anything else?

There is already a configuration directory for 'C**'. error on dirty shutdown

From this discussion I discovered that this issue is related to not shutting down correctly the container.

This is what I try to do (following the tutorial):

  • add the path to test in the config file
  • sudo rce-make + rosmake Test
  • rce-master
  • sudo rce-container localhost
  • rce-robot localhost
  • rce-ros debug.cfg

At this point I get various There is already a configuration directory for 'C100'.. After this error, trying to shut everything down and restarting again gives a OSError: [Errno 17] File exists: '/opt/rce/container/rootfs/opt/rce/packages/test' Could not setup the rce environment.

Container Debugging Made Easy

Add a documentation/tips on debugging inside the container. Starting from finding the container ip address.

Make Vlad happy by adding all sourcing to .profile.

Fix Buffering Issue

Add a fixed width buffer on the client and the server side.

Sync the header with the binary blob? (@Sathe: Not sure if we were planing this for this week. Please update)

Groovy Support

Python nodes are already tested by Dominique. Test with C++ nodes and see what is the issue with Vlad.

** This comes after the buffering issue **

Rosbridge measurements

Run benchmark from supposedly a robot process running on a machine to a ROS environment running on amazon via ROSbridge.

rce configuration

In case one wants to run only rce-master & rce-robot to create a network of robots (-> there is no need to create a container filesystem at all, ie run only provision config) then the execution of the rce processes fails because the container filesystem does not exist. (Checked in settings parser.) Some rethinking of the configuration is necessary, either:

  1. create individual files for each process (and one common for all processes?)
  2. add some kind of 'necessary capability' flag to indicated whether the container filesystem is required (similar comm ports for WebSocket is only necessary for rce-robot)
  3. move the validity checks out of the settings; but there was a reason why they were added there in the first place...

Add CUDA to RCE

  • Add CUDA as special feature (?) for a machine
  • Add CUDA setup in container to provision script as an (optional) feature
  • Let the provision script automatically detect whether CUDA feature is feasible?
  • Necessary to extend lxc config file with: > lxc.cgroup.devices.allow = c 195:* rwm

Open problem is the NVIDIA driver: I guess host and container driver version have to match?

How to setup CUDA for a container see: https://github.com/IDSCETHZurich/rapyuta-kinfu

long start-up time of roslisp nodes

Problem: Launching of roslisp nodes can be slow.
Reason: The nodes are compiled in every container anew because the lisp interpreter 'sbcl' compiles the code and stores the resulting "binaries" under '~/.cache/common-lisp' which is a temporary folder.

Wiki Tutorial Update

  1. Update/add the simple test case with string_msg
  2. Add the bar code detection as a tutorial [If there is a time constrain only the barcode extraction part should suffice]

Mention about the Wiki in USAGE/README. Should we have a READ_ME_FIRST file? As a first point of entry?

Bidirectional topic connectivity is not working.

It's not possible to publish same topic into container and subscribe to it simultaneously. For example I want to publish visual odometry transformations into /tf topic from the robot and map to odometry correction transformation into /tf from the container. Now it is not possible.

It is usually a good idea to have the /tf topic the same across all machines, so everybody can read and write to it.

Fake re_comm

Allow storage of data to RoboEarth through the cloud engine.

Client-side interfaces

In case a ServiceProvider is called which does not have a connection (situation occurs if debug config file is run with rce-ros and the a rosservice call is made before the EnvironmentEndpoint is ready & connected to the RobotEndpoint) the request is lost and is never processed, i.e. the client waits indefinitely for a response. (Applies to all interfaces, but only in case of the ServiceProvider this is really a problem.)

Possible solutions:

  • Might be fixed when buffering is added
  • Only create client-side ROS interfaces when instructed by the RobotEndpoint, i.e. only if the there is a connection for the ServiceProvider (this is already implemented on the container side)

RoboEarth Storage

Fully testedRoboEarth storage that can be used as a standalone. A lot of folks are interested in using it. Should be robust and well documented.

Add Terminology

Add a Terminology which defines the Rapyuta specific terminologies. File name suggestion [TERMINOLOGY]

  • Should we have a documentation folder in the repository?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.