Skip to content

Implement rosbag2 action play#1955

Merged
fujitatomoya merged 8 commits intoros2:rollingfrom
Barry-Xu-2018:review/topic-support-action-play
Apr 10, 2025
Merged

Implement rosbag2 action play#1955
fujitatomoya merged 8 commits intoros2:rollingfrom
Barry-Xu-2018:review/topic-support-action-play

Conversation

@Barry-Xu-2018
Copy link
Contributor

Signed-off-by: Barry Xu <barry.xu@sony.com>
@Barry-Xu-2018
Copy link
Contributor Author

@MichaelOrlov @fujitatomoya

Please review this PR.

Signed-off-by: Barry Xu <barry.xu@sony.com>
Copy link
Contributor

@fujitatomoya fujitatomoya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Barry-Xu-2018 1st review, can you check my comments?

in the meantime, i will start CI to see if other warnings during review.

@fujitatomoya
Copy link
Contributor

Pulls: #1955
Gist: https://gist.githubusercontent.com/fujitatomoya/b5abc904756413ea7d3f28e439e0f919/raw/f55ebf7922ad03a51da906c027c3cb5b0d28c84b/ros2.repos
BUILD args: --packages-above-and-dependencies ros2bag rosbag2_cpp rosbag2_py rosbag2_storage rosbag2_storage_mcap rosbag2_storage_sqlite3 rosbag2_test_common rosbag2_transport
TEST args: --packages-above ros2bag rosbag2_cpp rosbag2_py rosbag2_storage rosbag2_storage_mcap rosbag2_storage_sqlite3 rosbag2_test_common rosbag2_transport
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/15575

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@MichaelOrlov
Copy link
Contributor

Hi @Barry-Xu-2018, @fujitatomoya,
I am currently on vacation and can't review this PR.
I will be back Sunday.

@fujitatomoya
Copy link
Contributor

@MichaelOrlov thanks for replying to this on your vacation 🍹 i think we can iterate before your review, and we will have 10 days until API freeze 🧊 i believe we can get this in next week 🙏🙏🙏 anyway, let's discuss when you get back! thanks and enjoy ✌️

@fujitatomoya
Copy link
Contributor

@Barry-Xu-2018 CI looks fine, please address my comments above, and i can start CI again after that.

Signed-off-by: Barry Xu <barry.xu@sony.com>
Signed-off-by: Barry Xu <barry.xu@sony.com>
Signed-off-by: Barry Xu <barry.xu@sony.com>
Signed-off-by: Barry Xu <barry.xu@sony.com>
@Barry-Xu-2018
Copy link
Contributor Author

@MichaelOrlov @fujitatomoya

In the current implementation, the goal ID is derived from recorded data. I'm considering whether it should be replaced with a new created goal ID. I would like to hear your thoughts.

If the action server is continuously running and the user repeatedly uses ros2 bag play to replay action requests, there will be an issue because the goal ID sent each time is the same.

@fujitatomoya
Copy link
Contributor

@Barry-Xu-2018

i think that,

  • as bag information, we need to store the original goal ID for sure. so that user can match the goal ID with debug messages or something like that.
  • but when it is doing playback, i think goal ID needs to be replaced with new global unique identification, otherwise, you cannot play the action date to the action server concurrently.

@fujitatomoya
Copy link
Contributor

Pulls: #1955
Gist: https://gist.githubusercontent.com/fujitatomoya/7fe3dc7bcfa57ed1effaab8db0c1c8fa/raw/f55ebf7922ad03a51da906c027c3cb5b0d28c84b/ros2.repos
BUILD args: --packages-above-and-dependencies ros2bag rosbag2_cpp rosbag2_py rosbag2_storage rosbag2_storage_mcap rosbag2_storage_sqlite3 rosbag2_test_common rosbag2_transport
TEST args: --packages-above ros2bag rosbag2_cpp rosbag2_py rosbag2_storage rosbag2_storage_mcap rosbag2_storage_sqlite3 rosbag2_test_common rosbag2_transport
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/15621

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@Barry-Xu-2018
Copy link
Contributor Author

