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

Implement ros2 bag play #14

Closed
Karsten1987 opened this issue Jul 30, 2018 · 0 comments
Closed

Implement ros2 bag play #14

Karsten1987 opened this issue Jul 30, 2018 · 0 comments
Labels
enhancement New feature or request

Comments

@Karsten1987
Copy link
Collaborator

Options are:

  • ros2 bag play <bag_file> --> play the complete bag file
  • ros2 bag play <bag_file> -t topic1 [... topicN] --> play only specific topics from bag file
@sloretz sloretz added the enhancement New feature or request label Aug 1, 2018
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 5, 2018
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 6, 2018
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 6, 2018
- Improve toplevel CMakeLists
- Put all patches into a resource subfolder
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 6, 2018
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 6, 2018
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 6, 2018
- Improve toplevel CMakeLists
- Put all patches into a resource subfolder
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 6, 2018
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 11, 2018
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 11, 2018
- Improve toplevel CMakeLists
- Put all patches into a resource subfolder
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 11, 2018
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 11, 2018
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 13, 2018
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 13, 2018
- Improve toplevel CMakeLists
- Put all patches into a resource subfolder
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 13, 2018
Martin-Idel-SI added a commit to bosch-io/rosbag2 that referenced this issue Dec 13, 2018
Karsten1987 pushed a commit to bosch-io/rosbag2 that referenced this issue Dec 14, 2018
Karsten1987 pushed a commit to bosch-io/rosbag2 that referenced this issue Dec 14, 2018
- Improve toplevel CMakeLists
- Put all patches into a resource subfolder
Karsten1987 pushed a commit to bosch-io/rosbag2 that referenced this issue Dec 14, 2018
Karsten1987 pushed a commit to bosch-io/rosbag2 that referenced this issue Dec 14, 2018
Karsten1987 pushed a commit that referenced this issue Dec 15, 2018
* GH-138 Move calculation of bag size

- previously in rosbag2::Info
- now in storage plugin

* GH-130 Add rosbag2_bag_v2_plugins package

-This package will contain storage and converter plugins

* GH-131 don't build plugins on Windows

* GH-129 Add function to be generated

- massive if/else between all message types
- will be generated similar to ros1_bridge plugin

* GH-138 Write storage plugin for rosbag v2 bags

* GH-138 Make sure that no attempt to create a converter is made when trying to read a rsbag v2 bag file

* GH-138 Add play end-to-end test for rosbag v2 plugin

* GH-138 Use cmake files to find ros1 packages

- Use files from ros1_bridge via PkgConfig

* GH-138 Add generator code

* GH-141 Add initial version of vendor package

* GH-141 Improve vendor package to build on Mac

* GH-138 Cleanup CMakeLists

* GH-141 Use unmanaged Instance of class-loader

- managed instance somehow isn't available for gcc 6.3

* GH-141 Reduce patch and copy new toplevle CMakeLists by hand

* GH-141 Fix Shared Instance usage

* GH-141 Improve maintainability of vendor package

- Document what patches do and why changes are necessary
- Load ros1 packages through cmake macro
- Do not export ros1 packages via ament
- use commit hash of current master which is more stable than using melodic-devel

* GH-138 Link against rclcpp - necessary for ros1_bridge

* GH-138 Avoid crash when trying to play v2 bags which contain unknown message types

* GH-138 Add CLI -s <storage_id> option to ros2 bag info and use it in rosbag2::info

- this allows ros2 bag info to work also when the yaml metadata file does not exsist
- this is always the case for rosbag1 bagfiles
- it could also happen for sqlite or other storage based bagfiles

* GH-138 Add end-to-end info test for rosbag v2 files

* GH-138 Add unit tests to rosbag_storage

* GH-138 Add method to extract filename from path to FilesystemHelpers

* GH-138 Add proper logging for topics which cannot be converted

* GH-138 Improve finding dependencies of ros1

* GH-141 Explicitly import transitive dependencies of vendor package

* GH-138 Skip tests via ament if ros1 is not available

* GH-133 First split of plugins

* GH-133 Write serialized rosbag message

* GH-133 Improve converter plugin

- move generation templates outside of plugin folders as both
  plugins need it
- use ros::serialization routines to deserialize the ros message

* GH-133 Add plugin to be found by pluginlib

* GH-133 Remove empty check in converter

- With the rosbag_v2_converter_plugin, we don't need to treat
  rosbag_v2 storage any different

* GH-133 Assert serialization format in unit tests for storage

* GH-133 Delete superfluous include folder

- Only needed if we want to link against the library

* GH-133 get_all_topics_and_types returns only valid ros2 types

- This is necessary as the information is used by rosbag2_transport
- ros2 bag info still shows all topics and types
- rosbag::View::getConnections() can return multiple connections corresponding to the same topic

* GH-133 Improve end to end test

- use a bagfile with messages not known to ros2

* GH-133 Reformulate info message in case of missing ros1-ros2 mapping for a topic

* GH-14 Find messages first

* Explicitly print message when on Windows

Co-Authored-By: Martin-Idel-SI <external.Martin.Idel@bosch-si.com>

* GH-14 Refactor rosbag_storage vendor package

- Improve toplevel CMakeLists
- Put all patches into a resource subfolder

