-
Notifications
You must be signed in to change notification settings - Fork 255
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
[WIP] Make Player a rosbag2
component (instead of rosbag2_transport
#1603
base: rolling
Are you sure you want to change the base?
Conversation
rosbag2
componentrosbag2
component (instead of rosbag2_transport
rosbag2
component (instead of rosbag2_transport
rosbag2
component (instead of rosbag2_transport
Signed-off-by: Patrick Roncagliolo <[email protected]>
14a3681
to
7a80a0e
Compare
@MichaelOrlov may I ask if you are still interested in this, and if the proposed method is ok for you, so I can apply the same strategy for Recorder?? |
- Cleanups in CMakeLists.txt - Expose only the necessary constructors in rosbag2::player - Add visibility control - Add missing dependencies in package.xml - Add component_player.hpp file Signed-off-by: Michael Orlov <[email protected]>
Signed-off-by: Michael Orlov <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @roncapat, Yes, I am still interested in this PR.
However, it is too long to describe what needs to be changed.
Instead, I did prototyping and made a couple of direct commits to your branch. Please see c00bf42 and 4f6414e
Please review the changes and feel free to add a composable_recorder.{hpp}cpp
file in a similar way.
I've tested loading a new composable rosbag2::Plyer in my local setup and can confirm that it is compiles and runs as expected. However, it would be good to add some unit tests.
To test it I ran in one terminal
ros2 run rclcpp_components component_container
in another terminal
ros2 component load /ComponentManager rosbag2 rosbag2::Player -p storage.uri:=/recordings/talker/talker.mcap -p play.loop:=true
After that, you can try to run ros2 component list
and ros2 topic echo /topic
to make sure that rosbag2::Player
composable node is up and running.
I took talker.mcap
from the https://github.com/ros2/rosbag2/blob/rolling/rosbag2_py/test/resources/mcap/talker/talker.mcap
@@ -72,9 +72,11 @@ target_link_libraries(${PROJECT_NAME} PRIVATE | |||
yaml-cpp::yaml-cpp | |||
) | |||
|
|||
# rosbag2_transport::Player composable node is deprecated. Please use rosbag2::Player instead |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@clalancette Do you have any idea how to deprecate early added "rosbag2_transport::Player"
registered rclcpp component node from further usage?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Signed-off-by: Michael Orlov <[email protected]>
@MichaelOrlov looks nice to me! As soon as I have a bit of time, I will do the same for Recorder class. |
Closes #1736
This is a proposal to address https://github.com/ros2/rosbag2/pull/1510/files#r1484600093.
CC @MichaelOrlov @fujitatomoya
NOTE: I compiled it and the component gets correclty exposed via
ros2 component types
but I haven't tested it yet.If it works, I extend it also to
Recorder
and then it's ready for merge.