{"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/fast-kinodynamic-planning-on-the-constraint","title":"Fast Kinodynamic Planning on the Constraint Manifold with Deep Neural Networks","arxiv_id":"2301.04330","date":"2023-01-11","proceeding":null,"authors":["Piotr Kicki","Puze Liu","Davide Tateo","Haitham Bou-Ammar","Krzysztof Walas","Piotr Skrzypczyński","Jan Peters"],"abstract":"Motion planning is a mature area of research in robotics with many well-established methods based on optimization or sampling the state space, suitable for solving kinematic motion planning. However, when dynamic motions under constraints are needed and computation time is limited, fast kinodynamic planning on the constraint manifold is indispensable. In recent years, learning-based solutions have become alternatives to classical approaches, but they still lack comprehensive handling of complex constraints, such as planning on a lower-dimensional manifold of the task space while considering the robot's dynamics. This paper introduces a novel learning-to-plan framework that exploits the concept of constraint manifold, including dynamics, and neural planning methods. Our approach generates plans satisfying an arbitrary set of constraints and computes them in a short constant time, namely the inference time of a neural network. This allows the robot to plan and replan reactively, making our approach suitable for dynamic environments. We validate our approach on two simulated tasks and in a demanding real-world scenario, where we use a Kuka LBR Iiwa 14 robotic arm to perform the hitting movement in robotic Air Hockey.","url_abs":"https://arxiv.org/abs/2301.04330v2","url_pdf":"https://arxiv.org/pdf/2301.04330v2.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":"fast-kinodynamic-planning-on-the-constraint","repo_url":"https://github.com/pkicki/cnp-b","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"motion-planning","task_name":"Motion Planning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2301.04330","atlas_url":"https://app.syntology.ai/?focus=2301.04330","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2301.04330"}},"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/pkicki/cnp-b","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":6,"unverified":2},"by_repo_kind":{"official":{"samples":8,"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":"9653ec67ee81d70a","entry":"air_hockey_puck","repo":"pkicki/cnp-b","repo_kind":"official","path":"losses/constraint_functions.py","file_url":"https://github.com/pkicki/cnp-b/blob/HEAD/losses/constraint_functions.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":"9653ec67ee81d70a"}},{"code_sha256_prefix":"5e178c7f41639d65","entry":"huber","repo":"pkicki/cnp-b","repo_kind":"official","path":"losses/utils.py","file_url":"https://github.com/pkicki/cnp-b/blob/HEAD/losses/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":"5e178c7f41639d65"}},{"code_sha256_prefix":"b433888057f05208","entry":"mean","repo":"pkicki/cnp-b","repo_kind":"official","path":"plots_and_stats/plot_air_hockey_hitting_real.py","file_url":"https://github.com/pkicki/cnp-b/blob/HEAD/plots_and_stats/plot_air_hockey_hitting_real.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":"b433888057f05208"}},{"code_sha256_prefix":"a8ae03c9567b7ec5","entry":"mean","repo":"pkicki/cnp-b","repo_kind":"official","path":"plots_and_stats/plot_air_hockey_hitting_simulation.py","file_url":"https://github.com/pkicki/cnp-b/blob/HEAD/plots_and_stats/plot_air_hockey_hitting_simulation.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":"a8ae03c9567b7ec5"}},{"code_sha256_prefix":"3228a3e8730d5ce2","entry":"read_results","repo":"pkicki/cnp-b","repo_kind":"official","path":"plots_and_stats/plot_air_hockey_hitting_simulation.py","file_url":"https://github.com/pkicki/cnp-b/blob/HEAD/plots_and_stats/plot_air_hockey_hitting_simulation.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":"3228a3e8730d5ce2"}},{"code_sha256_prefix":"929cdadf576c534c","entry":"scoring_ratio","repo":"pkicki/cnp-b","repo_kind":"official","path":"plots_and_stats/plot_air_hockey_hitting_real.py","file_url":"https://github.com/pkicki/cnp-b/blob/HEAD/plots_and_stats/plot_air_hockey_hitting_real.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":"929cdadf576c534c"}},{"code_sha256_prefix":"149fe2c1473bd4d1","entry":"model_inference","repo":"pkicki/cnp-b","repo_kind":"official","path":"utils/model.py","file_url":"https://github.com/pkicki/cnp-b/blob/HEAD/utils/model.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":"149fe2c1473bd4d1"}},{"code_sha256_prefix":"608460184c3c82d0","entry":"plot_scatter","repo":"pkicki/cnp-b","repo_kind":"official","path":"plots_and_stats/plot_air_hockey_hitting_real.py","file_url":"https://github.com/pkicki/cnp-b/blob/HEAD/plots_and_stats/plot_air_hockey_hitting_real.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":"608460184c3c82d0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}