{"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/fleet-policy-learning-via-weight-merging-and","title":"Robot Fleet Learning via Policy Merging","arxiv_id":"2310.01362","date":"2023-10-02","proceeding":null,"authors":["Lirui Wang","Kaiqing Zhang","Allan Zhou","Max Simchowitz","Russ Tedrake"],"abstract":"Fleets of robots ingest massive amounts of heterogeneous streaming data silos generated by interacting with their environments, far more than what can be stored or transmitted with ease. At the same time, teams of robots should co-acquire diverse skills through their heterogeneous experiences in varied settings. How can we enable such fleet-level learning without having to transmit or centralize fleet-scale data? In this paper, we investigate policy merging (PoMe) from such distributed heterogeneous datasets as a potential solution. To efficiently merge policies in the fleet setting, we propose FLEET-MERGE, an instantiation of distributed learning that accounts for the permutation invariance that arises when parameterizing the control policies with recurrent neural networks. We show that FLEET-MERGE consolidates the behavior of policies trained on 50 tasks in the Meta-World environment, with good performance on nearly all training tasks at test time. Moreover, we introduce a novel robotic tool-use benchmark, FLEET-TOOLS, for fleet policy learning in compositional and contact-rich robot manipulation tasks, to validate the efficacy of FLEET-MERGE on the benchmark.","url_abs":"https://arxiv.org/abs/2310.01362v3","url_pdf":"https://arxiv.org/pdf/2310.01362v3.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":"abstracts"},"code_links":[{"paper_slug":"fleet-policy-learning-via-weight-merging-and","repo_url":"https://github.com/liruiw/fleet-tools","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"robot-manipulation","task_name":"Robot Manipulation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2310.01362","atlas_url":"https://app.syntology.ai/?focus=2310.01362","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.01362"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/liruiw/fleet-tools","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":8,"unverified":4},"by_repo_kind":{"official":{"samples":12,"ran":8,"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":0,"samples":[{"code_sha256_prefix":"c58d54407128ffe2","entry":"inv_lookat","repo":"liruiw/fleet-tools","repo_kind":"official","path":"core/utils/geometry.py","file_url":"https://github.com/liruiw/fleet-tools/blob/HEAD/core/utils/geometry.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c58d54407128ffe2"}},{"code_sha256_prefix":"092df54141d45dcb","entry":"make_empty_dofset","repo":"liruiw/fleet-tools","repo_kind":"official","path":"core/utils/spatialstiffness_controller.py","file_url":"https://github.com/liruiw/fleet-tools/blob/HEAD/core/utils/spatialstiffness_controller.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"092df54141d45dcb"}},{"code_sha256_prefix":"0ac6280f136b8080","entry":"normalize","repo":"liruiw/fleet-tools","repo_kind":"official","path":"core/utils/geometry.py","file_url":"https://github.com/liruiw/fleet-tools/blob/HEAD/core/utils/geometry.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0ac6280f136b8080"}},{"code_sha256_prefix":"b0cc76719ba6bda3","entry":"parse_buttons","repo":"liruiw/fleet-tools","repo_kind":"official","path":"core/utils/oculus_reader.py","file_url":"https://github.com/liruiw/fleet-tools/blob/HEAD/core/utils/oculus_reader.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b0cc76719ba6bda3"}},{"code_sha256_prefix":"4a6452e0b6026f5d","entry":"parse_task","repo":"liruiw/fleet-tools","repo_kind":"official","path":"core/experiment.py","file_url":"https://github.com/liruiw/fleet-tools/blob/HEAD/core/experiment.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4a6452e0b6026f5d"}},{"code_sha256_prefix":"6a8cef50eba70ad0","entry":"quat_mul","repo":"liruiw/fleet-tools","repo_kind":"official","path":"core/utils/torch_utils.py","file_url":"https://github.com/liruiw/fleet-tools/blob/HEAD/core/utils/torch_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6a8cef50eba70ad0"}},{"code_sha256_prefix":"c2983aaf729c9cd7","entry":"rotZ","repo":"liruiw/fleet-tools","repo_kind":"official","path":"core/utils/geometry.py","file_url":"https://github.com/liruiw/fleet-tools/blob/HEAD/core/utils/geometry.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c2983aaf729c9cd7"}},{"code_sha256_prefix":"c473618f59887d59","entry":"to_torch","repo":"liruiw/fleet-tools","repo_kind":"official","path":"core/utils/torch_utils.py","file_url":"https://github.com/liruiw/fleet-tools/blob/HEAD/core/utils/torch_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c473618f59887d59"}},{"code_sha256_prefix":"3432463b949e1ef9","entry":"dense_sample_traj_times","repo":"liruiw/fleet-tools","repo_kind":"official","path":"core/expert/base_expert.py","file_url":"https://github.com/liruiw/fleet-tools/blob/HEAD/core/expert/base_expert.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3432463b949e1ef9"}},{"code_sha256_prefix":"88de023c40c564f9","entry":"get_keyboard_input","repo":"liruiw/fleet-tools","repo_kind":"official","path":"core/utils/teleop_utils.py","file_url":"https://github.com/liruiw/fleet-tools/blob/HEAD/core/utils/teleop_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"88de023c40c564f9"}},{"code_sha256_prefix":"11a995a61162212f","entry":"get_mouse_input","repo":"liruiw/fleet-tools","repo_kind":"official","path":"core/utils/teleop_utils.py","file_url":"https://github.com/liruiw/fleet-tools/blob/HEAD/core/utils/teleop_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"11a995a61162212f"}},{"code_sha256_prefix":"14727c675add3b59","entry":"rotation_matrix_to_axang3","repo":"liruiw/fleet-tools","repo_kind":"official","path":"core/utils/spatialstiffness_controller.py","file_url":"https://github.com/liruiw/fleet-tools/blob/HEAD/core/utils/spatialstiffness_controller.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"14727c675add3b59"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}