Bitácora do projeto. Cada item corresponde a um avanço, problema encontrado ou decisão importante.
Implicação para o paper: isto não é uma reprodução 1:1, mas é um resultado válido que mostra que o bottleneck do SAC baseline original era o processamento visual e não o RL em si.
reinforcement-learning-gmm-sac-ppo-calvin.
GitHub Pages habilitado, sítio com tabelas, vídeos e plots.SACAgent nativo
(7+ métodos inexistentes em CalvinSkillEnv), decidimos usar
Stable-Baselines3 v2.4.1.scripts/sac_train_sb3.py com wrapper gymnasium para
CalvinSkillEnv. Observation: posição 3D do end-effector. Action: delta
de posição 3D.scripts/sac_train.py referencia sac_gmm.models.sac_model.SAC
mas o arquivo não existe no upstream.src/sac_gmm/models/sac_model.py baseado em sac_gmm_model.py.sac_calvin.yaml (não herdava de default.yaml, faltavam args).SACAgent.__init__ para passar gmm/encoder/kp_mock ao super.SACAgent chama 7+ métodos que não existem em
CalvinSkillEnv: set_skill, set_outdir, obs_allowed,
prepare_action, record_frame, reset_recorded_frames,
save_recorded_frames, sample_start_position.scripts/agent_eval_record.py: novo script de eval que grava vídeo MP4 via
PyBullet STATE_LOGGING_VIDEO_MP4 + salva CSV/JSON com métricas.SACGMM_STEP_DELAY — slow-motion (segundos por passo)SACGMM_VIDEO_PATH — override do caminho do MP4SACGMM_CAM_DIST/YAW/PITCH/TARGET — câmera inicial customizável/tmp/.results_22003/. Plots gerados.checkpoints/sac_gmm_open_drawer_best.ckpt.skill=calvin_open_drawer, 152 demos de task_D_D, K=3, N=32.l40s, 1× L40S, 8 CPU, 32 GB RAM, 8h time limit.calvin_env.__file__ None em editable install → patch try/except.dataset/calvin/{calvin_debug_dataset,task_D_D}).agent.evaluate() device hardcoded “cuda” → param.agent_eval.py não atribuía o modelo carregado → fix.task_D_D (~165 GB) baixado via tmux + wget --limit-rate=10m
no headnode do cluster. Tomou ~12h (corte de rede no meio, wget -c
recuperou).open_drawer → 152 train + 30 val.calvin_debug_dataset
(skill lift_red_block_table, K=3, ablações K=1/2/5/8).open_drawer no env por
ausência em customized_tasks.yaml. Resolvida usando skills suportadas.config_path com espaços, etc.).