Redis key value guidelines
We need a coherent strategy to leverage redis in a systematic manner. For now, we're going to use c++ style namespace strategies with successive scopes to determine how robot information should be presented.
There's a tradeoff here. For once, we're in the process of serializing directly to json, which would be awesome for web compat. On the other hand, json seems to be a layer of complexity that we might not want for a variety of simple things. Moreover, to support the json stuff requires users to have somewhat more experience with programming. So perhaps we should push for that once we have either more sophisticated tutorials, or a core javascript programmer on the team who can shunt most of the work on to some scl libs.
Long story short, here's one proposal:
// Whether the robot is active
scl::robot::<robot-string-id> = {0,1}
// A robot's state
scl::robot::<robot-string-id>::sensors::q
scl::robot::<robot-string-id>::sensors::dq
// A command we'd like to send to the robot
scl::robots::<robot-string-id>::actuators::fgc
This should provide a simple high level interface to standardize basic robot io.
We'll also provide a simple webpage to monitor a robot's state using these key value pairs.
This is going to be important for the upcoming human-robot collaborative manipulation stuff..
Comments (5)
-
reporter -
reporter - edited description
-
reporter We have a new simulator, visualizer, and controller combo app that follows these new guidelines as of 8c10007082837ad6c2fa1340e2bbca58ecb25a46
-
reporter Now that the apps have been implemented, we can terminate this issue.
Moving this to the wiki so we have a permanent log. https://bitbucket.org/samirmenon/scl-manips-v2/wiki/docu/scl-distrib-ctrl
-
reporter - changed status to resolved
As per discussion..
- Log in to comment
For simplicity, in this interface we'll assume that every client is robot-specific. So we won't try to provide more meta information. We might reconsider this at a later date.