{"id":15372471,"url":"https://github.com/wkentaro/safepicking","last_synced_at":"2025-04-15T11:33:22.861Z","repository":{"id":66065897,"uuid":"457844018","full_name":"wkentaro/safepicking","owner":"wkentaro","description":"SafePicking: Learning Safe Object Extraction via Object-Level Mapping, ICRA 2022","archived":false,"fork":false,"pushed_at":"2022-03-16T12:29:01.000Z","size":40402,"stargazers_count":53,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-11-01T10:35:11.607Z","etag":null,"topics":["artificial-intelligence","computer-vision","deep-learning","machine-learning","reinforcement-learning","robotics","ros"],"latest_commit_sha":null,"homepage":"https://safepicking.wkentaro.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wkentaro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-10T15:49:21.000Z","updated_at":"2024-07-17T00:53:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"ffff06c1-fd99-42f1-bcf3-623d4f1e1539","html_url":"https://github.com/wkentaro/safepicking","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wkentaro%2Fsafepicking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wkentaro%2Fsafepicking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wkentaro%2Fsafepicking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wkentaro%2Fsafepicking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wkentaro","download_url":"https://codeload.github.com/wkentaro/safepicking/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223673050,"owners_count":17183618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","computer-vision","deep-learning","machine-learning","reinforcement-learning","robotics","ros"],"created_at":"2024-10-01T13:51:14.069Z","updated_at":"2024-11-08T11:03:26.968Z","avatar_url":"https://github.com/wkentaro.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eSafePicking\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003eLearning Safe Object Extraction via Object-Level Mapping\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://wkentaro.com\"\u003eKentaro Wada\u003c/a\u003e,\n  \u003ca href=\"https://stepjam.github.io\"\u003eStephen James\u003c/a\u003e,\n  \u003ca href=\"https://www.doc.ic.ac.uk/~ajd/\"\u003eAndrew J. Davison\u003c/a\u003e\n  \u003cbr/\u003e\n  \u003ca href=\"https://www.imperial.ac.uk/dyson-robotics-lab/\"\u003eDyson Robotics Laboratory\u003c/a\u003e,\n  \u003ca href=\"https://www.imperial.ac.uk/\"\u003eImperial College London\u003c/a\u003e\n  \u003cbr/\u003e\n  IEEE International Conference on Robotics and Automation (ICRA), 2022\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#installation\"\u003e\u003cb\u003eInstallation\u003c/b\u003e\u003c/a\u003e |\n  \u003ca href=\"#usage\"\u003e\u003cb\u003eUsage\u003c/b\u003e\u003c/a\u003e |\n  \u003ca href=\"https://arxiv.org/abs/2202.05832\"\u003e\u003cb\u003ePaper\u003c/b\u003e\u003c/a\u003e |\n  \u003ca href=\"https://youtu.be/ejjqiBqRRKo\"\u003e\u003cb\u003eVideo\u003c/b\u003e\u003c/a\u003e |\n  \u003ca href=\"https://safepicking.wkentaro.com\"\u003e\u003cb\u003eWebpage\u003c/b\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/img/teaser_horizontal.png\" width=\"50%\"\u003e\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/img/whole_pipeline.gif\" width=\"32%\"\u003e\n  \u003cimg src=\"docs/assets/img/vs_heuristic.gif\" width=\"32%\"\u003e\n  \u003cimg src=\"docs/assets/img/real_ablation.gif\" width=\"32%\"\u003e\n\u003c/div\u003e\n\n## Installation\n\n### Python project only\n\n```bash\nmake install\n\nsource .anaconda3/bin/activate\n./checks/check_motion_planning.py\n```\n\n### ROS project\n\n- `robot-agent`: A computer with CUDA and a GPU installed for visual processing.\n- `robot-node`: A computer with a real-time OS for a Panda robot.\n\n#### @robot-agent\n\n```bash\nmake install\nsource .anaconda3/bin/activate\n\ncd ros/\nmake install\nsource devel/setup.sh\n```\n\n#### @robot-node\n\n```\ncd ros/\nsource /opt/ros/noetic/setup.sh\n\ncatkin build morefusion_panda\nrosrun morefusion_panda create_udev_rules.sh\n\ncatkin build safepicking_ros\n```\n\n## Usage\n\n### Training \u0026 Inference\n\n```bash\ncd examples/picking/\n\n# download pile files at ~/.cache/safepicking/pile_generation/\n./download_piles.py\n\n./train.py --model fusion_net --noise\n./learned.py logs/XXX/weights/YYY\n\n# use pretrained model\n./download_pretrained_models.py\n\n# inference in the test environments: ~/.cache/safepicking/pile_generation/00009000 - 00009999.pkl\n./learned.py --weight-dir logs/20210709_005731-fusion_net-noise/weights/84500 \\\n             ~/.cache/safepicking/pile_generation/00009000.pkl\n```\n\n\u003cdiv\u003e\n  \u003cimg src=\"docs/assets/img/learned_00009001.gif\" width=\"18%\"\u003e\n  \u003cimg src=\"docs/assets/img/learned_00009005.gif\" width=\"18%\"\u003e\n  \u003cimg src=\"docs/assets/img/learned_00009007.gif\" width=\"18%\"\u003e\n  \u003cimg src=\"docs/assets/img/learned_00009010.gif\" width=\"18%\"\u003e\n  \u003cimg src=\"docs/assets/img/learned_00009013.gif\" width=\"18%\"\u003e\n\u003c/div\u003e\n\n### Robotic demonstration\n\n```bash\nrobot-node  $ roslaunch safepicking_ros panda_control.launch\n\nrobot-agent $ roslaunch safepicking_ros setup.launch\nrobot-agent $ rosrun safepicking_ros safepicking_task_interface.py\n\u003e\u003e\u003e self.run([YcbObject.PITCHER])\n```\n\n\u003cimg src=\"docs/assets/img/robotic_demo.gif\" width=\"90%\"\u003e\n\n## Citation\n\n```\n@inproceedings{Wada:etal:ICRA2022a,\n  title={{SafePicking}: Learning Safe Object Extraction via Object-Level Mapping},\n  author={Kentaro Wada and Stephen James and Andrew J. Davison},\n  booktitle={IEEE International Conference on Robotics and Automation (ICRA)},\n  year={2022},\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwkentaro%2Fsafepicking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwkentaro%2Fsafepicking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwkentaro%2Fsafepicking/lists"}