-
Notifications
You must be signed in to change notification settings - Fork 14
Added rosbag2 dataset recording functionality #76
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
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: ola31 <[email protected]>
…ted documentation
- Updated omx_config.yaml to change camera topic and add new joints. - Enhanced physical_ai_server_bringup.launch.py to include rosbag_recorder node. - Added methods in PhysicalAIServer for managing rosbag recording based on data manager status. - Extended Communicator class to handle rosbag recording service calls. - Modified DataManager to provide rosbag save path. - Improved error handling in rosbag recording process.
…obot dataset format
…mproved data handling
…irectories and episode skipping Signed-off-by: Dongyun Kim <[email protected]>
Signed-off-by: ola31 <[email protected]>
Signed-off-by: ola31 <[email protected]>
Signed-off-by: ola31 <[email protected]>
… improved status handling Signed-off-by: ola31 <[email protected]>
Signed-off-by: ola31 <[email protected]>
…sitions and error management Signed-off-by: ola31 <[email protected]>
…es, and add licensing information Signed-off-by: ola31 <[email protected]>
… components for improved task management Signed-off-by: ola31 <[email protected]>
…ltiple directories and episode skipping" This reverts commit 49f904c.
…er utilities Signed-off-by: ola31 <[email protected]>
…tion to enable rosbag2 folder uploading Signed-off-by: ola31 <[email protected]>
Signed-off-by: ola31 <[email protected]>
…de and adjust UI text accordingly Signed-off-by: ola31 <[email protected]>
…f raising an error when the episode buffer is not initialized Signed-off-by: ola31 <[email protected]>
…t robot type extraction from info.json Signed-off-by: ola31 <[email protected]>
… files for dataset and model repositories Signed-off-by: ola31 <[email protected]>
Signed-off-by: ola31 <[email protected]>
Signed-off-by: ola31 <[email protected]>
…RobotTypeSelector Signed-off-by: ola31 <[email protected]>
…cluding all associated files and configurations Signed-off-by: ola31 <[email protected]>
Signed-off-by: ola31 <[email protected]>
Signed-off-by: ola31 <[email protected]>
Signed-off-by: ola31 <[email protected]>
Signed-off-by: ola31 <[email protected]>
Signed-off-by: ola31 <[email protected]>
Signed-off-by: ola31 <[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.
Pull Request Overview
This PR adds rosbag2 recording capabilities to the physical_ai_tools package. When collecting LeRobot datasets, users can now optionally record rosbag2 files alongside the dataset collection process.
Key changes:
- New
rosbag_recorderpackage implementing a ROS 2 service for controlling rosbag2 recording - Integration with
physical_ai_serverto manage rosbag recording lifecycle during dataset collection - UI support in
physical_ai_managerfor enabling/disabling rosbag2 recording
Reviewed Changes
Copilot reviewed 33 out of 34 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| rosbag_recorder/srv/SendCommand.srv | Service definition for controlling rosbag recording with PREPARE, START, STOP, STOP_AND_DELETE, and FINISH commands |
| rosbag_recorder/src/service_bag_recorder.cpp | C++ implementation of the rosbag recorder service node |
| rosbag_recorder/include/rosbag_recorder/service_bag_recorder.hpp | Header file defining the ServiceBagRecorder class |
| rosbag_recorder/CMakeLists.txt | Build configuration for the rosbag_recorder package |
| rosbag_recorder/package.xml | Package manifest with dependencies |
| physical_ai_server/physical_ai_server.py | Integration logic to handle rosbag recording state transitions |
| physical_ai_server/communication/communicator.py | Client implementation for rosbag recording service calls |
| physical_ai_server/utils/parameter_utils.py | New utility function to parse topic lists |
| physical_ai_server/data_processing/data_manager.py | Support for rosbag path management and README card generation |
| physical_ai_manager UI files | Frontend support for rosbag2 recording toggle |
Files not reviewed (1)
- physical_ai_manager/package-lock.json: Language not supported
Comments suppressed due to low confidence (2)
physical_ai_server/physical_ai_server/physical_ai_server.py:1
- [nitpick] Inconsistent naming: Python code uses
record_rosbag2(snake_case) while JavaScript usesrecordRosBag2(camelCase). While this follows language conventions, the inconsistency between 'Rosbag2' and 'RosBag2' capitalization should be consistent. Consider using either 'rosbag2' or 'rosBag2' uniformly across the codebase.
#!/usr/bin/env python3
physical_ai_server/physical_ai_server/data_processing/data_manager.py:544
- Normal methods should have 'self', rather than 'info_json_path', as their first parameter.
def get_robot_type_from_info_json(info_json_path):
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…x changelog of rosbag_recorder Signed-off-by: ola31 <[email protected]>
DongyunRobotis
left a comment
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.
LGTM
Seongoo
left a comment
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.
Great work!
Signed-off-by: ola31 <[email protected]>
Changes
rosbag_recorderpackageros-ci.ymlandros-lint.ymlfor rosbag_recorder packageRelated PR