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

Consider employing ros2 bag #61

Open
KaoruNishikawa opened this issue Oct 7, 2022 · 2 comments
Open

Consider employing ros2 bag #61

KaoruNishikawa opened this issue Oct 7, 2022 · 2 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@KaoruNishikawa
Copy link
Contributor

KaoruNishikawa commented Oct 7, 2022

Motivation

  • Actively maintained in ROS official organization; https://github.com/ros2/rosbag2
  • ROS communication will fully be recorded
  • Output is quite popular and well-established SQLite format
  • Easy copying/slicing of database is realized
  • No new development of data recorder is required, except for parameter file saving

Concerns

  • Reliability of recorder ros2 bag (database itself must be reliable, as its popularity proves)
  • Knowledge on SQL syntax is required to develop the decoder
  • SQLite supports minimal data types, e.g. both float and double will consume 8-byte
    • This can cause spectral data record size to be doubled

Notes

  • Cannot put arbitrary parameter file inside the database
    • Will be resolved by developing custom database of following structure
      database/
       ┣━ parameter.file
       ┣━ ...
       ┗━ rosbag2_*.db3
      
  • Easy adoption
    • Pre-installed in Docker image ros:*-ros-base
    • To use with docker-launch, add ros2 bag record -a to launch file
@KaoruNishikawa KaoruNishikawa added the enhancement New feature or request label Oct 7, 2022
@KaoruNishikawa KaoruNishikawa added this to the Future milestone Oct 7, 2022
@r-yamada1998
Copy link
Collaborator

Looks interesting.
One issue to be concerned about is writing speed and additional network load.
Is writing speed enough for high-frequency publishers such as PID computation?
Does additional network load exist? If so, does it cause any problems?

@KaoruNishikawa
Copy link
Contributor Author

@r-yamada1998
rosbag2 should undergo detailed inspection on recording rate before we employ it, possibly using tools like below.
https://index.ros.org/p/rosbag2_performance_benchmarking/
I am somewhat optimistic on this aspect, since ROS 2 design article says >100k small messages nicely recorded within 1s, and SQLite can record 3M data in 1s.
https://github.com/ros2/design/blob/ros2bags/articles/rosbags.md#sqlite
https://sqlite.org/forum/info/f832398c19d30a4a

On network load, there would be no difference from current recorder with NECSTDB, since both recorders use same approach on capturing messages, i.e. subscribing all the topics.

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