CHANGELOG

Changelog for package rosbag2

0.26.1 (2024-04-17)

0.26.0 (2024-04-16)

  • Support service 2/2 — rosbag2 service play (#1481)

  • Use middleware send and receive timestamps from message_info during recording (#1531)

  • Update to use yaml-cpp version 0.8.0. (#1605)

  • Contributors: Barry Xu, Chris Lalancette, jmachowinski, Michael Orlov

0.25.0 (2024-03-27)

  • Use std::filesystem instead of rcpputils::fs (#1576)

  • Make some changes for newer versions of uncrustify. (#1578)

  • Add topic_id returned by storage to the TopicMetadata (#1538)

  • call cv.wait_until only if necessary. (#1521)

  • Implement service recording and display info about recorded services (#1480)

  • Switch to target_link_libraries everywhere. (#1504)

  • Use enum values for offered_qos_profiles in code and string names in serialized metadata (#1476)

  • ros2 bag convert now excludes messages not in [start_time;end_time] (#1455)

  • Replace TSAUniqueLock implementation with rcpputils::unique_lock (#1454)

  • Add BagSplitInfo service call on bag close (#1422)

  • Contributors: Barry Xu, Chris Lalancette, Emerson Knapp, Michael Orlov, Patrick Roncagliolo, Peter Favrholdt, Roman Sokolkov, Tomoya Fujita

0.24.0 (2023-07-11)

  • Rewrite TimeControllerClockTest.unpaused_sleep_returns_true to be correct (#1384)

  • Implement storing and loading ROS_DISTRO from metadata.yaml and mcap files (#1241)

  • Don’t crash when type definition cannot be found (#1350)

  • Add recorder stop() API (#1300)

  • Contributors: Emerson Knapp, Michael Orlov

0.23.0 (2023-04-28)

0.22.0 (2023-04-18)

  • Add type_hash in MessageDefinition struct (#1296)

  • Add message definition read API (#1292)

  • rosbag2_storage: add type description hash to topic metadata (#1272)

  • Fix for flaky TimeControllerClockTest::unpaused_sleep_returns_true test (#1290)

  • Contributors: Michael Orlov, james-rms

0.21.0 (2023-04-12)

  • rosbag2_cpp: move local message definition source out of MCAP plugin (#1265)

  • Update rosbag2 to C++17. (#1238)

  • Use target_link_libraries instead of ament_target_dependencies (#1202)

  • Fix rwm->rmw spelling (#1249)

  • Contributors: Chris Lalancette, Daisuke Nishimatsu, Emerson Knapp, Michael Orlov, james-rms

0.20.0 (2023-02-14)

0.19.0 (2023-01-13)

  • Expose more Writer methods in python interface (#1220)

  • rosbag2_storage: set MCAP as default plugin (#1160)

  • Parametrize all rosbag2_tests for both supported storage plugins (#1221)

  • rosbag2_cpp: test more than one storage plugin (#1196)

  • Replace language for “db3”/”db”/”database” (#1194)

  • set_read_order: return success (#1177)

  • Remove explicit sqlite3 from code (#1166)

  • Add update_metadata(BagMetadata) API for storage plugin interface (#1149)

  • Reader and writer can use default storage by not specifying (#1167)

  • Contributors: Emerson Knapp, Michael Orlov, james-rms

0.18.0 (2022-11-15)

  • rosbag2_storage: expose default storage ID as method (#1146)

  • Don’t reopen file for every seek if we don’t have to. Search directionally for the correct file (#1117)

  • Add SplitBagfile recording service. (#1115)

  • Reverse read order API and sqlite storage implementation (#1083)

  • Replace std::filesystem::path(..) with rcpputils::fs::path(..) (#1104)

  • Fix issue where sequentialwriter only sets metadata duration to the duration of the final file (#1098)

  • Delete obsolete compression_options.cpp from rosbag2_cpp (#1078)

  • Readers/info can accept a single bag storage file, and detect its storage id automatically (#1072)

  • Remove deprecated rosbag2_cpp/storage_options.hpp, for post-Humble releases (#1064)

  • Contributors: Emerson Knapp, Michael Orlov, james-rms, rshanor

0.17.0 (2022-07-30)

  • Speed optimization: Preparing copyless publish/subscribing by using const message for writing (#1010)

  • Add the ability to record any key/value pair in ‘custom’ field in metadata.yaml (#1038)

  • Notification of significant events during bag recording and playback (#908)

  • Bugfix for “Playing the bags recorded with split by duration/size is playing only the last recorded .db3.” (#1022)

  • Improve test_time_controller test (#1012)

  • Contributors: DensoADAS, Geoffrey Biggs, Hunter L. Allen, Jorge Perez, Kaju-Bubanja, Michael Orlov, Joshua Hampp, Tony Peng

0.16.0 (2022-05-11)

0.15.1 (2022-04-06)

  • Revert “Add the ability to record any key/value pair in the ‘custom’ field in metadata.yaml (#976)” (#984)

  • Add the ability to record any key/value pair in the ‘custom’ field in metadata.yaml (#976)

  • Contributors: Audrow Nash, Jorge Perez, Tony Peng

0.15.0 (2022-04-05)

  • Revert “Add the ability to record any key/value pair in the ‘custom’ field in metadata.yaml (#976)” (#984)

  • Add the ability to record any key/value pair in the ‘custom’ field in metadata.yaml (#976)

  • Contributors: Jorge Perez, Tony Peng

0.14.1 (2022-03-29)

  • Bump version number to avoid conflict

  • Contributors: Chris Lalancette

0.14.0 (2022-03-29)

  • Install headers to include/${PROJECT_NAME} (#958)

  • Remove unnecessary public definition. (#950)

  • Contributors: Chris Lalancette, Shane Loretz

0.13.0 (2022-01-13)

  • Fix relative path syntax for cpplint (#947)

  • Mark up the message_cache with TSA annotations (#946)

  • Contributors: Chris Lalancette, Jacob Perron

0.12.0 (2021-12-17)

  • Changes for uncrustify 0.72 (#937)

  • Redesign in cache consumer and circular message cache to get rid from busy loop (#941)

  • Bugfix for broken bag split when using cache (#936)

  • Remove JumpHandler copy-implementation from PlayerClock/TimeControllerClock (#935)

  • Auto-detect storage_id for Reader (if possible) (#918)

  • Contributors: Chris Lalancette, Emerson Knapp, Michael Orlov

0.11.0 (2021-11-08)

  • Add –start-paused option to ros2 bag play (#904)

  • Use the message_introspection header to get MessageMember. (#903)

  • Update package maintainers (#899)

  • Fix converter plugin choices for record (#897)

  • Enable sanitizers only if code actually can run (#572)

  • Need to pass introspection TS to converter plugin for it to be useful (#896)

  • Don’t preprocess a storage file more than once (#895)

  • Contributors: Chris Lalancette, Emerson Knapp, Ivan Santiago Paunovic, Michel Hidalgo, Shane Loretz, sonia

0.10.1 (2021-10-22)

0.10.0 (2021-10-19)

  • Fix a bug on invalid pointer address when using “MESSAGE” compressio… (#866)

  • Metadata per file info (#870)

  • Fix TSA warnings when building with clang thread analysis. (#877)

  • Implement snapshot mechanism and corresponding ROS Service (#850)

  • Circular Message Cache implementation for snapshot feature (#844)

  • Fix discovery silently stops after unknown msg type is found. (#848)

  • added seek interface (#836)

  • Refactor plugin query mechanism and standardize trait management (#833)

  • fix sequential reader rollover-to-next-file strategy: (#839)

  • Load compression and serialization choices via plugin query (#827)

  • Workaround for false positive findings by clang thread safety analysis in time controller jump callbacks API. (#799)

  • Add callbacks for PlayerClock::jump(time_point) API with CI fix (#779)

  • Revert “Add callbacks for PlayerClock::jump(time_point) API (#775)” (#778)

  • Add callbacks for PlayerClock::jump(time_point) API (#775)

  • Contributors: Barry Xu, Cameron Miller, Chris Lalancette, Emerson Knapp, Lei Liu, Michael Orlov, Wojciech Jaworski, sonia

0.9.0 (2021-05-17)

  • Naive clock jump implementation - allows for clock reuse and simplified Player setup (#754)

  • Rename Reader/Writer ‘reset’ to ‘close’ (#760)

  • Expose pause/resume related services on the Player (#729)

  • player owns the reader (#725)

  • Contributors: Emerson Knapp, Karsten Knese

0.8.0 (2021-04-19)

  • Add set_rate to PlayerClock (#727)

  • Enforce non-null now_fn in TimeControllerClock (#731)

  • Fix pause snapshot behavior and add regression test (#730)

  • Pause/resume PlayerClock (#704)

  • Remove -Werror from builds, enable it in Action CI (#722)

  • Enable thread safety analysis for rosbag2_cpp and add annotations in TimeControllerClock (#710)

  • PlayerClock initial implementation - Player functionally unchanged (#689)

  • Explicitly add emersonknapp as maintainer (#692)

  • Reindexer core (#641) Add a new C++ Reindexer class for reconstructing metadata from bags that are missing it.

  • use rclcpp serialized messages to write data (#457)

  • Contributors: Emerson Knapp, Karsten Knese, jhdcs

0.7.0 (2021-03-18)

  • alternative write api (#676)

  • RMW-implementation-searcher converter in rosbag2_cpp (#670)

  • CLI query rosbag2_py for available storage implementations (#659)

  • Fix –topics flag for ros2 bag play being ignored for all bags after the first one. (#619)

  • Fix a crash in test_message_cache. (#635)

  • Contributors: Alexander, Chris Lalancette, Emerson Knapp, Karsten Knese

0.6.0 (2021-02-01)

  • Fix build issues when rosbag2_storage is binary installed (#585)

  • Deduplicate SequentialCompressionReader business logic, add fallback to find bagfiles in incorrectly-written metadata (#612)

  • include what you use (#600)

  • Only dereference the data pointer if it is valid. (#581)

  • Contributors: Chris Lalancette, Emerson Knapp, Ivan Santiago Paunovic, P. J. Reed

0.5.0 (2020-12-02)

  • Add back rosbag2_cpp::StorageOptions as deprecated (#563)

  • Sqlite storage double buffering (#546)

  • Contributors: Adam Dąbrowski, Jacob Perron

0.4.0 (2020-11-19)

  • correct master build (#552)

  • add storage_config_uri (#493)

  • Mutex around writer access in recorder (#491)

  • if cache data exists, it needs to flush the data into the storage before shutdown (#541)

  • Change default cache size for sequential_writer to a non zero value (#533)

  • SequentialWriter to cache by message size instead of message count (#530)

  • Update the package.xml files with the latest Open Robotics maintainers (#535)

  • Remove some code duplication between SequentialWriter and SequentialCompressionWriter (#527)

  • disable sanitizer by default (#517)

  • Fix typo in error message (#475)

  • introduce defaults for the C++ API (#452)

  • Adding db directory creation to rosbag2_cpp (#450)

  • comment out unused variable (#460)

  • minimal c++ API test (#451)

  • Add split by time to recording (#409)

  • Contributors: Dirk Thomas, Jacob Perron, Jaison Titus, Karsten Knese, Marwan Taher, Michael Jeronimo, Patrick Spieler, jhdcs, Tomoya Fujita

0.3.2 (2020-06-03)

  • Add user provided split size to error (#430) * Add user provided split size to error Signed-off-by: Anas Abou Allaban <aabouallaban@pm.me>

  • Make split size error clearer (#428) Signed-off-by: Anas Abou Allaban <aabouallaban@pm.me>

  • Contributors: Anas Abou Allaban

0.3.1 (2020-06-01)

0.3.0 (2020-05-26)

  • Fix playback of compressed bagfiles (#417)

  • Export targets (#403)

  • Contributors: Emerson Knapp, Karsten Knese

0.2.8 (2020-05-18)

0.2.7 (2020-05-12)

0.2.6 (2020-05-07)

  • Correct usage of rcpputils::SharedLibrary loading. (#400)

  • Contributors: Karsten Knese

0.2.5 (2020-04-30)

  • Don’t fail build if lsan isn’t available (#397)

  • Expose BaseReaderInterface’s BagMetadata (#377)

  • Expose topic filter to command line (addresses #342) (#363)

  • Deduplicate code in SequentialCompressionReader (#372)

  • rename rosidl_generator_c namespace to rosidl_runtime_c (#368)

  • rename rosidl_generator_cpp namespace to rosidl_runtime_cpp (#366)

  • added rosidl_runtime c and cpp depencencies (#310)

  • Replace poco dependency by rcutils (#322)

  • resolve relative file paths (#345)

  • Add filter for reading selective topics (#302)

  • default max bag size to 0 (#344)

  • Transaction based sqlite3 inserts (#225)

  • Add QoS to metadata (re-do #330) (#335)

  • Revert “Add QoS profiles field to metadata struct and provide serialization utilities (#330)” (#334)

  • Add QoS profiles field to metadata struct and provide serialization utilities (#330)

  • Replace rcutils_get_file_size with rcpputils::fs::file_size (#291)

  • code style only: wrap after open parenthesis if not in one line (#280)

  • Fix ros2 bag play on split bags (#268)

  • [compression] Add SequentialCompressionWriter (#260)

  • Add unit test for SequentialReader when metadata file does not exist (#254)

  • Move compression artifacts from rosbag2_cpp to rosbag2_compression (#257)

  • Fix uncrustify warnings (#256)

  • remove rosbag2 filesystem helper (#249)

  • [Compression - 8] Enable reader to read from compressed files/messages (#246)

  • Make rosbag2 a metapackage (#241)

  • Contributors: Alejandro Hernández Cordero, Anas Abou Allaban, Dirk Thomas, Emerson Knapp, Karsten Knese, Mabel Zhang, Scott K Logan, Sriram Raghunathan, Zachary Michaels

0.2.4 (2019-11-18)

  • Load metadata from storage if no yaml file is found. (#210)

  • Contributors: Karsten Knese

0.2.3 (2019-11-18)

  • Enhance rosbag reader capabilities to read split bag files. (#206)

  • Modular Reader/Writer API. (#205)

  • Enhance rosbag writer capabilities to split bag files. (#185)

  • Contributors: Karsten Knese, Zachary Michaels

0.2.2 (2019-11-13)

  • (API) Generate bagfile metadata in Writer (#184)

  • Contributors: Zachary Michaels

0.2.1 (2019-10-23)

  • Add get_identifier to base io-interfaces for support in bagfile splitting (#183)

  • Add bagfile splitting support to storage_options (#182)

  • Support for zero copy API (#168)

  • Change storage interfaces for bagfile splitting feature (#170)

  • Contributors: Karsten Knese, Zachary Michaels

0.2.0 (2019-09-26)

  • enable address sanitizers only on 64bit machines (#149)

  • Export pluginlib to downstream packages (#113)

  • Add support for parsing middle module name from type (#128)

  • Contributors: David Hodo, Esteve Fernandez, Karsten Knese

0.1.2 (2019-05-20)

  • Fixes an init race condition (#93) * This could probably be a race condition, for ex: When we’ve create a subscriber in the API, and the subscriber has the data already available in the callback (Cause of existing publishers) the db entry for the particular topic would not be availalble, which in turn returns an SqliteException. This is cause write_->create_topic() call is where we add the db entry for a particular topic. And, this leads to crashing before any recording. Locally I solved it by adding the db entry first, and if create_subscription fails, remove the topic entry from the db and also erase the subscription. Signed-off-by: Sriram Raghunathan <rsriram7@visteon.com> * Fix comments for pull request https://github.com/ros2/rosbag2/pull/93 Signed-off-by: Sriram Raghunathan <rsriram7@visteon.com> * Added unit test case for remove_topics from db Signed-off-by: Sriram Raghunathan <rsriram7@visteon.com> * Fix unit tests failing by adding dependent test macros Signed-off-by: Sriram Raghunathan <rsriram7@visteon.com> * Fixes the linter errors

  • Contributors: Sriram Raghunathan

0.1.1 (2019-05-09)

0.1.0 (2019-05-08)

  • Handle message type name with multiple namespace parts (#114)

  • fix compilation against master (#111)

  • fix logging signature (#107)

  • Compile tests (#103)

  • Contributors: Dirk Thomas, Jacob Perron, Karsten Knese

0.0.5 (2018-12-27)

0.0.4 (2018-12-19)

  • 0.0.3

  • Play old bagfiles (#69)

  • Contributors: Karsten Knese, Martin Idel

0.0.2 (2018-12-12)

  • update maintainer email

  • Contributors: Karsten Knese

0.0.1 (2018-12-11)

  • Split converters (#70)

  • GH-144 Add missing pop for warning pragma (#68)

  • Fix master build and small renamings (#67)

  • rename topic_with_types to topic_metadata

  • use converter options

  • GH-142 replace map with unordered map where possible (#65)

  • Use converters when recording a bag file (#57)

  • Renaming struct members for consistency (#64)

  • Use converters when playing back files (#56)

  • Implement converter plugin for CDR format and add converter plugins package (#48)

  • Display bag summary using ros2 bag info (#45)

  • Add entry point for converter plugins (#47)

  • Extract recorder from rosbag2_transport, fix test naming (#44)

  • Introduce rosbag2_transport layer and CLI (#38)

  • Add correct timing behaviour for rosbag play (#32)

  • Improve sqlite usage and test stability (#31)

  • Record and play multiple topics (#27)

  • Allow an arbitrary topic to be recorded (#26)

  • Use serialized message directly (#24)

  • initial version of plugin based storage api (#7)

  • add visibility macro (#22)

  • (demo, sqlite3) First working rosbag2 implementation (#6)

  • initial setup

  • Contributors: Alessandro Bottero, Andreas Greimel, Andreas Holzner, Karsten Knese, Martin Idel