Giter Club home page Giter Club logo

Comments (2)

Sanic avatar Sanic commented on May 31, 2024

Hi!

Interesting find, i also thought about using CBOR, but didn't use it because the libraries weren't so well available like (hopefully) nowadays when i started this project.
Before going this step, it would be interesting to repeat the experiments from RobotWebTools/rosbridge_suite#370 and compare them against BSON to see how much processing time it would actually save.
I don't know what is meant with "When I evaluated BSON for binary ROS messages I found that the JS decoder was very slow and the message size was larger than JSON." in the mentioned PR, as the JS decoder/encoder shouldn't be called when using bson_only_mode.

Regarding your argument "every value is prefixed with the index": You could try to use the "binary" type of BSON. Then you shouldn't need to prefix every list element.

Converting to CBOR would roughly be a two-step process:

  1. Extending https://github.com/Sanic/rosbridge2cpp/ to support CBOR . ROSIntegration uses a copy of this project, but in this repo you have the code separated and you can use it outside of unreal
  2. Exchange the ROSIntegrationInstance handling to support CBOR

You are right, all the message converts have to be changed to support CBOR, as the data retrieval and setting methods differ quite a lot between the different libraries.

from rosintegration.

jteuber avatar jteuber commented on May 31, 2024

Hi Sanic, thanks for your fast answer!
Yes, I would also like to evaluate that. I just asked in the issue in rosbridge for the evaluation code, maybe we can save some time there.
I tried to use the binary type in messages instead of arrays, unfortunately when I do that, rosbridge complains that the type of the field is not the corresponding array type and discards the message. (I don't have the actual error message handy but it just wouldn't take it as binary).

from rosintegration.

Related Issues (20)

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.