6D Grasping Policy for Point Clouds

Overview

GA-DDPG

[website, paper]

image

Installation

git clone https://github.com/liruiw/GA-DDPG.git --recursive
  1. Setup: Ubuntu 16.04 or above, CUDA 10.0 or above, python 2.7 / 3.6

    • (Required for Training) - Install OMG submodule and reuse conda environment.
    • (Docker) See OMG Docker for details.
    • (Demo) - Install GA-DDPG inside a new conda environment
      conda create --name gaddpg python=3.6.9
      conda activate gaddpg
      pip install -r requirements.txt
      
  2. Install PointNet++

  3. Download environment data bash experiments/scripts/download_data.sh

Pretrained Model Demo

  1. Download pretrained models bash experiments/scripts/download_model.sh
  2. Demo model test bash experiments/scripts/test_demo.sh
Example 1 Example 2

Save Data and Offline Training

  1. Download example offline data bash experiments/scripts/download_offline_data.sh The .npz dataset (saved replay buffer) can be found in data/offline_data and can be loaded for training.
  2. To save extra gpus for online rollouts, use the offline training script bash ./experiments/scripts/train_offline.sh bc_aux_dagger.yaml BC
  3. Saving dataset bash ./experiments/scripts/train_online_save_buffer.sh bc_save_data.yaml BC.

Online Training and Testing

  1. We use ray for parallel rollout and training. The training scripts might require adjustment according to the local machine. See config.py for some notes.
  2. Training online bash ./experiments/scripts/train_online_visdom.sh td3_critic_aux_policy_aux.yaml DDPG. Use visdom and tensorboard to monitor.
  3. Testing on YCB objects bash ./experiments/scripts/test_ycb.sh demo_model. Replace demo_model with trained models. Logs and videos would be saved to output_misc

Note

  1. Checkout core/test_realworld_ros_final.py for an example of real-world usages.
  2. Related Works (OMG, ACRONYM, 6DGraspNet, 6DGraspNet-Pytorch, ContactGraspNet, Unseen-Clustering)
  3. To use the full Acronym dataset with Shapenet meshes, please follow ACRONYM to download the meshes and grasps and follow OMG-Planner to process and save in /data. filter_shapenet.json can then be used for training.
  4. Please use Github issue tracker to report bugs. For other questions please contact Lirui Wang.

File Structure

├── ...
├── GADDPG
|   |── data 		# training data
|   |   |── grasps 		# grasps from the ACRONYM dataset
|   |   |── objects 		# object meshes, sdf, urdf, etc
|   |   |── robots 		# robot meshes, urdf, etc
|   |   └── gaddpg_scenes	 	# test scenes
|   |── env 		# environment-related code
|   |   |── panda_scene 		# environment and task
|   |   └── panda_gripper_hand_camera 		# franka panda with gripper and camera
|   |── OMG 		# expert planner submodule
|   |── experiments 		# experiment scripts
|   |   |── config 		# hyperparameters for training, testing and environment
|   |   |── scripts 		# main running scripts
|   |   |── model_spec 		# network architecture spec
|   |   |── cfgs 		# experiment config and hyperparameters
|   |   └── object_index 		# object indexes
|   |── core 		# agents and learning
|   |   |──  train_online 		# online training
|   |   |──  train_test_offline 	# testing and offline training
|   |   |──  network 		# network architecture
|   |   |──  test_realworld_ros_final 		# real-world script example
|   |   |──  agent 		# main agent code
|   |   |──  replay_memory 		# replay buffer
|   |   |──  trainer 	# ray-related training setup
|   |   └── ...
|   |── output 		# trained model
|   |── output_misc 	# log and videos
|   └── ...
└── ...

Citation

If you find GA-DDPG useful in your research, please consider citing:

@inproceedings{wang2020goal,
	author    = {Lirui Wang, Yu Xiang, Wei Yang, Arsalan Mousavian, and Dieter Fox},
	title     = {Goal-Auxiliary Actor-Critic for 6D Robotic Grasping with Point Clouds},
	booktitle = {arXiv:2010.00824},
	year      = {2020}
}

License

The GA-DDPG is licensed under the MIT License.

