{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/unidoormanip-learning-universal-door","title":"UniDoorManip: Learning Universal Door Manipulation Policy Over Large-scale and Diverse Door Manipulation Environments","arxiv_id":"2403.02604","date":"2024-03-05","proceeding":null,"authors":["Yu Li","Xiaojie Zhang","Ruihai Wu","Zilong Zhang","Yiran Geng","Hao Dong","Zhaofeng He"],"abstract":"Learning a universal manipulation policy encompassing doors with diverse categories, geometries and mechanisms, is crucial for future embodied agents to effectively work in complex and broad real-world scenarios. Due to the limited datasets and unrealistic simulation environments, previous works fail to achieve good performance across various doors. In this work, we build a novel door manipulation environment reflecting different realistic door manipulation mechanisms, and further equip this environment with a large-scale door dataset covering 6 door categories with hundreds of door bodies and handles, making up thousands of different door instances. Additionally, to better emulate real-world scenarios, we introduce a mobile robot as the agent and use the partial and occluded point cloud as the observation, which are not considered in previous works while possessing significance for real-world implementations. To learn a universal policy over diverse doors, we propose a novel framework disentangling the whole manipulation process into three stages, and integrating them by training in the reversed order of inference. Extensive experiments validate the effectiveness of our designs and demonstrate our framework's strong performance. Code, data and videos are avaible on https://unidoormanip.github.io/.","url_abs":"https://arxiv.org/abs/2403.02604v3","url_pdf":"https://arxiv.org/pdf/2403.02604v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"unidoormanip-learning-universal-door","repo_url":"https://github.com/sectionZ6/UniDoorManip","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2403.02604","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.02604"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/sectionZ6/UniDoorManip","reach":{"status":"ok"}}],"summary":{"ran":2,"unverified":5},"by_repo_kind":{"official":{"samples":7,"ran":2,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":7,"samples":[{"code_sha256_prefix":"d1cf64d217ebd894","entry":"KL","repo":"sectionZ6/UniDoorManip","repo_kind":"official","path":"multimodal/models/model_actor.py","file_url":"https://github.com/sectionZ6/UniDoorManip/blob/HEAD/multimodal/models/model_actor.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d1cf64d217ebd894"}},{"code_sha256_prefix":"e03fe18ca81c8d9f","entry":"control_ik","repo":"sectionZ6/UniDoorManip","repo_kind":"official","path":"Simulation/env/franka_slider_cabinet.py","file_url":"https://github.com/sectionZ6/UniDoorManip/blob/HEAD/Simulation/env/franka_slider_cabinet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e03fe18ca81c8d9f"}},{"code_sha256_prefix":"2b4e098add11b15f","entry":"orientation_error","repo":"sectionZ6/UniDoorManip","repo_kind":"official","path":"Simulation/env/franka_slider_cabinet.py","file_url":"https://github.com/sectionZ6/UniDoorManip/blob/HEAD/Simulation/env/franka_slider_cabinet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2b4e098add11b15f"}},{"code_sha256_prefix":"52091406173fc9b7","entry":"parse_controller","repo":"sectionZ6/UniDoorManip","repo_kind":"official","path":"Simulation/parse.py","file_url":"https://github.com/sectionZ6/UniDoorManip/blob/HEAD/Simulation/parse.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"52091406173fc9b7"}},{"code_sha256_prefix":"b1e6589d9ac89fdf","entry":"parse_manipulation","repo":"sectionZ6/UniDoorManip","repo_kind":"official","path":"Simulation/parse.py","file_url":"https://github.com/sectionZ6/UniDoorManip/blob/HEAD/Simulation/parse.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b1e6589d9ac89fdf"}},{"code_sha256_prefix":"8e41ab3e09238799","entry":"quat_axis","repo":"sectionZ6/UniDoorManip","repo_kind":"official","path":"Simulation/env/franka_slider_cabinet.py","file_url":"https://github.com/sectionZ6/UniDoorManip/blob/HEAD/Simulation/env/franka_slider_cabinet.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8e41ab3e09238799"}},{"code_sha256_prefix":"b5039d38e64a8099","entry":"score_forward","repo":"sectionZ6/UniDoorManip","repo_kind":"official","path":"multimodal/train_score.py","file_url":"https://github.com/sectionZ6/UniDoorManip/blob/HEAD/multimodal/train_score.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b5039d38e64a8099"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}