1.2.0 • Published 8 years ago

ros-backbone v1.2.0

Weekly downloads
2
License
wtfpl
Repository
github
Last release
8 years ago

Backbone bindings to a ROSLib Build Status

Parameter model

Simple fetch, update, delete bindings for Model -> Param

var rosbb = require("ros-backbone");

var ParamModel = rosbb.ParamModel.extend({
    ros: new ROS.Ros({
        url: "ws://localhost:9091"
    }),
    params: ["/foo", "/bar"]
});

var paramModel = new ParamModel();

paramModel.fetch().then(() => {
   app.doSomething();
});
# Topic Model/Collection

```js
var rosbb = require("ros-backbone");

var ROS = require("roslib");
var ros = ROS.Ros("ws://localhost:9090");

var myTopic = ros.Topic({
	name: "/some/topic"
});

var myModel = new rosbb.Model();
myModel.bind(myTopic, {
    // If not provided all fields will be kept
    bindings: {
        "topic-attribute": "mapped-model-attribute",
        "some-other-attr": "xyz",

        // Dots and bracket notation will be transformed
        // and the path will be found, however the other way
        // around doesn't currently work
        "pose.position.y" : "lat",
        "pose.position.x": "lng"
    },

    // Covert a stamped ROS header to a JS timestamp in MS (useful for time series)
    // Syntax: [<model attribute>, <topic attribute (default: "header")>]
    headerTimestamp: ["timestamp"],

    transform: function(message) {
        message.foo = 1;
        return message.bar < 5 ? message : false; // don't emit message
    },

    publishTransform: function(message) {
        // return falsey to omit, otherwise transform? & return the message to publish
    },

   frame_id: "my_frame", // frame to set when emitting messages

    // If you want to use a TFClient and provide a TFClient instance to bind
    observeFrame: "odom_frame"

});

// publish a ROS message
myModel.save({
    a: 1, b: 2, c: 3
});

var myCollection = new rosbb.Collection();
myCollection.bind(myTopic, {
    // options (see above)
});

Notes

  • Subscribe to as many ROS Topics as you please, but you should use the model as a sink and uni-directional in that case
  • This works best as a subscriber, publishing can be sketchy if you rebind/filter keys or subscribe to multiple nodes
1.2.0

8 years ago

1.2.0-a15

11 years ago

1.2.0-a14

11 years ago

1.2.0-a13

11 years ago

1.2.0-a12

11 years ago

1.2.0-a11

11 years ago

1.2.0-a9

11 years ago

1.2.0-a8

11 years ago

1.2.0-a7

11 years ago

1.2.0-a6

11 years ago

1.2.0-a5

11 years ago

1.2.0-a4

11 years ago

1.2.0-a3

11 years ago

1.2.0-a2

11 years ago

1.2.0-a1

11 years ago

1.1.0

11 years ago

1.0.1

11 years ago

1.0.0

11 years ago

0.1.7

11 years ago

0.1.6

11 years ago

0.1.5

11 years ago

0.1.4

11 years ago

0.1.3

11 years ago

0.1.2

11 years ago

0.1.1

11 years ago

0.1.0

11 years ago