1.2.0 • Published 7 years ago

ros-backbone v1.2.0

Weekly downloads
2
License
wtfpl
Repository
github
Last release
7 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

7 years ago

1.2.0-a15

9 years ago

1.2.0-a14

9 years ago

1.2.0-a13

9 years ago

1.2.0-a12

9 years ago

1.2.0-a11

9 years ago

1.2.0-a9

9 years ago

1.2.0-a8

9 years ago

1.2.0-a7

9 years ago

1.2.0-a6

9 years ago

1.2.0-a5

9 years ago

1.2.0-a4

9 years ago

1.2.0-a3

9 years ago

1.2.0-a2

9 years ago

1.2.0-a1

9 years ago

1.1.0

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.1.7

9 years ago

0.1.6

9 years ago

0.1.5

9 years ago

0.1.4

9 years ago

0.1.3

9 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago