GithubHelp home page GithubHelp logo

Examples about rosrust HOT 6 CLOSED

andresv avatar andresv commented on September 20, 2024
Examples

from rosrust.

Comments (6)

adnanademovic avatar adnanademovic commented on September 20, 2024 2

Hi,
Thanks for the interest! I'm currently working on designing a TCPROS client (ROS is generally badly documented, so there is a lot of Wireshark fiddling in this). Once that is done, pub/sub and service/client will be a couple of hours of work to make.
After that, I'll make examples. For now you can get/set parameters (as stated in the README). The next time you get a notification from this issue, the stated features and examples will be there!

from rosrust.

cwoodall avatar cwoodall commented on September 20, 2024

If you come up with some new insights on ROS to help improve the documentation/etc you should publish them! I have been trying to find those details for a while and never actually got to sitting down with wireshark

from rosrust.

adnanademovic avatar adnanademovic commented on September 20, 2024

Yeah, most of the delay in this process is caused by ROS's documentation being very lacking, which is made extra bad by the fact that a lot of elements of protocols are wildly different on the original C++ and Python implementations.

Getting all of that right is what's taking so long 😢.

from rosrust.

mikepurvis avatar mikepurvis commented on September 20, 2024

In theory, the master API is documented here (and the immediate linked pages): http://wiki.ros.org/ROS/Master_API

If you're keeping notes, it would be great to have something published afterward which details how the docs diverge from reality. Also, I'm curious that you've had to reimplement xmlrpc— are they ways that ROS usage deviates from the standard that make one of the other implementations (eg) unsuitable?

Finally, not sure how far along you are with message generation, but one thought on that is that (at least temporarily) you might be able to use a bridge like rust-cpp to reuse the serialization code avoid needing to build out all of that infrastructure. Another alternative path here might be to avoid compile-time generated headers altogether, and instead parse the msg files at runtime, following the pattern of variant.

from rosrust.

adnanademovic avatar adnanademovic commented on September 20, 2024

I was less worried about Master API, and more worried about Slave API (its first method doesn't even have an explanation on what all of its various return values mean).

At the moment when I wrote the xmlrpc code there weren't any existing libraries (I started working on this several months before the linked lib even had its first release). ROS works pretty standard with XMLRPC.

Message serialization is done, I just have to look into more ROS details to choose the best way of implementing all of the genmsg bindings, and add things to the ROS build farms so that I have all the standard message types generated right in the distro. I'll do all of that once I'm done with service/client, which should hopefully be by next week!

from rosrust.

adnanademovic avatar adnanademovic commented on September 20, 2024

@cwoodall @mikepurvis Since you've asked, I just ran into something right now. Apparently a client can "probe" your service, sending you this kind of a garbage header:

{
  "md5sum": "*",
  "service": "/add_dem_numbers",
  "callerid": "/rosservice",
  "probe": "1"
}

This is not documented anywhere, and is extra annoying since I've coded things in a way that if I get a header that doesn't match, I just say no thanks, bye.

Also, after I dealt with that, I still had issues connecting to rosservice. The docs explicitly say that a client has to send a "type" field, but "rosservice call" never does that.

In any case, publisher/subscriber and service/client are done!

I'll make some examples right now!

from rosrust.

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.