Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ROS2 QoS meta-ticket] Dealine, Liveliness, and Lifespan #680

Open
nburek opened this issue Mar 29, 2019 · 5 comments

Comments

3 participants
@nburek
Copy link
Contributor

commented Mar 29, 2019

As a ROS 2 developer, I want to have some guarantees on the delivery of my messages and notification of when my system fails to meet those policies. These new QoS settings provide additional methods of specifying the profile for the messages in your system. Additionally they provide a feedback mechanism to know when your specified deadline and liveliness have been violated.

Owner: @ros2/aws-robotics

Exit Criteria

The new QoS features are implemented and available using the rclcpp and rclpy client libraries with either rmw_fastrtps, rmw_connext, or rmw_opensplice.

Tasks

Phase 1 - April 8th (interface freeze)

  • designs - Add design document : ros2/design#212
  • rclcpp - New interfaces for deadline, liveliness, and lifespan as well as event callbacks available
    • ros2/rclcpp#673 - Options-struct interfaces for creating publishers/subscribers
    • ros2/rclcpp#695 - Implement callbacks for liveliness and deadline QoS events
  • rclpy - New interfaces for event callbacks available in rclpy
    • ros2/rclpy#305 - Minimal change for build against new rcl API
    • ros2/rclpy#316 - API and implementation for Liveliness and Deadline event callbacks
  • rcl - New functions for getting event occurrences available in rcl
    • ros2/rcl#408 - New interfaces and their implementations for QoS features
  • rmw - New functions for getting event occurrences available in rmw
    • ros2/rmw#171 - Implement QoS: liveliness, deadline, lifespan
  • rmw_implementation: ros2/rmw_implementation#60
  • rmw_connext - Full support for deadline, liveliness, and lifepsan: ros2/rmw_connext#352
  • rmw_opensplice - New interface available, but policies are unimplemented when used
  • rmw_fastrtps - New interface available, but policies are unimplemented when used
  • demos - New demos for deadline, liveliness, and lifespan: ros2/demos#320

Phase 2 - May 16th (feature freeze)

  • system_tests - New system tests for deadline, liveliness, and lifespan ros2/system_tests#347
  • rmw_fastrtps - Full support for deadline, liveliness, and lifespan policies with callbacks
    • fastrtps - Implementation for deadline and lifespan coming from eProsima in 1.8.0
    • fastrtps - Implementation for liveliness manual by topic/participant functions
    • rmw_fastrtps - Migrate to new release of FastRTPS library (1.8.0)
    • rmw_fastrtps - Support for Deadline
    • rmw_fastrtps - Support for Lifespan
    • rmw_fastrtps - Support for Liveliness
  • rmw_opensplice - Full support for deadline, liveliness, and lifespan policies with callbacks

@thomas-moulard thomas-moulard added this to To do in AWS Robotics Mar 29, 2019

@thomas-moulard thomas-moulard moved this from To do to In progress in AWS Robotics Mar 29, 2019

@thomas-moulard thomas-moulard referenced this issue Mar 29, 2019

Closed

ROS 2 Dashing Diademata #607

13 of 20 tasks complete
@wjwwood

This comment has been minimized.

Copy link
Member

commented Apr 8, 2019

I find it pretty difficult to track which pr's are meant to be reviewed together and to be merged together. For instance, have a look at the issues for this feature on waffle.io:

Screen Shot 2019-04-08 at 2 48 22 PM

None of them are connected (see the connects to feature: https://help.waffle.io/faq/waffle-workflow/use-waffles-connect-keyword-to-connect-prs-to-issues).

Here's an example of that:

Screen Shot 2019-04-08 at 2 50 00 PM

Also, many of the issues/pr's are in progress and some are in review (as denoted by the labels on the issues/pr's). This issue isn't in progress or in review, I just moved it to in progress so it shows up next to it's peers.

Waffle will be going away soon, but it's still how we organize these for now, and hopefully in the future our new solution will work in a similar fashion.

Aside from the tool specifics, it would be nice to have pr's that should be reviewed and merged together be grouped somehow. I see in some places but not others a QoS N where N might be 0, 1, 2, etc... but I don't see that in other places. There are the two phases above, but they seems to be higher level that what I'm looking for in a grouping, as (for example) there are several pr's in flight for both rcl and rclpy, which presumably should not be merged a the same time?

@wjwwood wjwwood added the in progress label Apr 8, 2019

@nburek

This comment has been minimized.

Copy link
Contributor Author

commented Apr 9, 2019

Hey William,

Sorry for the organization difficulties. Outside of rclpy, I think that most of these are pretty tightly coupled at the moment. Here is my initial breakdown of what is coupled and I'll work with the people who opened each PR to get them marked with the proper "Connects to *" syntax.

Make parameters optional

ros2/rclcpp#673

New QoS Features and Events in rcl layer

ros2/rcl#408
aws-ros-dev/rcl#6
ros2/rclpy#305
ros2/rmw#171
ros2/rmw_implementation#60
ros2/rmw_connext#352
ros2/rmw_fastrtps#271
rclcpp - need a new PR open for this

Assert Liveliness Functions

aws-ros-dev/rcl#7
aws-ros-dev/rmw_fastrtps#4

Event Callbacks available

ros2/demos#320

Unfortunately our team cannot change the tags on the PRs ourselves, but I'll make sure that we are active about making a comment stating when a tag should be added/changed.

@nburek

This comment has been minimized.

Copy link
Contributor Author

commented May 16, 2019

The latest update on this is that all of the PRs for the features have been merged. The one feature that was not able to be done in time is Liveliness support for rmw_fastrtps. Liveliness support is currently planned for Fast-RTPS release 1.8.1 and we look at enabling support for it in rmw_fastrtps at that point.

The only outstanding PRs are for the demo and system_test packages, which we hope to get merged in after feature freeze.

@dirk-thomas

This comment has been minimized.

Copy link
Member

commented May 16, 2019

The only outstanding PRs are for the demo and system_test packages, which we hope to get merged in after feature freeze.

Please try to land these as soon as possible since especially the demo PR will be necessary for the upcoming testing phase.

@nburek

This comment has been minimized.

Copy link
Contributor Author

commented May 16, 2019

@dirk-thomas Both the PRs are in a place where they're ready for follow up reviews. I assumed they would be lower priority for the next couple of days since they aren't blocking feature freeze, but as soon as OSRF has bandwidth to review them again we can get them merged.
ros2/system_tests#347
ros2/demos#320

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.