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

[foxy backport] Latest rosbag2 #625

Closed
wants to merge 77 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
5d34d61
export shared_queues_vendor (#434)
Karsten1987 Jun 11, 2020
921b579
Add split by time to recording (#409)
jhdcs Jul 10, 2020
e2fce57
More reliable topic remapping test (#456)
Karsten1987 Jul 10, 2020
c67d8c3
minimal c++ API test (#451)
Karsten1987 Jul 10, 2020
1d39a5e
Add per-message ZSTD compression (#418)
pjreed Jul 13, 2020
fa3dc5a
comment out unused variable (#460)
Karsten1987 Jul 14, 2020
8c49924
use a single temp dir for the test class (#462)
dirk-thomas Jul 15, 2020
1e25d22
reenable cppcheck for rosbag2_transport (#461)
Karsten1987 Jul 17, 2020
b229399
Use foxy testing apt repos to install linters for Actions (#463)
emersonknapp Jul 20, 2020
33a3209
Reenable flake8 linter (#467)
emersonknapp Jul 20, 2020
15c41a7
Consolidate ZSTD utility functions (#459)
pjreed Jul 21, 2020
a33c7c1
Adding db directory creation to rosbag2_cpp (#450)
Marwan99 Jul 21, 2020
58c5697
move wait_for_shutdown() call out of the context manager (#466)
dirk-thomas Jul 23, 2020
cc36fc8
introduce ros2 bag list <plugins> (#468)
Karsten1987 Jul 23, 2020
72eb14d
introduce defaults for the C++ API (#452)
Karsten1987 Jul 23, 2020
fc4dd59
add wait for closed file handles on Windows (#470)
dirk-thomas Jul 23, 2020
71948dd
catch parent exception (#472)
dirk-thomas Jul 25, 2020
8894248
Fix typo in error message (#475)
jacobperron Jul 28, 2020
a1cd778
performance testing packages (#442)
adamdbrw Aug 5, 2020
f5eaf4e
Add pytest.ini back to ros2bag. (#492)
clalancette Aug 6, 2020
8290d7b
rosbag2_py reader and writer (#308)
mabelzhang Aug 13, 2020
1228813
AMENT_IGNORE rosbag2_py for now (#509)
mabelzhang Aug 15, 2020
0ef46b3
Add compression and batch size to the README (#510)
dabonnie Aug 17, 2020
e1689cb
Document QoS Policy overrides (#508)
Aug 18, 2020
380b708
disable sanitizer by default (#517)
dirk-thomas Aug 26, 2020
6dfa891
Mark flaky tests as xfail for now (#520)
emersonknapp Sep 14, 2020
cfa377a
Add CODEOWNERS file (#519)
emersonknapp Sep 21, 2020
a2c0976
[ros2bag test_record] Gets rid of time.sleep and move to using comman…
jaisontj Sep 22, 2020
4af4676
Remove some code duplication between SequentialWriter and SequentialC…
jaisontj Oct 2, 2020
312713d
Fix rosbag2_py bug when using libc++ (#529)
ivanpauno Oct 5, 2020
4548f23
Fix rosbag2_py on Windows debug and stop ignoring the package (#531)
ivanpauno Oct 5, 2020
be9c52e
Do not expect empty StorageOptions URI to work in *CompressionWriterT…
christophebedard Oct 5, 2020
a7514b3
Update the package.xml files with the latest Open Robotics maintainer…
Oct 7, 2020
b124188
SequentialWriter to cache by message size instead of message count (#…
jaisontj Oct 9, 2020
39c2f21
Change default cache size for sequential_writer to a non zero value (…
jaisontj Oct 9, 2020
211429a
Removed duplicated code in record (#534)
jaisontj Oct 10, 2020
f5664b1
Workaround pybind11 bug on Windows when CMAKE_BUILD_TYPE=RelWithDebI…
ivanpauno Oct 14, 2020
1413139
Add record test for ros2bag (#523)
jacobperron Oct 19, 2020
dee8ca1
if cache data exists, it needs to flush the data into the storage bef…
fujitatomoya Oct 20, 2020
63a1776
Update deprecated qos policy value names (#548)
ivanpauno Oct 28, 2020
bf93d7a
add storage_config_uri (#493)
Karsten1987 Oct 28, 2020
e22be96
correct master build (#552)
Karsten1987 Oct 28, 2020
f4db9a8
List all storage plugins in plugin xml file (#554)
Barry-Xu-2018 Nov 2, 2020
b233316
read yaml config file (#497)
Karsten1987 Nov 13, 2020
56df799
Prepare 0.4.0 (#566)
Nov 20, 2020
c1cbb67
Bump action-ros-ci to 0.1.0 (#564)
emersonknapp Nov 24, 2020
350ce0e
Sqlite storage double buffering (#546)
adamdbrw Nov 25, 2020
536b27e
Add back rosbag2_cpp::StorageOptions as deprecated (#563)
jacobperron Nov 30, 2020
a6cc439
Update codes since rcutils_calculate_directory_size() is changed (#567)
Barry-Xu-2018 Dec 2, 2020
3b567d5
Changelog.
clalancette Dec 2, 2020
11ee716
0.5.0
clalancette Dec 2, 2020
2710bdb
Stabilize test_record by reducing copies of executors and messages (#…
emersonknapp Dec 4, 2020
7314479
Compress bag files in separate threads (#506)
pjreed Dec 4, 2020
063632c
Only dereference the data pointer if it is valid. (#581)
clalancette Dec 7, 2020
25ce937
Re-enable Action CI for PRs (#465)
emersonknapp Dec 7, 2020
41afa0e
Fix a bug on parsing wrong description in plugin xml file (#578)
Barry-Xu-2018 Dec 8, 2020
4c2e74c
Updating performance writer (#570)
adamdbrw Dec 16, 2020
1549af4
Fixed playing if unknown message types exist (#592)
Dec 29, 2020
84472f3
Use std::filesystem compliant non-member `exists` function for path o…
jdlangs Jan 5, 2021
216e40f
SQLite storage optimized by default (#568)
adamdbrw Jan 8, 2021
b7da49e
include what you use (#600)
ivanpauno Jan 12, 2021
3927519
Add mjeronimo to codeowners to be auto-assigned in the review rotatio…
emersonknapp Jan 21, 2021
b26a9a0
Fix the tests on cyclonedds by translating qos duration values (#606)
emersonknapp Jan 21, 2021
1dfb13f
Mutex protection for db writing and stl collections in writer & stora…
adamdbrw Jan 22, 2021
87e68f0
Remove mjeronimo from CODEOWNERS in favor of having him on the review…
emersonknapp Jan 25, 2021
f9c54ab
Recorder --regex and --exclude options (#604)
adamdbrw Jan 25, 2021
f0dedb0
Deduplicate SequentialCompressionReader business logic, add fallback …
emersonknapp Jan 25, 2021
9d38957
Performance benchmarking refactor (#594)
adamdbrw Jan 26, 2021
067ad4b
Fix deadlock race condition on compression shutdown (#616)
emersonknapp Jan 27, 2021
320659a
Fix relative metadata paths in SequentialCompressionWriter (#613)
emersonknapp Jan 27, 2021
2f5cbb7
Regex and exclude fix for rosbag recorder (#620)
pijaro Jan 28, 2021
9baa79e
Fix build issues when rosbag2_storage is binary installed (#585)
pjreed Jan 29, 2021
ba35046
Use ZSTD's streaming interface for [de]compressing files (#543)
pjreed Jan 29, 2021
3ef615a
Make compressor implementations into a plugin via pluginlib (#624)
emersonknapp Jan 30, 2021
2ab6da4
Prepare bloom release 0.6.0 (#628)
emersonknapp Feb 1, 2021
6007920
Fix the CHANGELOGs
Feb 2, 2021
e5c7951
Minimal changes to build+test for Foxy
Feb 3, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Reviewers (and by extension approvers) will be the default owners for everything in the repo.
# Unless a later match takes precedence, @reviewers will be requested for review when someone opens a pull request.
* @ros2/tooling-reviewers
28 changes: 10 additions & 18 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
# Run linters automatically on pull requests.
#
# ros-tooling/actino-ros-lint is relying on the latest APT binary packages.
# As of 2020-05-01, Eloquent is the latest release for which APT binary
# packages are available, which is why the Docker image is based on Eloquent.
name: Lint rosbag2
on:
pull_request:
Expand All @@ -12,14 +8,13 @@ jobs:
name: ament_copyright
runs-on: ubuntu-latest
container:
image: rostooling/setup-ros-docker:ubuntu-bionic-ros-eloquent-ros-base-latest
image: rostooling/setup-ros-docker:ubuntu-focal-ros-foxy-ros-base-testing-latest
steps:
# TODO(setup-ros-docker#7): calling chown is necessary for now
- run: sudo chown -R rosbuild:rosbuild "$HOME" .
- uses: actions/checkout@v2
- uses: ros-tooling/[email protected]
with:
linter: copyright
distribution: foxy
package-name: |
ros2bag
rosbag2_compression
Expand All @@ -34,14 +29,13 @@ jobs:
name: ament_xmllint
runs-on: ubuntu-latest
container:
image: rostooling/setup-ros-docker:ubuntu-bionic-ros-eloquent-ros-base-latest
image: rostooling/setup-ros-docker:ubuntu-focal-ros-foxy-ros-base-testing-latest
steps:
# TODO(setup-ros-docker#7): calling chown is necessary for now
- run: sudo chown -R rosbuild:rosbuild "$HOME" .
- uses: actions/checkout@v2
- uses: ros-tooling/[email protected]
with:
linter: xmllint
distribution: foxy
package-name: |
ros2bag
rosbag2
Expand All @@ -57,19 +51,18 @@ jobs:
ament_lint_cpp: # Linters applicable to C++ packages
name: ament_${{ matrix.linter }}
runs-on: ubuntu-latest
container:
image: rostooling/setup-ros-docker:ubuntu-bionic-ros-eloquent-ros-base-latest
strategy:
fail-fast: false
matrix:
linter: [cppcheck, cpplint, uncrustify]
container:
image: rostooling/setup-ros-docker:ubuntu-focal-ros-foxy-ros-base-testing-latest
steps:
# TODO(setup-ros-docker#7): calling chown is necessary for now
- run: sudo chown -R rosbuild:rosbuild "$HOME" .
- uses: actions/checkout@v2
- uses: ros-tooling/[email protected]
with:
linter: ${{ matrix.linter }}
distribution: foxy
package-name: |
rosbag2_compression
rosbag2_converter_default_plugins
Expand All @@ -83,17 +76,16 @@ jobs:
name: ament_${{ matrix.linter }}
runs-on: ubuntu-latest
container:
image: rostooling/setup-ros-docker:ubuntu-bionic-ros-eloquent-ros-base-latest
image: rostooling/setup-ros-docker:ubuntu-focal-ros-foxy-ros-base-testing-latest
strategy:
fail-fast: false
matrix:
linter: [pep257] # TODO re-enable flake8 when it is fixed
linter: [pep257, flake8]
steps:
# TODO(setup-ros-docker#7): calling chown is necessary for now
- run: sudo chown -R rosbuild:rosbuild "$HOME" .
- uses: actions/checkout@v2
- uses: ros-tooling/[email protected]
with:
linter: ${{ matrix.linter }}
distribution: foxy
package-name: |
ros2bag
10 changes: 5 additions & 5 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Test rosbag2
on:
# pull_request:
pull_request:
push:
branches:
- master
Expand All @@ -13,11 +13,9 @@ jobs:
build_and_test:
runs-on: ubuntu-latest
container:
image: rostooling/setup-ros-docker:ubuntu-focal-ros-foxy-ros-base-testing-latest
image: rostooling/setup-ros-docker:ubuntu-focal-latest
steps:
# TODO(setup-ros-docker#7): calling chown is necessary for now
- run: sudo chown -R rosbuild:rosbuild "$HOME" .
- uses: ros-tooling/[email protected]
- uses: ros-tooling/[email protected]
with:
package-name: |
ros2bag
Expand All @@ -31,6 +29,8 @@ jobs:
sqlite3_vendor
rosbag2_test_common
rosbag2_tests
target-ros2-distro: foxy
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Allows action CI to run on the release branch correctly

vcs-repo-file-url: ""
- uses: actions/upload-artifact@v1
with:
name: colcon-logs
Expand Down
93 changes: 92 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Clone this repository into the source folder:
```
$ git clone https://github.com/ros2/rosbag2.git
```
**[Note]**: if you are only building rosbag2 on top of a Debian Installation of ROS2, please git clone the branch following your current ROS2 distribution.
**[Note]**: if you are only building rosbag2 on top of a Debian Installation of ROS2, please git clone the branch following your current ROS2 distribution.

Then build all the packages with this command:

Expand Down Expand Up @@ -93,6 +93,55 @@ In the same fashion, this auto discovery can be disabled with `--no-discovery`.
If not further specified, `ros2 bag record` will create a new folder named to the current time stamp and stores all data within this folder.
A user defined name can be given with `-o, --output`.

#### Splitting recorded bag files

rosbag2 offers the capability to split bag files when they reach a maximum size or after a specified duration. By default rosbag2 will record all data into a single bag file, but this can be changed using the CLI options.

_Splitting by size_: `ros2 bag record -a -b 100000` will split the bag files when they become greater than 100 kilobytes. Note: the batch size's units are in bytes and must be greater than `86016`. This option defaults to `0`, which means data is written to a single file.

_Splitting by time_: `ros2 bag record -a -d 9000` will split the bag files after a duration of `9000` seconds. This option defaults to `0`, which means data is written to a single file.

If both splitting by size and duration are enabled, the bag will split at whichever threshold is reached first.

#### Recording with compression

By default rosbag2 does not record with compression enabled. However, compression can be specified using the following CLI options.

For example, `ros2 bag record -a --compression-mode file --compression-format zstd` will record all topics and compress each file using the [zstd](https://github.com/facebook/zstd) compressor.

Currently, the only `compression-format` available is `zstd`. Both the mode and format options default to `none`. To use a compression format, a compression mode must be specified, where the currently supported modes are compress by `file` or compress by `message`.

It is recommended to use this feature with the splitting options.

#### Recording with a storage configuration

Storage configuration can be specified in a YAML file passed through the `--storage-config-file` option.
This can be used to optimize performance for specific use-cases.

For the default storage plugin (sqlite3), the file has a following syntax:
```
read:
pragmas: <list of pragma settings for read-only>
write:
pragmas: <list of pragma settings for read/write>
```

By default, SQLite settings are significantly optimized for performance.
This might have consequences of bag data being corrupted after an application or system-level crash.
This consideration only applies to current bagfile in case bag splitting is on (through `--max-bag-*` parameters).
If increased crash-caused corruption resistance is necessary, use `resilient` option for `--storage-preset-profile` setting.

Settings are fully exposed to the user and should be applied with understanding.
Please refer to [documentation of pragmas](https://www.sqlite.org/pragma.html).

An example configuration file could look like this:

```
write:
pragmas: ["journal_mode = MEMORY", "synchronous = OFF", "schema.cache_size = 1000", "schema.page_size = 4096"]

```

### Replaying data

After recording data, the next logical step is to replay this data:
Expand Down Expand Up @@ -125,6 +174,45 @@ Topic information: Topic: /chatter | Type: std_msgs/String | Count: 9 | Serializ
Topic: /my_chatter | Type: std_msgs/String | Count: 18 | Serialization Format: cdr
```

### Overriding QoS Profiles

When starting a recording or playback workflow, you can pass a YAML file that contains QoS profile settings for a specific topic.
The YAML schema for the profile overrides is a dictionary of topic names with key/value pairs for each QoS policy.
Below is an example profile set to the default ROS2 QoS settings.

```yaml
/topic_name:
history: keep_last
depth: 10
reliability: reliable
durability: volatile
deadline:
# unspecified/infinity
sec: 0
nsec: 0
lifespan:
# unspecified/infinity
sec: 0
nsec: 0
liveliness: system_default
liveliness_lease_duration:
# unspecified/infinity
sec: 0
nsec: 0
avoid_ros_namespace_conventions: false
```

You can then use the override by specifying the `--qos-profile-overrides-path` argument in the CLI:

```sh
# Record
ros2 bag record --qos-profile-overrides-path override.yaml -a -o my_bag
# Playback
ros2 bag play --qos-profile-overrides-path override.yaml my_bag
```

See [the official QoS override tutorial][qos-override-tutorial] and ["About QoS Settings"][about-qos-settings] for more detail.

### Using in launch

We can invoke the command line tool from a ROS launch script as an *executable* (not a *node* action).
Expand Down Expand Up @@ -189,3 +277,6 @@ When specified, rosbag2 looks for a suitable converter to transform the native m
This also allows to record data in a native format to optimize for speed, but to convert or transform the recorded data into a middleware agnostic serialization format.

By default, rosbag2 can convert from and to CDR as it's the default serialization format for ROS 2.

[qos-override-tutorial]: https://index.ros.org/doc/ros2/Tutorials/Ros2bag/Overriding-QoS-Policies-For-Recording-And-Playback/
[about-qos-settings]: https://index.ros.org/doc/ros2/Concepts/About-Quality-of-Service-Settings/
25 changes: 0 additions & 25 deletions docs/qos_profile_overrides.md

This file was deleted.

86 changes: 84 additions & 2 deletions ros2bag/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,90 @@
Changelog for package ros2bag
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0.3.7 (2021-02-15)
------------------
0.6.0 (2021-02-01)
------------------
* Recorder --regex and --exclude options (`#604 <https://github.com/ros2/rosbag2/issues/604>`_)
* Fix the tests on cyclonedds by translating qos duration values (`#606 <https://github.com/ros2/rosbag2/issues/606>`_)
* SQLite storage optimized by default (`#568 <https://github.com/ros2/rosbag2/issues/568>`_)
* Fix a bug on parsing wrong description in plugin xml file (`#578 <https://github.com/ros2/rosbag2/issues/578>`_)
* Compress bag files in separate threads (`#506 <https://github.com/ros2/rosbag2/issues/506>`_)
* Contributors: Adam Dąbrowski, Barry Xu, Emerson Knapp, P. J. Reed

0.5.0 (2020-12-02)
------------------
* Sqlite storage double buffering (`#546 <https://github.com/ros2/rosbag2/issues/546>`_)
* Double buffers
* Circular queue and FLUSH option as define
* Minor naming and lexical fixes.
* Removed FLUSH_BUFFERS define check.
* Sqlite3 storage logging fixes.
* Sqlite3 storage circular buffer with pre allocated memory.
* Sqlite3 storage buffers moved to shared_ptrs.
* Uncrustify
* Moved double buffers to writer
* Buffer layer reset in seq compression writer in rosbag2 cpp
* Buffer layer for rosbag2 writer refactor
* Changed buffers in BufferLayer to std vectors.
* BufferLayer uncrustify
* Removed non-applicable test for writer cache.
* BufferLayer review fixes
* Rosbag metadata msgs count fixed for BufferLayer
* Condition variable for buffer layer sync.
* Fixed buffer locks
* Buffers in BufferLayer refactored, moved into new class
* Buffer layer split bags fixed.
* Storage options include fix in buffer layer header.
* Mutex around swapping buffers in buffer layer.
* Fixed cache 0 bug in buffer layer.
* Minor buffer layer refactor.
* Counting messages in writer refactored.
* Changed default cache size to 100Mb and updated parameter description
* Applied review remarks:
- significant refactoring: separation of cache classes
- applied suggested improvements
- some renaming
- reduce code duplication that would otherwise increase with cache refactor, between compression and plain writers
* Applied review comments
- cache consumer now takes a callback and is independent of storage
- namespace changes, renaming, cleaning
- counting and logging messages by topic
* linter
* Changes after review: fixing flushing, topic counts, and more
* Fix for splitting - flushing state now correctly turns off
* cache classes documentation
* simplified signature
* a couple of tests for cache
* address review: explicit constructor and doxygen styling
* Windows warnings fix
* fixed type mismatch warning on Windows
* added minor comment
Co-authored-by: Piotr Jaroszek <[email protected]>
* Contributors: Adam Dąbrowski

0.4.0 (2020-11-19)
------------------
* read yaml config file (`#497 <https://github.com/ros2/rosbag2/issues/497>`_)
* List all storage plugins in plugin xml file (`#554 <https://github.com/ros2/rosbag2/issues/554>`_)
* add storage_config_uri (`#493 <https://github.com/ros2/rosbag2/issues/493>`_)
* Update deprecated qos policy value names (`#548 <https://github.com/ros2/rosbag2/issues/548>`_)
* Add record test for ros2bag (`#523 <https://github.com/ros2/rosbag2/issues/523>`_)
* Removed duplicated code in record (`#534 <https://github.com/ros2/rosbag2/issues/534>`_)
* Change default cache size for sequential_writer to a non zero value (`#533 <https://github.com/ros2/rosbag2/issues/533>`_)
* Update the package.xml files with the latest Open Robotics maintainers (`#535 <https://github.com/ros2/rosbag2/issues/535>`_)
* [ros2bag test_record] Gets rid of time.sleep and move to using command.wait_for_output (`#525 <https://github.com/ros2/rosbag2/issues/525>`_)
* Add pytest.ini back to ros2bag. (`#492 <https://github.com/ros2/rosbag2/issues/492>`_)
* performance testing packages (`#442 <https://github.com/ros2/rosbag2/issues/442>`_)
* Validate QoS profile values are not negative. (`#483 <https://github.com/ros2/rosbag2/issues/483>`_)
* catch parent exception (`#472 <https://github.com/ros2/rosbag2/issues/472>`_)
* add wait for closed file handles on Windows (`#470 <https://github.com/ros2/rosbag2/issues/470>`_)
* introduce ros2 bag list <plugins> (`#468 <https://github.com/ros2/rosbag2/issues/468>`_)
* move wait_for_shutdown() call out of the context manager (`#466 <https://github.com/ros2/rosbag2/issues/466>`_)
* Adding db directory creation to rosbag2_cpp (`#450 <https://github.com/ros2/rosbag2/issues/450>`_)
* use a single temp dir for the test class (`#462 <https://github.com/ros2/rosbag2/issues/462>`_)
* Add per-message ZSTD compression (`#418 <https://github.com/ros2/rosbag2/issues/418>`_)
* Add split by time to recording (`#409 <https://github.com/ros2/rosbag2/issues/409>`_)
* Add pytest.ini so local tests don't display warning (`#446 <https://github.com/ros2/rosbag2/issues/446>`_)
* Contributors: Adam Dąbrowski, Barry Xu, Chris Lalancette, Dirk Thomas, Ivan Santiago Paunovic, Jacob Perron, Jaison Titus, Jesse Ikawa, Karsten Knese, Marwan Taher, Michael Jeronimo, P. J. Reed, jhdcs

0.3.6 (2021-01-05)
------------------
Expand Down
2 changes: 1 addition & 1 deletion ros2bag/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<?xml-model href="http://download.ros.org/schema/package_format2.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="2">
<name>ros2bag</name>
<version>0.3.7</version>
<version>0.6.0</version>
<description>
Entry point for rosbag in ROS 2
</description>
Expand Down
Loading