Comments
  • The error of running Save Data and Offline Training

    The error of running Save Data and Offline Training

    Dear Lirui:

    I meet some questions when to reproduce your code, could you help to provide some valuable advice?

    1. When I run the code bash ./experiments/scripts/train_online_save_buffer.sh bc_save_data.yaml BC for Save Data and Offline Training. I meet the error: ValueError: After taking into account object store and redis memory usage, the amount of memory on this node available for tasks and actors (-11.76 GB) is less than -34% of total. You can adjust these settings with ray.init(memory=<bytes>, object_store_memory=<bytes>).

    2. Furthermore, I meet the same error to run the code Online Training and Testing.

    3. Finally, I want to known it is right in your code bash ./experiments/scripts/train_online_visdom.sh td3_critic_aux_policy_aux.yaml DDPG of train_online_visdom.sh to be train_online.sh or train_online_continue.sh? Because I cannot find the train_online_visdom.sh in your published code.

    opened by ZJU-PLP 10
  • filter_shapenet files

    filter_shapenet files

    Hi Lirui,

    Thanks again for this awesome work. Is there any chance that the full shapenet training data can be made available? I assume these are the objects listed in experiments/object_index/filter_shapenet.json.

    I tried following the README instructions for processing the shapes data myself but have run into various issues when trying to use OMG-Planner's python -m real_world.process_shape. For example, I'm having a little difficulty getting meshlabserver installed and running properly on my machine.

    opened by AllanYangZhou 9
  • URDF file cannot load

    URDF file cannot load

    Hello! When I tried to run the pretrained model demo,I met some problems. I have downloaded the file folder shared_data and demo_model. However, when I run the test procedure, a error called URDF file '/root/GA-DDPG/env/../data/objects/Desktop_94145560501fa53228212dd5e8de73b/model_normalized.urdf' not found. I have checked the whole files contained in the data and there are not such a file.

    opened by fly0520 5
  • The question about run GA-DDPG in real world

    The question about run GA-DDPG in real world

    Dear Liruiw: I have a question about run GA-DDPG in real world. You used the depth heuristic in test_realworld_ros_final.py, but I can't find the function self.graspnet.compute_grasps_score() in the function that calculates the quality of the grasp in termination_heuristics(). Can I use the depth_termination_heuristics(depth_img, mask_img) function in utils to calculate whether the grasp is possible or not?

    opened by HH-yx 3
  • BC Image Data

    BC Image Data

    Hi Lirui,

    Thanks for publishing this wonderful work!

    I'm interested in behavior cloning in this environment, from images (not pointclouds). It seems like the data from here does not include image observations. Is there a way to regenerate the expert demonstrations, and record image observations?

    Thanks, Allan

    opened by AllanYangZhou 2
  • How to run GA-DDPG in real world?

    How to run GA-DDPG in real world?

    Dear Lirui: Thanks for sharing so nice work. Could you mind providing more details how to run your GA-PPDG in real world? Specifically, how to do the steps to transfer GA-DDPG in Pybullet to real Franka robot?

    opened by ZJU-PLP 2
  • How to save the output video

    How to save the output video

    Dear Liruiw: I'm confused about how to save video after test.

    image

    Actually, in the file folder output_misc, there are some dictionary that are created after running test program. image

    But when I terminate the program, nothing had been saved. Should I need to type some order in Ipython order line?

    opened by fly0520 1
  • CUDA Problem

    CUDA Problem

    Hi Lirui, Thanks for publishing this excellent work. I'm trying to run in real life with realsense similar to your videos, but it hasn't been possible because when I tried to install Pointnet++ i got the error: The detected CUDA version (11.4) mismatches the version that was used to compile PyTorch (10.2). And my GPU supports CUDA 11 and up. Have you thought about migrating it to a newer version? Or do you think that the current version can be run with CUDA 11?

    opened by BryanBetancurUR 1
  • The question about model training

    The question about model training

    Dear Liruiw: I have a question about model training. I would like to know the idea of model training is to train offline first, using behavioral clones to learn the strategy of omg planning, and then train online, using the trained model to interact with the environment and fine-tune the strategy with hindsight goals

    opened by HH-yx 1
  • Segmentation fault error

    Segmentation fault error

    While running bash experiments/scripts/test_demo.sh

    I'm getting Segmentation fault error. Could you please suggest the cause of such error.

    Below is the ran script for reference:

    (gaddpg) akashsingh@MSI:~/GA-DDPG$ bash experiments/scripts/test_demo.sh

    • set -e +++ dirname -- experiments/scripts/test_demo.sh ++ cd experiments/scripts ++ pwd

    • DIR=/home/akashsingh/GA-DDPG/experiments/scripts

    • export PYTHONUNBUFFERED=True

    • PYTHONUNBUFFERED=True

    • LOG_NAME=agent

    • LOG=output//log.txt

    • MODEL_NAME=dummy

    • RUN_NUM=3

    • EPI_NUM=165

    • EPOCH=latest ++ date +%Y-%m-%d_%H-%M-%S

    • LOG=outputs/dummy/test_log.txt.2021-10-07_16-19-54

    • exec ++ tee -a outputs/dummy/test_log.txt.2021-10-07_16-19-54 tee: outputs/dummy/test_log.txt.2021-10-07_16-19-54: No such file or directory

    • echo Logging output to outputs/dummy/test_log.txt.2021-10-07_16-19-54 Logging output to outputs/dummy/test_log.txt.2021-10-07_16-19-54

    • python -m core.train_test_offline --expert --pretrained output/demo_model --test --render pybullet build time: May 8 2021 05:48:32 Output will be saved to output/demo_model Using config: {'DATA_ROOT_DIR': 'data/scenes', 'EPOCHS': 200, 'EXPERIMENT_OBJ_INDEX_DIR': 'experiments/object_index', 'IMG_SIZE': [112, 112], 'LOG': True, 'MODEL_SPEC_DIR': 'experiments/model_spec', 'OBJECT_DATA_DIR': 'data/objects', 'OFFLINE_BATCH_SIZE': 100, 'OFFLINE_RL_MEMORY_SIZE': 100000, 'ONPOLICY_MEMORY_SIZE': -1, 'OUTPUT_DIR': 'output', 'OUTPUT_MISC_DIR': 'output_misc', 'RL_DATA_ROOT_DIR': 'data/scenes', 'RL_IMG_SIZE': [112, 112], 'RL_MAX_STEP': 20, 'RL_MEMORY_SIZE': 2000000, 'RL_MODEL_SPEC': 'output/demo_model/rl_pointnet_model_spec.yaml', 'RL_SAVE_DATA_NAME': 'data_50k.npz', 'RL_SAVE_DATA_ROOT_DIR': 'data', 'RL_TEST_SCENE': 'data/gaddpg_scenes', 'RL_TRAIN': {'DAGGER_MAX_STEP': 18, 'DAGGER_MIN_STEP': 5, 'DAGGER_RATIO': 0.5, 'DART_MAX_STEP': 18, 'DART_MIN_STEP': 5, 'DART_RATIO': 0.5, 'ENV_FAR': 0.5, 'ENV_NEAR': 0.2, 'ENV_RESET_TRIALS': 7, 'EXPERT_INIT_MAX_STEP': 15, 'EXPERT_INIT_MIN_STEP': 3, 'RL': True, 'SAVE_EPISODE_INTERVAL': 50, 'accumulate_points': True, 'action_noise': 0.01, 'batch_size': 125, 'bc_reward_flag': False, 'buffer_full_size': -1, 'buffer_start_idx': 0, 'change_dynamics': False, 'channel_num': 5, 'clip_grad': 0.5, 'concat_option': 'point_wise', 'critic_aux': True, 'critic_extra_latent': -1, 'critic_goal': False, 'dagger': True, 'dart': True, 'ddpg_coefficients': [0.5, 0.001, 1.0003, 1.0, 0.2], 'domain_randomization': False, 'env_name': 'PandaYCBEnv', 'env_num_objs': 1, 'expert_initial_state': False, 'explore_cap': 1.0, 'explore_ratio': 1.0, 'explore_ratio_list': [0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7], 'feature_input_dim': 512, 'fill_data_step': 10, 'fix_timestep_test': True, 'gamma': 0.95, 'goal_reward_flag': False, 'head_lr': 0.0003, 'hidden_size': 256, 'index_file': 'experiments/object_index/extra_shape.json', 'index_split': 'train', 'init_distance_high': 0.45, 'init_distance_low': 0.15, 'load_buffer': False, 'load_obj_num': 40, 'load_scene_joint': False, 'load_test_scene_new': False, 'log': True, 'lr': 0.0003, 'lr_gamma': 0.5, 'max_epoch': 150000, 'max_num_pts': 20000, 'mix_milestones': [4000, 8000, 16000, 25000, 35000, 45000, 65000, 85000, 100000, 120000], 'mix_policy_ratio_list': [0.1, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2], 'mix_value_ratio_list': [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], 'new_scene': True, 'noise_ratio_list': [3.0, 2.5, 2.0, 1.5, 1.2, 1.2, 1, 0.8, 0.5], 'noise_type': 'uniform', 'num_remotes': 8, 'off_policy': True, 'online_buffer_ratio': 0.7, 'onpolicy': True, 'overwrite_feat_milestone': [], 'policy_aux': True, 'policy_extra_latent': -1, 'policy_goal': False, 'policy_milestones': [20000, 40000, 60000, 80000], 'policy_update_gap': 2, 'pt_accumulate_ratio': 0.95, 'refill_buffer': True, 'reinit_factor': 3, 'reinit_lr': 0.0001, 'reinit_optim': False, 'sa_channel_concat': True, 'save_epoch': [3000, 10000, 20000, 40000, 80000, 100000, 140000, 180000, 200000], 'self_supervision': False, 'shared_feature': False, 'shared_objects_across_worker': False, 'target_update_interval': 3000, 'tau': 0.0001, 'train_feature': True, 'train_goal_feature': False, 'train_value_feature': True, 'uniform_num_pts': 1024, 'updates_per_step': 20, 'use_action_limit': True, 'use_expert_plan': False, 'use_image': False, 'use_point_state': True, 'use_time': True, 'value_lr': 0.0003, 'value_lr_gamma': 0.5, 'value_milestones': [20000, 40000, 60000, 80000], 'value_model': True, 'visdom': True}, 'RNG_SEED': 3, 'ROBOT_DATA_DIR': 'data/robots', 'ROOT_DIR': '/home/akashsingh/GA-DDPG/experiments/../', 'SCRIPT_FOLDER': 'experiments/cfgs', 'env_config': {'accumulate_points': True, 'action_space': 'task6d', 'change_dynamics': False, 'data_type': 'RGBDM', 'domain_randomization': False, 'expert_step': 20, 'height': 112, 'img_resize': [112, 112], 'initial_far': 0.5, 'initial_near': 0.2, 'numObjects': 1, 'omg_config': {'allow_collision_point': 0, 'base_obstacle_weight': 1.0, 'clearance': 0.03, 'dynamic_timestep': False, 'extra_smooth_steps': 5, 'goal_idx': -1, 'ik_clearance': 0.07, 'ik_parallel': False, 'ik_seed_num': 13, 'increment_iks': True, 'ol_alg': 'Proj', 'optim_steps': 1, 'pre_terminate': True, 'root_dir': '/home/akashsingh/GA-DDPG/experiments/../', 'scene_file': '', 'silent': True, 'smoothness_base_weight': 3, 'standoff_dist': 0.08, 'target_epsilon': 0.06, 'target_hand_filter_angle': 90, 'target_obj_collision': 1, 'terminate_smooth_loss': 3, 'timesteps': 20, 'traj_delta': 0.05, 'traj_init': 'grasp', 'traj_interpolate': 'linear', 'traj_max_step': 26, 'traj_min_step': 15, 'use_expert_plan': False, 'vis': False}, 'pt_accumulate_ratio': 0.95, 'random_target': True, 'regularize_pc_point_count': True, 'uniform_num_pts': 1024, 'use_hand_finger_point': True, 'width': 112}, 'omg_config': {'allow_collision_point': 0, 'base_obstacle_weight': 1.0, 'clearance': 0.03, 'dynamic_timestep': False, 'extra_smooth_steps': 5, 'goal_idx': -1, 'ik_clearance': 0.07, 'ik_parallel': False, 'ik_seed_num': 13, 'increment_iks': True, 'ol_alg': 'Proj', 'optim_steps': 1, 'pre_terminate': True, 'root_dir': '/home/akashsingh/GA-DDPG/experiments/../', 'scene_file': '', 'silent': True, 'smoothness_base_weight': 3, 'standoff_dist': 0.08, 'target_epsilon': 0.06, 'target_hand_filter_angle': 90, 'target_obj_collision': 1, 'terminate_smooth_loss': 3, 'timesteps': 20, 'traj_delta': 0.05, 'traj_init': 'grasp', 'traj_interpolate': 'linear', 'traj_max_step': 26, 'traj_min_step': 15, 'use_expert_plan': False, 'vis': False}, 'pretrained_time': '', 'script_name': 'td3_critic_aux_policy_aux.yaml'} schedule: [8000, 16000, 30000, 50000, 70000, 90000] schedule: [8000, 16000, 30000, 50000, 70000, 90000] Output will be saved to output/demo_model video output: YCB_td3_critic_aux_policy_aux.yaml stat output: rollout_success.script_td3_critic_aux_policy_aux.yaml.txt load pretrained policy!!!! load pretrained critic!!!! load feat optim load pretrained feature!!!! from: output/demo_model/DDPG_state_feat_PandaYCBEnv_latest step :249921 output_time: demo_model logdir: output/demo_model/PandaYCBEnv_DDPG argv[0]=--opengl2 startThreads creating 1 threads. starting thread 0 started thread 0 argc=3 argv[0] = --unused argv[1] = --opengl2 argv[2] = --start_demo_name=Physics Server ExampleBrowserThreadFunc started X11 functions dynamically loaded using dlopen/dlsym OK! X11 functions dynamically loaded using dlopen/dlsym OK! 4

        visual 0x21 selected
      

    GL_VENDOR=Intel GL_RENDERER=Intel(R) UHD Graphics 630 GL_VERSION=1.4 (4.6.0 - Build 30.0.100.9922) GL_SHADING_LANGUAGE_VERSION=(null) pthread_getconcurrency()=0 b3Printf: Selected demo: Physics Server startThreads creating 1 threads. starting thread 0 started thread 0 MotionThreadFunc thread started experiments/scripts/test_demo.sh: line 19: 3313 Segmentation fault python -m core.train_test_offline --expert --pretrained output/demo_model --test --render

    opened by akashsingh0710 1
  • TypeError: forward() missing 1 required positional argument: 'pc' Error in the feature extractor

    TypeError: forward() missing 1 required positional argument: 'pc' Error in the feature extractor

    Hello, It seems that there's a problem in the state_feature_extractor in the agent.py file. Could you please see the following errors when executing the 'test_demo' script? Best regards, Ronen.

    + echo Logging output to outputs/dummy/test_log.txt.2021-07-20_10-26-24
    Logging output to outputs/dummy/test_log.txt.2021-07-20_10-26-24
    + python -m core.train_test_offline --expert --pretrained output/demo_model --test --render
    pybullet build time: Jul 14 2021 10:11:29
    Output will be saved to `output/demo_model`
    Using config:
    {'DATA_ROOT_DIR': 'data/scenes',
     'EPOCHS': 200,
     'EXPERIMENT_OBJ_INDEX_DIR': 'experiments/object_index',
     'IMG_SIZE': [112, 112],
     'LOG': True,
     'MODEL_SPEC_DIR': 'experiments/model_spec',
     'OBJECT_DATA_DIR': 'data/objects',
     'OFFLINE_BATCH_SIZE': 100,
     'OFFLINE_RL_MEMORY_SIZE': 100000,
     'ONPOLICY_MEMORY_SIZE': -1,
     'OUTPUT_DIR': 'output',
     'OUTPUT_MISC_DIR': 'output_misc',
     'RL_DATA_ROOT_DIR': 'data/scenes',
     'RL_IMG_SIZE': [112, 112],
     'RL_MAX_STEP': 20,
     'RL_MEMORY_SIZE': 2000000,
     'RL_MODEL_SPEC': 'output/demo_model/rl_pointnet_model_spec.yaml',
     'RL_SAVE_DATA_NAME': 'data_50k.npz',
     'RL_SAVE_DATA_ROOT_DIR': 'data',
     'RL_TEST_SCENE': 'data/gaddpg_scenes',
     'RL_TRAIN': {'DAGGER_MAX_STEP': 18,
                  'DAGGER_MIN_STEP': 5,
                  'DAGGER_RATIO': 0.5,
                  'DART_MAX_STEP': 18,
                  'DART_MIN_STEP': 5,
                  'DART_RATIO': 0.5,
                  'ENV_FAR': 0.5,
                  'ENV_NEAR': 0.2,
                  'ENV_RESET_TRIALS': 7,
                  'EXPERT_INIT_MAX_STEP': 15,
                  'EXPERT_INIT_MIN_STEP': 3,
                  'RL': True,
                  'SAVE_EPISODE_INTERVAL': 50,
                  'accumulate_points': True,
                  'action_noise': 0.01,
                  'batch_size': 125,
                  'bc_reward_flag': False,
                  'buffer_full_size': -1,
                  'buffer_start_idx': 0,
                  'change_dynamics': False,
                  'channel_num': 5,
                  'clip_grad': 0.5,
                  'concat_option': 'point_wise',
                  'critic_aux': True,
                  'critic_extra_latent': -1,
                  'critic_goal': False,
                  'dagger': True,
                  'dart': True,
                  'ddpg_coefficients': [0.5, 0.001, 1.0003, 1.0, 0.2],
                  'domain_randomization': False,
                  'env_name': 'PandaYCBEnv',
                  'env_num_objs': 1,
                  'expert_initial_state': False,
                  'explore_cap': 1.0,
                  'explore_ratio': 1.0,
                  'explore_ratio_list': [0.7, 0.7, 0.7, 0.7, 0.7, 0.7, 0.7],
                  'feature_input_dim': 512,
                  'fill_data_step': 10,
                  'fix_timestep_test': True,
                  'gamma': 0.95,
                  'goal_reward_flag': False,
                  'head_lr': 0.0003,
                  'hidden_size': 256,
                  'index_file': 'experiments/object_index/extra_shape.json',
                  'index_split': 'train',
                  'init_distance_high': 0.45,
                  'init_distance_low': 0.15,
                  'load_buffer': False,
                  'load_obj_num': 40,
                  'load_scene_joint': False,
                  'load_test_scene_new': False,
                  'log': True,
                  'lr': 0.0003,
                  'lr_gamma': 0.5,
                  'max_epoch': 150000,
                  'max_num_pts': 20000,
                  'mix_milestones': [4000,
                                     8000,
                                     16000,
                                     25000,
                                     35000,
                                     45000,
                                     65000,
                                     85000,
                                     100000,
                                     120000],
                  'mix_policy_ratio_list': [0.1, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2],
                  'mix_value_ratio_list': [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
                  'new_scene': True,
                  'noise_ratio_list': [3.0, 2.5, 2.0, 1.5, 1.2, 1.2, 1, 0.8, 0.5],
                  'noise_type': 'uniform',
                  'num_remotes': 8,
                  'off_policy': True,
                  'online_buffer_ratio': 0.7,
                  'onpolicy': True,
                  'overwrite_feat_milestone': [],
                  'policy_aux': True,
                  'policy_extra_latent': -1,
                  'policy_goal': False,
                  'policy_milestones': [20000, 40000, 60000, 80000],
                  'policy_update_gap': 2,
                  'pt_accumulate_ratio': 0.95,
                  'refill_buffer': True,
                  'reinit_factor': 3,
                  'reinit_lr': 0.0001,
                  'reinit_optim': False,
                  'sa_channel_concat': True,
                  'save_epoch': [3000,
                                 10000,
                                 20000,
                                 40000,
                                 80000,
                                 100000,
                                 140000,
                                 180000,
                                 200000],
                  'self_supervision': False,
                  'shared_feature': False,
                  'shared_objects_across_worker': False,
                  'target_update_interval': 3000,
                  'tau': 0.0001,
                  'train_feature': True,
                  'train_goal_feature': False,
                  'train_value_feature': True,
                  'uniform_num_pts': 1024,
                  'updates_per_step': 20,
                  'use_action_limit': True,
                  'use_expert_plan': False,
                  'use_image': False,
                  'use_point_state': True,
                  'use_time': True,
                  'value_lr': 0.0003,
                  'value_lr_gamma': 0.5,
                  'value_milestones': [20000, 40000, 60000, 80000],
                  'value_model': True,
                  'visdom': True},
     'RNG_SEED': 3,
     'ROBOT_DATA_DIR': 'data/robots',
     'ROOT_DIR': '/home/nir1tv/projects/GA-DDPG/experiments/../',
     'SCRIPT_FOLDER': 'experiments/cfgs',
     'env_config': {'accumulate_points': True,
                    'action_space': 'task6d',
                    'change_dynamics': False,
                    'data_type': 'RGBDM',
                    'domain_randomization': False,
                    'expert_step': 20,
                    'height': 112,
                    'img_resize': [112, 112],
                    'initial_far': 0.5,
                    'initial_near': 0.2,
                    'numObjects': 1,
                    'omg_config': {'allow_collision_point': 0,
                                   'base_obstacle_weight': 1.0,
                                   'clearance': 0.03,
                                   'dynamic_timestep': False,
                                   'extra_smooth_steps': 5,
                                   'goal_idx': -1,
                                   'ik_clearance': 0.07,
                                   'ik_parallel': False,
                                   'ik_seed_num': 13,
                                   'increment_iks': True,
                                   'ol_alg': 'Proj',
                                   'optim_steps': 1,
                                   'pre_terminate': True,
                                   'root_dir': '/home/nir1tv/projects/GA-DDPG/experiments/../',
                                   'scene_file': '',
                                   'silent': True,
                                   'smoothness_base_weight': 3,
                                   'standoff_dist': 0.08,
                                   'target_epsilon': 0.06,
                                   'target_hand_filter_angle': 90,
                                   'target_obj_collision': 1,
                                   'terminate_smooth_loss': 3,
                                   'timesteps': 20,
                                   'traj_delta': 0.05,
                                   'traj_init': 'grasp',
                                   'traj_interpolate': 'linear',
                                   'traj_max_step': 26,
                                   'traj_min_step': 15,
                                   'use_expert_plan': False,
                                   'vis': False},
                    'pt_accumulate_ratio': 0.95,
                    'random_target': True,
                    'regularize_pc_point_count': True,
                    'uniform_num_pts': 1024,
                    'use_hand_finger_point': True,
                    'width': 112},
     'omg_config': {'allow_collision_point': 0,
                    'base_obstacle_weight': 1.0,
                    'clearance': 0.03,
                    'dynamic_timestep': False,
                    'extra_smooth_steps': 5,
                    'goal_idx': -1,
                    'ik_clearance': 0.07,
                    'ik_parallel': False,
                    'ik_seed_num': 13,
                    'increment_iks': True,
                    'ol_alg': 'Proj',
                    'optim_steps': 1,
                    'pre_terminate': True,
                    'root_dir': '/home/nir1tv/projects/GA-DDPG/experiments/../',
                    'scene_file': '',
                    'silent': True,
                    'smoothness_base_weight': 3,
                    'standoff_dist': 0.08,
                    'target_epsilon': 0.06,
                    'target_hand_filter_angle': 90,
                    'target_obj_collision': 1,
                    'terminate_smooth_loss': 3,
                    'timesteps': 20,
                    'traj_delta': 0.05,
                    'traj_init': 'grasp',
                    'traj_interpolate': 'linear',
                    'traj_max_step': 26,
                    'traj_min_step': 15,
                    'use_expert_plan': False,
                    'vis': False},
     'pretrained_time': '',
     'script_name': 'td3_critic_aux_policy_aux.yaml'}
    Let's use 2 GPUs!
    schedule: [8000, 16000, 30000, 50000, 70000, 90000]
    schedule: [8000, 16000, 30000, 50000, 70000, 90000]
    Output will be saved to `output/demo_model`
    video output: YCB_td3_critic_aux_policy_aux.yaml stat output: rollout_success.script_td3_critic_aux_policy_aux.yaml.txt
    load pretrained policy!!!!
    load pretrained critic!!!!
    load feat optim
    load pretrained feature!!!! from: output/demo_model/DDPG_state_feat_PandaYCBEnv_latest step :249921
    output_time: demo_model logdir: output/demo_model/PandaYCBEnv_DDPG
    startThreads creating 1 threads.
    starting thread 0
    started thread 0 
    argc=2
    argv[0] = --unused
    argv[1] = --start_demo_name=Physics Server
    ExampleBrowserThreadFunc started
    X11 functions dynamically loaded using dlopen/dlsym OK!
    X11 functions dynamically loaded using dlopen/dlsym OK!
    Creating context
    Created GL 3.3 context
    Direct GLX rendering context obtained
    Making context current
    GL_VENDOR=NVIDIA Corporation
    GL_RENDERER=NVIDIA GeForce RTX 2080 Ti/PCIe/SSE2
    GL_VERSION=3.3.0 NVIDIA 470.42.01
    GL_SHADING_LANGUAGE_VERSION=3.30 NVIDIA via Cg compiler
    pthread_getconcurrency()=0
    Version = 3.3.0 NVIDIA 470.42.01
    Vendor = NVIDIA Corporation
    Renderer = NVIDIA GeForce RTX 2080 Ti/PCIe/SSE2
    b3Printf: Selected demo: Physics Server
    startThreads creating 1 threads.
    starting thread 0
    started thread 0 
    MotionThreadFunc thread started
    numActiveThreads = 0
    stopping threads
    destroy semaphore
    semaphore destroyed
    Thread with taskId 0 exiting
    Thread TERMINATED
    destroy main semaphore
    main semaphore destroyed
    finished
    numActiveThreads = 0
    btShutDownExampleBrowser stopping threads
    Thread with taskId 0 exiting
    Thread TERMINATED
    destroy semaphore
    semaphore destroyed
    destroy main semaphore
    main semaphore destroyed
    startThreads creating 1 threads.
    starting thread 0
    started thread 0 
    argc=2
    argv[0] = --unused
    argv[1] = --start_demo_name=Physics Server
    ExampleBrowserThreadFunc started
    X11 functions dynamically loaded using dlopen/dlsym OK!
    X11 functions dynamically loaded using dlopen/dlsym OK!
    Creating context
    Created GL 3.3 context
    Direct GLX rendering context obtained
    Making context current
    GL_VENDOR=NVIDIA Corporation
    GL_RENDERER=NVIDIA GeForce RTX 2080 Ti/PCIe/SSE2
    GL_VERSION=3.3.0 NVIDIA 470.42.01
    GL_SHADING_LANGUAGE_VERSION=3.30 NVIDIA via Cg compiler
    pthread_getconcurrency()=0
    Version = 3.3.0 NVIDIA 470.42.01
    Vendor = NVIDIA Corporation
    Renderer = NVIDIA GeForce RTX 2080 Ti/PCIe/SSE2
    b3Printf: Selected demo: Physics Server
    startThreads creating 1 threads.
    starting thread 0
    started thread 0 
    MotionThreadFunc thread started
    ven = NVIDIA Corporation
    ven = NVIDIA Corporation
    /home/nir1tv/projects/GA-DDPG/env/models
    >>>> target name: 061_foam_brick
    ==== loaded scene: scene_0 target: 006_mustard_bottle idx: 5 init joint
    Traceback (most recent call last):
      File "/home/nir1tv/miniconda3/envs/gaddpg/lib/python3.6/runpy.py", line 193, in _run_module_as_main
        "__main__", mod_spec)
      File "/home/nir1tv/miniconda3/envs/gaddpg/lib/python3.6/runpy.py", line 85, in _run_code
        exec(code, run_globals)
      File "/home/nir1tv/projects/GA-DDPG/core/train_test_offline.py", line 387, in <module>
        test(run_iter=run_iter)
      File "/home/nir1tv/projects/GA-DDPG/core/train_test_offline.py", line 230, in test
        action, _, _, aux_pred = agent.select_action(state, vis=False, remain_timestep=remain_timestep )
      File "/home/nir1tv/miniconda3/envs/gaddpg/lib/python3.6/site-packages/torch/autograd/grad_mode.py", line 49, in decorate_no_grad
        return func(*args, **kwargs)
      File "/home/nir1tv/projects/GA-DDPG/core/agent.py", line 113, in select_action
        train=False,
      File "/home/nir1tv/projects/GA-DDPG/core/ddpg.py", line 54, in extract_feature
        train=train)
      File "/home/nir1tv/projects/GA-DDPG/core/agent.py", line 77, in unpack_batch
        train=train,
      File "/home/nir1tv/miniconda3/envs/gaddpg/lib/python3.6/site-packages/torch/nn/modules/module.py", line 532, in __call__
        result = self.forward(*input, **kwargs)
      File "/home/nir1tv/miniconda3/envs/gaddpg/lib/python3.6/site-packages/torch/nn/parallel/data_parallel.py", line 152, in forward
        outputs = self.parallel_apply(replicas, inputs, kwargs)
      File "/home/nir1tv/miniconda3/envs/gaddpg/lib/python3.6/site-packages/torch/nn/parallel/data_parallel.py", line 162, in parallel_apply
        return parallel_apply(replicas, inputs, kwargs, self.device_ids[:len(replicas)])
      File "/home/nir1tv/miniconda3/envs/gaddpg/lib/python3.6/site-packages/torch/nn/parallel/parallel_apply.py", line 85, in parallel_apply
        output.reraise()
      File "/home/nir1tv/miniconda3/envs/gaddpg/lib/python3.6/site-packages/torch/_utils.py", line 394, in reraise
        raise self.exc_type(msg)
    TypeError: Caught TypeError in replica 1 on device 1.
    Original Traceback (most recent call last):
      File "/home/nir1tv/miniconda3/envs/gaddpg/lib/python3.6/site-packages/torch/nn/parallel/parallel_apply.py", line 60, in _worker
        output = module(*input, **kwargs)
      File "/home/nir1tv/miniconda3/envs/gaddpg/lib/python3.6/site-packages/torch/nn/modules/module.py", line 532, in __call__
        result = self.forward(*input, **kwargs)
    TypeError: forward() missing 1 required positional argument: 'pc'
    
    numActiveThreads = 0
    stopping threads
    Thread with taskId 0 exiting
    Thread TERMINATED
    destroy semaphore
    semaphore destroyed
    destroy main semaphore
    main semaphore destroyed
    finished
    numActiveThreads = 0
    btShutDownExampleBrowser stopping threads
    destroy semaphore
    semaphore destroyed
    Thread with taskId 0 exiting
    Thread TERMINATED
    destroy main semaphore
    main semaphore destroyed
    
    opened by ronen85 1
