How xstone1129/dobotmagician works
This repository learns robot palletizing trajectories from recorded demonstrations and replays selected learned motion in CoppeliaSim. The main workflow is CSV demonstrations → one of four GMM/BGMM–GMR–movement-primitive variants → saved model and evaluation artifacts → configured trajectory selection and simulator playback. The README also documents a separate suction-arm setup and demonstration-generation workflow. Several entry points and integrations are represented from documented capabilities and filenames; their unsampled internals are not expanded.
Main entry points: learn.py Training entry · io.py Data and model I/O · play_coppeliasim.py Playback entry · gmr_primitives.py GMM/GMR variants
Components 21
Demonstration data
- Demo CSVs
data/demos_single_place - Suction demos
data/demos_suction_turn - Runtime config
configs/default.yaml - Suction config
configs/suction_arm.yaml - Suction demo generator
src/dobot_bgmm_promp/scripts/generate_suction_turn_demos.py
Trajectory learning
- Training entry
src/dobot_bgmm_promp/scripts/learn.py - Data and model I/O
src/dobot_bgmm_promp/io.py - GMM/GMR variants
src/dobot_bgmm_promp/gmr_primitives.py - DMP execution model
src/dobot_bgmm_promp/dmp.py - Incremental GMM
src/dobot_bgmm_promp/incremental_gmm.py
Playback and simulation
- Playback entry
src/dobot_bgmm_promp/scripts/play_coppeliasim.py - Place selection
src/dobot_bgmm_promp/model_selection.py - Simulator client
src/dobot_bgmm_promp/coppeliasim_client.py - Suction scene setup
src/dobot_bgmm_promp/scripts/create_suction_arm_scene.py - Suction simulation scene
scenes/dobot_magician_suction.ttt
Models and analysis
- Trajectory metrics
src/dobot_bgmm_promp/metrics.py - Trajectory plots
src/dobot_bgmm_promp/plotting.py - Saved models
models - Report figures
src/dobot_bgmm_promp/report_figures.py
Other components
- Robot engineer
- CoppeliaSim
Connections 24
- Robot engineer → Training entry: starts training
- Robot engineer → Playback entry: starts playback
- Runtime config → Training entry: configures training
- Demo CSVs → Data and model I/O: provides trajectories
- Training entry → Data and model I/O: loads data
- Training entry → GMM/GMR variants: fits algorithms
- GMM/GMR variants → Incremental GMM: uses incremental fit
- GMM/GMR variants → DMP execution model: fits DMP variants
- Training entry → Data and model I/O: saves models
- Training entry → Trajectory metrics: evaluates trajectories
- Training entry → Trajectory plots: renders plots
- Data and model I/O → Saved models: writes models
- Robot engineer → Suction demo generator: generates demos
- Suction demo generator → Suction demos: writes demonstrations
- Suction config → Playback entry: configures playback
- Saved models → Data and model I/O: loads model
- Playback entry → Data and model I/O: loads model
- Playback entry → Place selection: selects place trajectory
- Playback entry → Simulator client: dispatches trajectory
- Simulator client → CoppeliaSim: controls simulation
- Robot engineer → Suction scene setup: creates scene
- Suction scene setup → CoppeliaSim: edits scene
- Suction scene setup → Suction simulation scene: produces scene
- Report figures → Runtime config: reads configuration