Skip to content

Conversation

@ola31
Copy link
Member

@ola31 ola31 commented Nov 5, 2025

Changes

  • Added rosbag_recorder package
  • Added rosbag2 recording support when collecting LeRobot datasets
  • Update ros-ci.yml and ros-lint.yml for rosbag_recorder package

Related PR

ola31 and others added 30 commits October 29, 2025 16:17
- 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.
…irectories and episode skipping

Signed-off-by: Dongyun Kim <[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.
…tion to enable rosbag2 folder uploading

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]>
@ola31 ola31 added the enhancement New feature or request label Nov 5, 2025
@ola31 ola31 added this to Platform Nov 5, 2025
@ola31 ola31 moved this to 📝 Pull Request in Platform Nov 5, 2025
@ola31 ola31 marked this pull request as ready for review November 5, 2025 08:40
Copilot AI review requested due to automatic review settings November 5, 2025 08:40
Copy link

Copilot AI left a 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_recorder package implementing a ROS 2 service for controlling rosbag2 recording
  • Integration with physical_ai_server to manage rosbag recording lifecycle during dataset collection
  • UI support in physical_ai_manager for 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 uses recordRosBag2 (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.

@ola31 ola31 self-assigned this Nov 5, 2025
@ola31 ola31 requested a review from Seongoo November 5, 2025 09:29
Copy link
Member

@DongyunRobotis DongyunRobotis left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Member

@Seongoo Seongoo left a comment

Choose a reason for hiding this comment

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

Great work!

@ola31 ola31 removed the request for review from Woojin-Crive November 21, 2025 04:56
@ola31 ola31 assigned robotpilot and unassigned ola31 Nov 21, 2025
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

Status: 📝 Pull Request

Development

Successfully merging this pull request may close these issues.

6 participants