Owner
Lirui Wang
MIT CSAIL Ph.D. Student. Previous UWCSE and NVIDIA.
Lirui Wang
Baseline model for "GraspNet-1Billion: A Large-Scale Benchmark for General Object Grasping" (CVPR 2020)

GraspNet Baseline Baseline model for "GraspNet-1Billion: A Large-Scale Benchmark for General Object Grasping" (CVPR 2020). [paper] [dataset] [API] [do

GraspNet 209 Dec 29, 2022
[ICRA 2022] CaTGrasp: Learning Category-Level Task-Relevant Grasping in Clutter from Simulation

This is the official implementation of our paper: Bowen Wen, Wenzhao Lian, Kostas Bekris, and Stefan Schaal. "CaTGrasp: Learning Category-Level Task-R

Bowen Wen 199 Jan 4, 2023
Deep Reinforcement Learning by using an on-policy adaptation of Maximum a Posteriori Policy Optimization (MPO)

V-MPO Simple code to demonstrate Deep Reinforcement Learning by using an on-policy adaptation of Maximum a Posteriori Policy Optimization (MPO) in Pyt

Nugroho Dewantoro 9 Jun 6, 2022
This project is the official implementation of our accepted ICLR 2021 paper BiPointNet: Binary Neural Network for Point Clouds.

BiPointNet: Binary Neural Network for Point Clouds Created by Haotong Qin, Zhongang Cai, Mingyuan Zhang, Yifu Ding, Haiyu Zhao, Shuai Yi, Xianglong Li

Haotong Qin 59 Dec 17, 2022
(CVPR 2021) PAConv: Position Adaptive Convolution with Dynamic Kernel Assembling on Point Clouds

PAConv: Position Adaptive Convolution with Dynamic Kernel Assembling on Point Clouds by Mutian Xu*, Runyu Ding*, Hengshuang Zhao, and Xiaojuan Qi. Int

CVMI Lab 228 Dec 25, 2022
《A-CNN: Annularly Convolutional Neural Networks on Point Clouds》(2019)

A-CNN: Annularly Convolutional Neural Networks on Point Clouds Created by Artem Komarichev, Zichun Zhong, Jing Hua from Department of Computer Science

Artёm Komarichev 44 Feb 24, 2022
Official PyTorch implementation of CAPTRA: CAtegory-level Pose Tracking for Rigid and Articulated Objects from Point Clouds

CAPTRA: CAtegory-level Pose Tracking for Rigid and Articulated Objects from Point Clouds Introduction This is the official PyTorch implementation of o

Yijia Weng 96 Dec 7, 2022
(CVPR 2021) Back-tracing Representative Points for Voting-based 3D Object Detection in Point Clouds

BRNet Introduction This is a release of the code of our paper Back-tracing Representative Points for Voting-based 3D Object Detection in Point Clouds,

null 86 Oct 5, 2022
Self-Supervised Learning for Domain Adaptation on Point-Clouds

Self-Supervised Learning for Domain Adaptation on Point-Clouds Introduction Self-supervised learning (SSL) allows to learn useful representations from

Idan Achituve 66 Dec 20, 2022
Rendering Point Clouds with Compute Shaders

Compute Shader Based Point Cloud Rendering This repository contains the source code to our techreport: Rendering Point Clouds with Compute Shaders and

Markus Schütz 460 Jan 5, 2023
This is a package for LiDARTag, described in paper: LiDARTag: A Real-Time Fiducial Tag System for Point Clouds

LiDARTag Overview This is a package for LiDARTag, described in paper: LiDARTag: A Real-Time Fiducial Tag System for Point Clouds (PDF)(arXiv). This wo

University of Michigan Dynamic Legged Locomotion Robotics Lab 159 Dec 21, 2022
Uncertainty-aware Semantic Segmentation of LiDAR Point Clouds for Autonomous Driving

SalsaNext: Fast, Uncertainty-aware Semantic Segmentation of LiDAR Point Clouds for Autonomous Driving Abstract In this paper, we introduce SalsaNext f

null 308 Jan 4, 2023
Code for "CloudAAE: Learning 6D Object Pose Regression with On-line Data Synthesis on Point Clouds" @ICRA2021

CloudAAE This is an tensorflow implementation of "CloudAAE: Learning 6D Object Pose Regression with On-line Data Synthesis on Point Clouds" Files log:

Gee 35 Nov 14, 2022
This repo is a PyTorch implementation for Paper "Unsupervised Learning for Cuboid Shape Abstraction via Joint Segmentation from Point Clouds"

Unsupervised Learning for Cuboid Shape Abstraction via Joint Segmentation from Point Clouds This repository is a PyTorch implementation for paper: Uns

Kaizhi Yang 42 Dec 9, 2022
Unsupervised 3D Human Mesh Recovery from Noisy Point Clouds

Unsupervised 3D Human Mesh Recovery from Noisy Point Clouds Xinxin Zuo, Sen Wang, Minglun Gong, Li Cheng Prerequisites We have tested the code on Ubun

null 41 Dec 12, 2022
Fog Simulation on Real LiDAR Point Clouds for 3D Object Detection in Adverse Weather

LiDAR fog simulation Created by Martin Hahner at the Computer Vision Lab of ETH Zurich. This is the official code release of the paper Fog Simulation

Martin Hahner 110 Dec 30, 2022
Pip-package for trajectory benchmarking from "Be your own Benchmark: No-Reference Trajectory Metric on Registered Point Clouds", ECMR'21

Map Metrics for Trajectory Quality Map metrics toolkit provides a set of metrics to quantitatively evaluate trajectory quality via estimating consiste

Mobile Robotics Lab. at Skoltech 31 Oct 28, 2022
The official implementation of ICCV paper "Box-Aware Feature Enhancement for Single Object Tracking on Point Clouds".

Box-Aware Tracker (BAT) Pytorch-Lightning implementation of the Box-Aware Tracker. Box-Aware Feature Enhancement for Single Object Tracking on Point C

Kangel Zenn 5 Mar 26, 2022
Deep Learning for 3D Point Clouds: A Survey (IEEE TPAMI, 2020)

??Deep Learning for 3D Point Clouds (IEEE TPAMI, 2020)

Qingyong 1.4k Jan 8, 2023