How andrejorsula/drl_grasping works
This is a ROS 2/Gazebo robotic-manipulation RL project. The principal workflow is to train an agent in registered Gym environments, using state, image, or octree observations, then evaluate policies in simulation or on real robots. Its domain branches include reach, general grasping, and lunar grasping, with simulation randomization and real-robot evaluation; an internal layer supplies octree feature extraction and replay support. Relationships beyond the README and sampled excerpts are omitted or marked unverified.
Main entry points: __init__.py Gym Registration · exp_manager.py Experiment Manager · algorithms SAC / TD3 / TQC · perception Camera / Octree
Components 21
Robot Tasks
- Gym Registration
drl_grasping/envs/__init__.py - Reach Variants
drl_grasping/envs/tasks/reach - Grasp Variants
drl_grasping/envs/tasks/grasp - Lunar Grasp
drl_grasping/envs/tasks/grasp_planetary - Manipulation Base
drl_grasping/envs/tasks/manipulation.py - Camera / Octree
drl_grasping/envs/perception
Simulation Models
- World Randomizer
drl_grasping/envs/randomizers/manipulation.py - Robot Models
drl_grasping/envs/models/robots - Scene Models
drl_grasping/envs/models - Real Runtime
drl_grasping/envs/runtimes/real_evaluation.py
RL Learning
- SAC / TD3 / TQC
drl_grasping/drl_octree/algorithms - Image CNN
drl_grasping/drl_octree/features_extractor/image_cnn.py - Octree CNN
drl_grasping/drl_octree/features_extractor/octree_cnn.py - CNN Modules
drl_grasping/drl_octree/features_extractor/modules.py - Replay Buffer
drl_grasping/drl_octree/replay_buffer/replay_buffer.py
Training and Evaluation
- Experiment Manager
drl_grasping/utils/exp_manager.py - Training Callbacks
drl_grasping/utils/callbacks.py - Hyperparameter Search
drl_grasping/utils/hyperparams_opt.py - DreamerV2 Setup
scripts/train_dreamerv2.py - Policy Evaluation
scripts/evaluate.py
Other components
- Engineer / Operator
Connections 27
- Engineer / Operator → Experiment Manager: starts training
- Gym Registration → Reach Variants: registers
drl_grasping/envs/__init__.py - Gym Registration → Grasp Variants: registers
drl_grasping/envs/__init__.py - Gym Registration → Lunar Grasp: registers
drl_grasping/envs/__init__.py - Reach Variants → Manipulation Base: extends
- Grasp Variants → Manipulation Base: extends
drl_grasping/envs/tasks/grasp/grasp.py - Lunar Grasp → Manipulation Base: uses base
- Gym Registration → World Randomizer: configures simulation
README.md - World Randomizer → Scene Models: populates world
drl_grasping/envs/randomizers/manipulation.py - World Randomizer → Robot Models: configures robot
- Camera / Octree → Reach Variants: provides observations
- Camera / Octree → Grasp Variants: provides observations
- Camera / Octree → Lunar Grasp: provides observations
- Engineer / Operator → Experiment Manager: requests training
README.md - Experiment Manager → Gym Registration: creates environments
- Experiment Manager → SAC / TD3 / TQC: trains agent
- SAC / TD3 / TQC → Image CNN: extracts image features
- SAC / TD3 / TQC → Octree CNN: extracts octree features
drl_grasping/drl_octree/algorithms/sac/policies.py - Octree CNN → CNN Modules: uses layers
drl_grasping/drl_octree/features_extractor/octree_cnn.py - SAC / TD3 / TQC → Replay Buffer: samples experience
drl_grasping/drl_octree/algorithms/off_policy_algorithm.py - Experiment Manager → Training Callbacks: creates callbacks
drl_grasping/utils/exp_manager.py - Experiment Manager → Hyperparameter Search: runs search
drl_grasping/utils/exp_manager.py - Engineer / Operator → Policy Evaluation: requests evaluation
README.md - Policy Evaluation → Gym Registration: evaluates policy
- Policy Evaluation → Real Runtime: evaluates on robot
README.md - Engineer / Operator → DreamerV2 Setup: starts experiment
- DreamerV2 Setup → Gym Registration: uses image environments
README.md