GithubHelp home page GithubHelp logo

RMW interface documentation about rmw HOT 1 CLOSED

ros2 avatar ros2 commented on July 28, 2024
RMW interface documentation

from rmw.

Comments (1)

wjwwood avatar wjwwood commented on July 28, 2024

Hi @astralien3000, that cool that you're working on a new rmw implementation! I'm sorry that the rmw interface is not better documented at the moment, but we've had to pick and choose what to spend time on and we wanted to instead focus on the rcl API which is used to implement new client libraries (in different languages like C++ and Python).

Also, we've been wanting to improve the rmw API for a while now, but we've not had the time to do it. For example, we think the way we manage allocation in rcl is better than the original approach used in rmw and we'd like to update rmw to use the other style. This and other items have discouraged us from spending time on documenting the functions in great details because we knew they were going to change.

The best I can do is point you to code surrounding the rmw functions. For example, have a look at rcl_take which are basically thin wrappers around rmw_take_with_info at the moment and have decent docs:

rcl_take (there's also a hosted version, but it is not as up-to-date)

You can also look at how rcl calls rmw, for example:

Or how one of our rmw implementations implement it, like:

For the higher level integration into rclcpp there's also a lack of design documentation up online. But basically rmw_wait is used by rclcpp's Executor class to know when a subscription has data available, and then the Executor class will choose whether or not to take data from the ready subscriptions, and if it does it will do so with rmw_take* via rcl_take.

For more specific details, just ask directly.

Also, I'm going to close this issue for now. You might want to direct future high level questions to our discourse list:

https://discourse.ros.org/c/ng-ros

I can reopen this if needed.

from rmw.

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.