Action Client on Dashing Missing First Feedback

asked 2019-10-05 23:55:51 -0500

Tim Craig gravatar image

updated 2019-10-08 01:53:47 -0500

In my exploration of ROS2, I've been building my own versions of the examples in C++, custom message, custom service, and finally custom action. All was well until I got to custom action. I based my version on the standard Fibonacci example using member functions. All was going well until I gave a detailed look at the output. The first feedback response was consistently missing. I went back and ran the original example and the first feedback is missing there as well. I modifed the example trivially to print the current value in the server feedback function, changed the starting sequence from [0, 1] to [1, 2] so there are no repeated values to muddy the water, and in the client changed the goal from 10 to 6 so there's not as much output to sort through.

The output from the server below is as expected.

[INFO] [minimal_action_server]: Received goal request with order 6
[INFO] [minimal_action_server]: Executing goal
[INFO] [minimal_action_server]: Publish Feedback 3
[INFO] [minimal_action_server]: Publish Feedback 5
[INFO] [minimal_action_server]: Publish Feedback 8
[INFO] [minimal_action_server]: Publish Feedback 13
[INFO] [minimal_action_server]: Publish Feedback 21

However, the output from the client shows the first feedback notification is missing where the value is 3.

[INFO] [minimal_action_client]: Sending goal
[INFO] [minimal_action_client]: Goal accepted by server, waiting for result
[INFO] [minimal_action_client]: Next number in sequence received: 5
[INFO] [minimal_action_client]: Next number in sequence received: 8
[INFO] [minimal_action_client]: Next number in sequence received: 13
[INFO] [minimal_action_client]: Next number in sequence received: 21
[INFO] [minimal_action_client]: Result received
[INFO] [minimal_action_client]: 1
[INFO] [minimal_action_client]: 2
[INFO] [minimal_action_client]: 3
[INFO] [minimal_action_client]: 5
[INFO] [minimal_action_client]: 8
[INFO] [minimal_action_client]: 13
[INFO] [minimal_action_client]: 21

I assume this is not expected behavior? I also checked the non compostable C++ client/sever pair and the results were the same. The example server didn't originally print the current step so this discrepancy is easy to overlook.

ROS2 Dashing undated yesterday. Ubuntu 18.04 MATE in a Windows 10 Virtual Box.

edit retag flag offensive close merge delete

Comments

I'm not able to reproduce with Dashing on Ubuntu 18.04. I've even tried varying the RMW implementation (Fast-RTPS, Connext, and OpenSplice), but the examples work fine for me (no dropped feedback messages).

How did you install ROS (e.g. from source, debs, etc)? And which RMW implementation are you using?

Maybe ensure that your installation is up-to-date and try again.

jacobperron gravatar image jacobperron  ( 2019-10-08 13:39:11 -0500 )edit

I installed the binary packages following the published directions with whatever it defaults to, nothing fancy. I did an update right before I generated the results above and I update fairly regularly. I will try updating again and see what happens.

Tim Craig gravatar image Tim Craig  ( 2019-10-08 14:34:41 -0500 )edit