* GH-14 Reflect renames of converter interfaces

* GH-156 Workaround for path problems

* GH-156 Add documentation for plugin

* GH-156 Fix the pluginlib version to greater 2

* GH-156 Prohibit CMake from declaring paths as system paths

This switches the order of ros2 and ros1 directories
resulting in build failures

* GH-156 Prohibit system include paths for rosbag plugins

This can lead to switching ros1 and ros2 include paths resulting
in missing symbols as the wrong pluginlib gets included

* GH-14 Split patches

* make README more verbose

* add plugin specific readme

* more readme for bag_v2 plugin
agalbachicar added a commit to agalbachicar/rosbag2 that referenced this issue Mar 17, 2022
…/960/files (ros2#14)

* Add play-for functionality

Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

* Add play-for to the CLI

Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

* Adds playback_duration to PlayOptions.

* Changes from PlayFor to Play srv message and changes start_offset and playback_duration.

* Restores play_for tests.

* Removes extra SubscriptionManager methods.

* Solves comment about extra sent message.

* Reorders code and comment.

* Removes the SKIP_TEST flag.

Co-authored-by: Geoffrey Biggs <gbiggs@killbots.net>
agalbachicar added a commit to agalbachicar/rosbag2 that referenced this issue Apr 25, 2022
…/960/files (ros2#14)

* Add play-for functionality

Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

* Add play-for to the CLI

Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

* Adds playback_duration to PlayOptions.

* Changes from PlayFor to Play srv message and changes start_offset and playback_duration.

* Restores play_for tests.

* Removes extra SubscriptionManager methods.

* Solves comment about extra sent message.

* Reorders code and comment.

* Removes the SKIP_TEST flag.

Co-authored-by: Geoffrey Biggs <gbiggs@killbots.net>
Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>
MichaelOrlov added a commit that referenced this issue Jun 2, 2022
* Add play-for functionality

Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

* Add play-for to the CLI

Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

* Solves most of the comments from https://github.com/ros2/rosbag2/pull/960/files (#14)

* Add play-for functionality

Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

* Add play-for to the CLI

Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

* Adds playback_duration to PlayOptions.

* Changes from PlayFor to Play srv message and changes start_offset and playback_duration.

* Restores play_for tests.

* Removes extra SubscriptionManager methods.

* Solves comment about extra sent message.

* Reorders code and comment.

* Removes the SKIP_TEST flag.

Co-authored-by: Geoffrey Biggs <gbiggs@killbots.net>
Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

* Second round of comments from #960 upstream (#15)

* Removes duration parameter. A leftover after switching to playback_duration.

* Fixes comment.

* Solves format in rosbag2_py -> _transport.cpp

* Applies style suggestions.

* Changes play() to return a boolean indicating whether the request could be fulfilled.

* Removes extra unnecessary code.

Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

* Updates test execution time for #960 (#16)

* Adresses reviewer's comments.

* Improve test time by adding an optional argument to SubscriptionManager::spin_subscriptions()

- Reduces test_play_for execution time from 50s to 6s approximately.

Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

* Redesign tests in test_play_for.cpp (#17)

* Redesigned tests to be more deterministic and running faster
* Fixed bug in `play_for()` flow when replaying in loop or multiple
times from the same player instance.

Signed-off-by: Michael Orlov <michael.orlov@apex.ai>
Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

* Remove unnecessary source file from test binary

Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

* Correct errors introduced by rebase

Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

* Correct play_next behaviour

Signed-off-by: Geoffrey Biggs <gbiggs@killbots.net>

Co-authored-by: Agustin Alba Chicar <ag.albachicar@ekumenlabs.com>
Co-authored-by: Michael Orlov <morlovmr@gmail.com>
james-rms pushed a commit to james-rms/rosbag2 that referenced this issue Nov 17, 2022
… recorded files (ros2#14)

I may be missing something, but from a cursory glance at [this code](https://github.com/ros2/rosbag2/blob/342d8ed3c1c4ae0411a4a92b60e79a728b8974b8/rosbag2_storage/src/rosbag2_storage/impl/storage_factory_impl.hpp#L108-L135), it appears that the `APPEND` mode is never used. This means we need to support `READ_WRITE`.

This also adds a `.mcap` extension to recorded file names.

Signed-off-by: Jacob Bandes-Storch <jacob@foxglove.dev>
james-rms pushed a commit to james-rms/rosbag2 that referenced this issue Nov 17, 2022
… recorded files (ros2#14)

I may be missing something, but from a cursory glance at [this code](https://github.com/ros2/rosbag2/blob/342d8ed3c1c4ae0411a4a92b60e79a728b8974b8/rosbag2_storage/src/rosbag2_storage/impl/storage_factory_impl.hpp#L108-L135), it appears that the `APPEND` mode is never used. This means we need to support `READ_WRITE`.

This also adds a `.mcap` extension to recorded file names.

Signed-off-by: Jacob Bandes-Storch <jacob@foxglove.dev>
Signed-off-by: James Smith <james@foxglove.dev>
emersonknapp added a commit that referenced this issue May 14, 2024
#12) (#14)

* Allow passing storage config as commandline contents (#12)

Signed-off-by: Emerson Knapp <emerson.b.knapp@gmail.com>
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