Add Collect Training Data with Behaviors Objective to lab_sim - #849
Add Collect Training Data with Behaviors Objective to lab_sim#849marioprats wants to merge 2 commits into
Conversation
Adds the recording-wrapper Objective from the Collect Training Data with Behaviors how-to guide, and migrates Pick from Pose off the deprecated PlanCartesianPath position_only port so the wrapped task runs without a deprecation warning. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughSummary by CodeRabbit
WalkthroughAdds a lab simulation behavior tree for recording bottle-pick training data. Successful episodes are saved and converted to LeRobotDataset v3.0. Failed attempts are discarded. Retract planning now applies position and orientation constraints. ChangesTraining data collection
Possibly related PRs
Suggested reviewers: Merge Risk: ⚪ Minimal · up to This PR adds the documented training-data objective and updates a deprecated planning port without any supplied merge-blocking correctness or operational risk; no actionable merge-blocking risk remains beyond normal checks and review. 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
Comment |
|
The objective requires data-collection setup not available on CI runners. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
[written by AI]
Closes PickNikRobotics/moveit_pro#21510
Problem
The Collect Training Data with Behaviors guide walks the reader through building a recording-wrapper Objective in
lab_sim, but the Objective itself does not ship with the config — QA has to rebuild it by hand and users have no reference to open.Changes
Collect Training Data with BehaviorsObjective (src/lab_sim/objectives/collect_training_data_with_behaviors.xml), matching the guide exactly: aFallbackwhose firstSequencerunsRecordEpisode(dataset_name=behavior_bottle_pick,config_name=lab_sim,num_episodes=1) → 2 s settle → the collapsedPick April Tag Labeled ObjectSubtree →SaveEpisode→ 1 s settle →StopRecording→ConvertDataset. The secondSequence(StopRecording→AlwaysFailure) discards an unsaved failed attempt and preserves the failed result, so a failed pick is never labeled as a successful demonstration.Pick from Pose: replaced the deprecatedPlanCartesianPathposition_only="false"port with the equivalentcartesian_constraint="[{constraint_type: position_and_orientation}]". The wrapped task uses this Subtree for its retract move, and the deprecated port made every run of the new Objective emit a deprecation warning.Verification
providedPorts()ofRecordEpisode,SaveEpisode,StopRecording,ConvertDataset,PlanCartesianPath) rather than written from memory; thecartesian_constraintYAML form matches the parser's accepted syntax.lab_simbefore thePick from Poseport migration; that run surfaced theposition_onlydeprecation warning this PR removes. It has not yet been re-run on top of the migration — worth one QA pass before merge.