@fujitatomoya

i think that,

  • as bag information, we need to store the original goal ID for sure. so that user can match the goal ID with debug messages or something like that.
  • but when it is doing playback, i think goal ID needs to be replaced with new global unique identification, otherwise, you cannot play the action date to the action server concurrently.

Thanks. I also think so.
I will update code.

@fujitatomoya
Copy link
Contributor

Pulls: #1955
Gist: https://gist.githubusercontent.com/fujitatomoya/9ecdcc6e32fe9e0732c3227bea6d1b02/raw/f55ebf7922ad03a51da906c027c3cb5b0d28c84b/ros2.repos
BUILD args: --packages-above-and-dependencies ros2bag rosbag2_cpp rosbag2_py rosbag2_storage rosbag2_storage_mcap rosbag2_storage_sqlite3 rosbag2_test_common rosbag2_transport
TEST args: --packages-above ros2bag rosbag2_cpp rosbag2_py rosbag2_storage rosbag2_storage_mcap rosbag2_storage_sqlite3 rosbag2_test_common rosbag2_transport
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/15633

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

Copy link
Contributor

@MichaelOrlov MichaelOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Barry-Xu-2018 Here are my findings so far.
However, I haven't thoroughly reviewed play_action_clients yet.
Thanks for the PR - the code quality became way better this time.

@Barry-Xu-2018
Copy link
Contributor Author

@MichaelOrlov

Thank you for your review. I will address your review comments.

Signed-off-by: Barry Xu <barry.xu@sony.com>
Copy link
Contributor

@MichaelOrlov MichaelOrlov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Barry-Xu-2018 Thank you for addressing the review comments looks good to me now. 👍

@fujitatomoya
Copy link
Contributor

@MichaelOrlov @Barry-Xu-2018 thanks 👍 i will start the CI now.

@fujitatomoya
Copy link
Contributor

Pulls: #1955
Gist: https://gist.githubusercontent.com/fujitatomoya/e18e606861b500e8ad5890a100e3d71b/raw/f55ebf7922ad03a51da906c027c3cb5b0d28c84b/ros2.repos
BUILD args: --packages-above-and-dependencies ros2bag rosbag2_cpp rosbag2_py rosbag2_storage rosbag2_storage_mcap rosbag2_storage_sqlite3 rosbag2_test_common rosbag2_transport
TEST args: --packages-above ros2bag rosbag2_cpp rosbag2_py rosbag2_storage rosbag2_storage_mcap rosbag2_storage_sqlite3 rosbag2_test_common rosbag2_transport
ROS Distro: rolling
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/15658

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@fujitatomoya fujitatomoya merged commit a08500c into ros2:rolling Apr 10, 2025
12 checks passed
@fujitatomoya
Copy link
Contributor

@MichaelOrlov @Barry-Xu-2018 CI is green and this is merged, thank you so much for your effort. (i will be working on the documentation for next week.)

@Barry-Xu-2018
Copy link
Contributor Author

@fujitatomoya

I think Michael's review is not finished yet. There should be additional comments.

@MichaelOrlov Please continue to put your comments here. I will handle them as a new PR.

@fujitatomoya
Copy link
Contributor

@Barry-Xu-2018 @MichaelOrlov oh sorry, i thought this is ready since approved. anyway, if we need to follow up more comments, please open an another PR for that. thanks for letting me know.

@MichaelOrlov
Copy link
Contributor

@Barry-Xu-2018 @fujitatomoya Sorry for the confusion.
I got approval and think we should merge this PR sooner rather than later because

  1. I've reviewed the essential implementation part and after addressing the review comments it looks good to me
  2. I don't have the capacity to review it more this week, and we need to merge this PR before the feature freeze on Monday.
  3. If I or we find something in the play_action_clients - we can fix it as a bugfix after the feature freeze.

@fujitatomoya
Copy link
Contributor

@MichaelOrlov appreciate your consideration, and totally understood.

we will address the follow-ups for sure, we are not going anywhere 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants