{"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/learning-from-sparse-demonstrations","title":"Learning from Sparse Demonstrations","arxiv_id":"2008.02159","date":"2020-08-05","proceeding":null,"authors":["Wanxin Jin","Todd D. Murphey","Dana Kulić","Neta Ezer","Shaoshuai Mou"],"abstract":"This paper develops the method of Continuous Pontryagin Differentiable Programming (Continuous PDP), which enables a robot to learn an objective function from a few sparsely demonstrated keyframes. The keyframes, labeled with some time stamps, are the desired task-space outputs, which a robot is expected to follow sequentially. The time stamps of the keyframes can be different from the time of the robot's actual execution. The method jointly finds an objective function and a time-warping function such that the robot's resulting trajectory sequentially follows the keyframes with minimal discrepancy loss. The Continuous PDP minimizes the discrepancy loss using projected gradient descent, by efficiently solving the gradient of the robot trajectory with respect to the unknown parameters. The method is first evaluated on a simulated robot arm and then applied to a 6-DoF quadrotor to learn an objective function for motion planning in unmodeled environments. The results show the efficiency of the method, its ability to handle time misalignment between keyframes and robot execution, and the generalization of objective learning into unseen motion conditions.","url_abs":"https://arxiv.org/abs/2008.02159v3","url_pdf":"https://arxiv.org/pdf/2008.02159v3.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":"learning-from-sparse-demonstrations","repo_url":"https://github.com/wanxinjin/Learning-from-Sparse-Demonstrations","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"learning-from-sparse-demonstrations","repo_url":"https://github.com/wanxinjin/Pontryagin-Differentiable-Programming","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"motion-planning","task_name":"Motion Planning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2008.02159","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2008.02159"}},"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/wanxinjin/Pontryagin-Differentiable-Programming","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/wanxinjin/Learning-from-Sparse-Demonstrations","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":3},"by_repo_kind":{"official":{"samples":3,"ran":0,"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":"33672b1c9960eea1","entry":"normalizeVec","repo":"wanxinjin/Learning-from-Sparse-Demonstrations","repo_kind":"official","path":"JinEnv/JinEnv.py","file_url":"https://github.com/wanxinjin/Learning-from-Sparse-Demonstrations/blob/HEAD/JinEnv/JinEnv.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":"33672b1c9960eea1"}},{"code_sha256_prefix":"1dd319534d0b5c90","entry":"quaternion_conj","repo":"wanxinjin/Learning-from-Sparse-Demonstrations","repo_kind":"official","path":"JinEnv/JinEnv.py","file_url":"https://github.com/wanxinjin/Learning-from-Sparse-Demonstrations/blob/HEAD/JinEnv/JinEnv.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":"1dd319534d0b5c90"}},{"code_sha256_prefix":"56af313ba169da84","entry":"toQuaternion","repo":"wanxinjin/Learning-from-Sparse-Demonstrations","repo_kind":"official","path":"JinEnv/JinEnv.py","file_url":"https://github.com/wanxinjin/Learning-from-Sparse-Demonstrations/blob/HEAD/JinEnv/JinEnv.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":"56af313ba169da84"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}