Data auto-generation part using a simple state machine#127
Open
Papaercold wants to merge 17 commits intoLightwheelAI:mainfrom
Open
Data auto-generation part using a simple state machine#127Papaercold wants to merge 17 commits intoLightwheelAI:mainfrom
Papaercold wants to merge 17 commits intoLightwheelAI:mainfrom
Conversation
Collaborator
|
@Papaercold Thank you for your PR. Due to a busy schedule recently, I may not be able to review the code right away, I'll check it later. Regarding the brief drop of the gripper that you mentioned, I haven’t observed this behavior so far. I’ll check for it again using the latest code. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces a state-machine–based data generation pipeline for the SO101 pick-orange task in LeIsaac.
The main implementation lives under
scripts/environments/state_machine, where a scripted finite state machine is used to generate deterministic pick-and-place demonstrations. To integrate this pipeline with the existing teleoperation and replay infrastructure, a new teleoperation device type namedso101_state_machineis added, with corresponding changes undersource/leisaac.The implementation intentionally follows the coding style and structure of
scripts/environments/teleoperation/teleop_se3_agent.py, and includes detailed comments for readability and maintainability.Key Features
State-machine–based data generation
scripts/environments/state_machineNew teleoperation device:
so101_state_machineReplay compatibility
scripts/environments/teleoperation/replay.pyUsage Examples
Generate data
Replay recorded data
Observed Issue / Open Question
When running the state-machine–based data generation script, the robot gripper exhibits a brief downward drop at the beginning of each episode before stabilizing.
At first glance, this behavior appears to be gravity-related. However, gravity is explicitly disabled at spawn time for all relevant teleoperation devices, including the newly introduced state-machine device:
Given this configuration, it is unclear whether the observed initial drop is truly caused by gravity. Other potential factors may include controller or drive initialization behavior, insufficient drive stiffness during the first few simulation steps, or the absence of an explicit action warm-start when the episode begins.
I would appreciate feedback on the following questions:
Any insights, suggestions, or references to similar patterns in existing tasks would be greatly appreciated.
Notes