|
|
""" |
|
|
Usage: |
|
|
Training: |
|
|
python train.py --config-name=train_diffusion_lowdim_workspace |
|
|
""" |
|
|
|
|
|
import sys |
|
|
|
|
|
sys.stdout = open(sys.stdout.fileno(), mode='w', buffering=1) |
|
|
sys.stderr = open(sys.stderr.fileno(), mode='w', buffering=1) |
|
|
|
|
|
import hydra |
|
|
from omegaconf import OmegaConf |
|
|
import pathlib |
|
|
from equi_diffpo.workspace.base_workspace import BaseWorkspace |
|
|
|
|
|
max_steps = { |
|
|
'stack_d1': 400, |
|
|
'stack_three_d1': 400, |
|
|
'square_d2': 400, |
|
|
'threading_d2': 400, |
|
|
'coffee_d2': 400, |
|
|
'three_piece_assembly_d2': 500, |
|
|
'hammer_cleanup_d1': 500, |
|
|
'mug_cleanup_d1': 500, |
|
|
'kitchen_d1': 800, |
|
|
'nut_assembly_d0': 500, |
|
|
'pick_place_d0': 1000, |
|
|
'coffee_preparation_d1': 800, |
|
|
'tool_hang': 700, |
|
|
'can': 400, |
|
|
'lift': 400, |
|
|
'square': 400, |
|
|
} |
|
|
|
|
|
def get_ws_x_center(task_name): |
|
|
if task_name.startswith('kitchen_') or task_name.startswith('hammer_cleanup_'): |
|
|
return -0.2 |
|
|
else: |
|
|
return 0. |
|
|
|
|
|
def get_ws_y_center(task_name): |
|
|
return 0. |
|
|
|
|
|
OmegaConf.register_new_resolver("get_max_steps", lambda x: max_steps[x], replace=True) |
|
|
OmegaConf.register_new_resolver("get_ws_x_center", get_ws_x_center, replace=True) |
|
|
OmegaConf.register_new_resolver("get_ws_y_center", get_ws_y_center, replace=True) |
|
|
|
|
|
|
|
|
OmegaConf.register_new_resolver("eval", eval, replace=True) |
|
|
|
|
|
@hydra.main( |
|
|
version_base=None, |
|
|
config_path=str(pathlib.Path(__file__).parent.joinpath( |
|
|
'equi_diffpo','config')) |
|
|
) |
|
|
def main(cfg: OmegaConf): |
|
|
|
|
|
|
|
|
OmegaConf.resolve(cfg) |
|
|
|
|
|
cls = hydra.utils.get_class(cfg._target_) |
|
|
workspace: BaseWorkspace = cls(cfg) |
|
|
workspace.run() |
|
|
|
|
|
if __name__ == "__main__": |
|
|
main() |
|
|
|