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

Expose reading selective topic to command line playback #342

Closed
mabelzhang opened this issue Mar 31, 2020 · 3 comments
Closed

Expose reading selective topic to command line playback #342

mabelzhang opened this issue Mar 31, 2020 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@mabelzhang
Copy link
Contributor

Description

Expose the functionality in #302, reading a selective set of topics, to the command line as options under ros2 bag play.

The specific command format is up to suggestion. I did not find such a playback flag in the ROS 1 bag tutorial, but there was such a format for recording:

rosbag record -O subset /turtle1/cmd_vel /turtle1/pose

where -O specifies the output file, and the remaining arguments are the topics to record.

Maybe playback can use -I for the input file? That flag is free right now.

Related Issues

Depends on #302

Completion Criteria

User is able to specify a subset of topics on the command line to play back.
If no topics are specified, all topics should be played back as normal.

Implementation Notes / Suggestions

Command line args should be added to ros2bag/ros2bag/verb/play.py.
Topic list should be added to rosbag2_transport/include/rosbag2_transport/play_options.hpp.
Functionality should be added to rosbag2_transport/src/rosbag2_transport/player.cpp.

Testing Notes / Suggestions

End-to-end tests should be added to rosbag2_tests/test/rosbag2_tests/test_rosbag2_play_end_to_end.cpp.
See rosbag2_storage_default_plugins/test/rosbag2_storage_default_plugins/sqlite/test_sqlite_storage.cpp for existing tests for the filtering functionality.

@mabelzhang mabelzhang added the enhancement New feature or request label Mar 31, 2020
mabelzhang added a commit that referenced this issue Apr 15, 2020
* add filter for selecting topics to read

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* add StorageFilter

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* add safety check for storage pointer; add reset_filter

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* add set_filter and reset_filter to Reader

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* fix mock sequential reader for rosbag2_transport test

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* add topic filter to transport play options

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* add selective topics to cmd line

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* fix cpplint

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* end to end read test

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* fix cmd line args

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* add play end to end test for filter topic

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* remove read test

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* remove read test in CMakeList

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* fix flake8

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* address PR comments

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* revert rosbag2_cpp Reader

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* unrevert rosbag2_cpp Reader

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* address PR comments

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* vector initialization

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* remove line break

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* fix merge errors

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* style

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>

* alpha order

Signed-off-by: Mabel Zhang <mabel@openrobotics.org>
@emersonknapp
Copy link
Collaborator

Probably need to do a test robustness pass before closing this ticket

@mabelzhang
Copy link
Contributor Author

Test stability followup #396, #408
Test disabled in #410
(The feature is tested in multiple packages - rosbag2_cpp, rosbag2_transport, rosbag2_tests. The one in rosbag2_tests is flaky.)

@emersonknapp
Copy link
Collaborator

This functionality has been implemented

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants