Waitset timestamp fields#591
Waitset timestamp fields#591iluetkeb wants to merge 19 commits intoros2:masterfrom boschresearch:feature/waitset_timestamp
Conversation
|
@dirk-thomas @wjwwood are you generally okay with the field additions to the existing structs? if yes, I could proceed with further work that's actually using them. |
|
Hey @JaimeMartin @MiguelCompany this is the start of timestamp information in rmw/rcl. It is intended that these fields are filled by the middleware with the arrival timestamp of messages. I would like to start a discussion with you guys on how to best provide this information. |
|
Connects to ros2/design#259. |
wjwwood
left a comment
There was a problem hiding this comment.
I had a few style nitpicks, but otherwise lgtm.
We should consider any necessary updates to the tests and documentation as well.
Would it be enough to have a get_first_unread_sample_info on the subscribers that could be called from rmw_wait when necessary? |
That should work and would probably provide the most accurate information, however we are a bit concerned about performance. Reading the sample info seems like it would require deserialization. Also, since one of the other things we have identified is that we might potentially need to call rmw_wait more often, we should keep this as performant as possible. One other idea I had is that you could keep the listener attached to the objects across calls to wait, and then store the current time within the callback that gets notified upon changes. This would likely incur almost no overhead and still provide good-enough information. |
As said in ros2/rmw#200, I think we need to test everything in rcl, since it does the relevant work. However, in @wjwwood is that intentionally? I mean, I'd be happy to add a test for the contents, but I'm wondering what the current lack of such tests should tell me. |
I don't think it is intentional, but |
|
For the test I added, I'm fairly certain I just copied one of the existing tests and modified it minimally to exercise the API I added. |
|
Alright, @wjwwood @jacobperron thanks for the info. I'll add a test looking at all the fields, then. |
|
Alright folks, this now has a test for presence of timestamps, and in ros2/rmw_fastrtps#359 we have an implementation of timestamps for subscriptions, clients and services that passes the test. |
Both the standard wait_set and internal structures got the timestamps. Currently, the fields are not used. Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
…ebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com> Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
|
@iluetkeb ironically, I don't have access to the fork of boschresearch, so I can't push a fix on your branch. I think what's missing here is the following: |
Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
|
That include is not actually necessary, since I moved the relevant test to I also added you to the correct team for our forks. |
|
I'm sorry I'm coming to this late. It seems like a bad idea, and I think should be strongly reconsidered. ros2/design#259 (comment) |
|
@rotu I have commented in the design issue and I hope I could address your concerns. It is a bit late now, in my case literally because I'm in Europe, where it's currently half past eight 😉 So I will log off after this comment, and tomorrow being Good Friday, I won't work. If you have further concerns, I can only contribute further on Saturday or (preferably) after Easter. Hope that's enough! Happy Holidays to you all. |
|
Closed in favor of #619 |
Both the standard wait_set and internal structures got the timestamps.
Currently, the fields are not used.
Also see ros2/rmw#200