{"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/towards-practical-multi-object-manipulation","title":"Towards Practical Multi-Object Manipulation using Relational Reinforcement Learning","arxiv_id":"1912.11032","date":"2019-12-23","proceeding":null,"authors":["Richard Li","Allan Jabri","Trevor Darrell","Pulkit Agrawal"],"abstract":"Learning robotic manipulation tasks using reinforcement learning with sparse rewards is currently impractical due to the outrageous data requirements. Many practical tasks require manipulation of multiple objects, and the complexity of such tasks increases with the number of objects. Learning from a curriculum of increasingly complex tasks appears to be a natural solution, but unfortunately, does not work for many scenarios. We hypothesize that the inability of the state-of-the-art algorithms to effectively utilize a task curriculum stems from the absence of inductive biases for transferring knowledge from simpler to complex tasks. We show that graph-based relational architectures overcome this limitation and enable learning of complex tasks when provided with a simple curriculum of tasks with increasing numbers of objects. We demonstrate the utility of our framework on a simulated block stacking task. Starting from scratch, our agent learns to stack six blocks into a tower. Despite using step-wise sparse rewards, our method is orders of magnitude more data-efficient and outperforms the existing state-of-the-art method that utilizes human demonstrations. Furthermore, the learned policy exhibits zero-shot generalization, successfully stacking blocks into taller towers and previously unseen configurations such as pyramids, without any further training.","url_abs":"https://arxiv.org/abs/1912.11032v1","url_pdf":"https://arxiv.org/pdf/1912.11032v1.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":"towards-practical-multi-object-manipulation","repo_url":"https://github.com/richardrl/rlkit-relational","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"object","task_name":"Object"},{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"},{"task_slug":"zero-shot-generalization","task_name":"Zero-shot Generalization"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1912.11032","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1912.11032"}},"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/richardrl/rlkit-relational","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":5,"ran_honours":1,"unverified":3},"by_repo_kind":{"listed":{"samples":9,"ran":6,"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":"93d28ca67303e04b","entry":"clip_magnitude","repo":"richardrl/rlkit-relational","repo_kind":"listed","path":"rlkit/pythonplusplus.py","file_url":"https://github.com/richardrl/rlkit-relational/blob/HEAD/rlkit/pythonplusplus.py","link_basis":"harvester_set","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":"93d28ca67303e04b"}},{"code_sha256_prefix":"f395bfda2e4813d7","entry":"create_stats_ordered_dict","repo":"richardrl/rlkit-relational","repo_kind":"listed","path":"rlkit/core/eval_util.py","file_url":"https://github.com/richardrl/rlkit-relational/blob/HEAD/rlkit/core/eval_util.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":"f395bfda2e4813d7"}},{"code_sha256_prefix":"a5d10a0b704c8db7","entry":"get_average_returns","repo":"richardrl/rlkit-relational","repo_kind":"listed","path":"rlkit/core/eval_util.py","file_url":"https://github.com/richardrl/rlkit-relational/blob/HEAD/rlkit/core/eval_util.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":"a5d10a0b704c8db7"}},{"code_sha256_prefix":"9910e2fc297f8665","entry":"identity","repo":"richardrl/rlkit-relational","repo_kind":"listed","path":"rlkit/pythonplusplus.py","file_url":"https://github.com/richardrl/rlkit-relational/blob/HEAD/rlkit/pythonplusplus.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9910e2fc297f8665"}},{"code_sha256_prefix":"4138766e854db009","entry":"is_numeric","repo":"richardrl/rlkit-relational","repo_kind":"listed","path":"rlkit/pythonplusplus.py","file_url":"https://github.com/richardrl/rlkit-relational/blob/HEAD/rlkit/pythonplusplus.py","link_basis":"harvester_set","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":"4138766e854db009"}},{"code_sha256_prefix":"5cb0c55f58279f59","entry":"simple_separated_format","repo":"richardrl/rlkit-relational","repo_kind":"listed","path":"rlkit/core/tabulate.py","file_url":"https://github.com/richardrl/rlkit-relational/blob/HEAD/rlkit/core/tabulate.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":"5cb0c55f58279f59"}},{"code_sha256_prefix":"3b6d4f75ccbcf9d4","entry":"get_generic_path_information","repo":"richardrl/rlkit-relational","repo_kind":"listed","path":"rlkit/core/eval_util.py","file_url":"https://github.com/richardrl/rlkit-relational/blob/HEAD/rlkit/core/eval_util.py","link_basis":"harvester_set","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":"3b6d4f75ccbcf9d4"}},{"code_sha256_prefix":"06b6c0187c9c735e","entry":"get_masks","repo":"richardrl/rlkit-relational","repo_kind":"listed","path":"rlkit/torch/relational/relational_util.py","file_url":"https://github.com/richardrl/rlkit-relational/blob/HEAD/rlkit/torch/relational/relational_util.py","link_basis":"harvester_set","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":"06b6c0187c9c735e"}},{"code_sha256_prefix":"34aba5ac02fe57b5","entry":"invert_fetch_preprocessing","repo":"richardrl/rlkit-relational","repo_kind":"listed","path":"rlkit/torch/relational/relational_util.py","file_url":"https://github.com/richardrl/rlkit-relational/blob/HEAD/rlkit/torch/relational/relational_util.py","link_basis":"harvester_set","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":"34aba5ac02fe57b5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}