{"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/an-experimental-study-of-model-based-control","title":"An Experimental Study of Model-based Control for Planar Handed Shearing Auxetics Robots","arxiv_id":"2310.13889","date":"2023-10-21","proceeding":null,"authors":["Maximilian Stölzle","Daniela Rus","Cosimo Della Santina"],"abstract":"Parallel robots based on Handed Shearing Auxetics (HSAs) can implement complex motions using standard electric motors while maintaining the complete softness of the structure, thanks to specifically designed architected metamaterials. However, their control is especially challenging due to varying and coupled stiffness, shearing, non-affine terms in the actuation model, and underactuation. In this paper, we present a model-based control strategy for planar HSA robots enabling regulation in task space. We formulate equations of motion, show that they admit a collocated form, and design a P-satI-D feedback controller with compensation for elastic and gravitational forces. We experimentally identify and verify the proposed control strategy in closed loop.","url_abs":"https://arxiv.org/abs/2310.13889v3","url_pdf":"https://arxiv.org/pdf/2310.13889v3.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":"an-experimental-study-of-model-based-control","repo_url":"https://github.com/tud-cor-sr/hsa-planar-control","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok"}},{"paper_slug":"an-experimental-study-of-model-based-control","repo_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"an-experimental-study-of-model-based-control","repo_url":"https://github.com/tud-cor-sr/ros2-hsa","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok"}},{"paper_slug":"an-experimental-study-of-model-based-control","repo_url":"https://github.com/tud-phi/hsa-planar-control","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok"}},{"paper_slug":"an-experimental-study-of-model-based-control","repo_url":"https://github.com/tud-phi/jax-soft-robot-modelling","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"an-experimental-study-of-model-based-control","repo_url":"https://github.com/tud-phi/ros2-hsa","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"jax","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2310.13889","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.13889"}},"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/tud-cor-sr/ros2-hsa","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tud-phi/hsa-planar-control","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tud-phi/ros2-hsa","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tud-phi/jax-soft-robot-modelling","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tud-cor-sr/hsa-planar-control","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":18,"unverified":7},"by_repo_kind":{"official":{"samples":25,"ran":18,"repositories":2}},"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":10,"samples":[{"code_sha256_prefix":"2d8aeaad9425b8f5","entry":"blk_diag","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/math_utils.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/math_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":"2d8aeaad9425b8f5"}},{"code_sha256_prefix":"ae4d5bd1cdf49d35","entry":"check_integrability_assumption","repo":"tud-cor-sr/hsa-planar-control","repo_kind":"official","path":"hsa_planar_control/collocated_form.py","file_url":"https://github.com/tud-cor-sr/hsa-planar-control/blob/HEAD/hsa_planar_control/collocated_form.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":"ae4d5bd1cdf49d35"}},{"code_sha256_prefix":"672af97f688d4ab9","entry":"compute_coriolis_matrix","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/symbolic_derivation/symbolic_utils.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/symbolic_derivation/symbolic_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":"672af97f688d4ab9"}},{"code_sha256_prefix":"b1d75bc1665b3ff7","entry":"compute_dAdt","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/symbolic_derivation/symbolic_utils.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/symbolic_derivation/symbolic_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":"b1d75bc1665b3ff7"}},{"code_sha256_prefix":"2ac773580e302c31","entry":"constant_control","repo":"tud-cor-sr/hsa-planar-control","repo_kind":"official","path":"hsa_planar_control/controllers/constant_controller.py","file_url":"https://github.com/tud-cor-sr/hsa-planar-control/blob/HEAD/hsa_planar_control/controllers/constant_controller.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":"2ac773580e302c31"}},{"code_sha256_prefix":"56b8c31ae484cc12","entry":"forward_dynamics","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/systems/euler_lagrangian.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/systems/euler_lagrangian.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":"56b8c31ae484cc12"}},{"code_sha256_prefix":"fb44fc5b3fdfef6b","entry":"generate_base_params_for_epu","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/parameters/hsa_params.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/parameters/hsa_params.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":"fb44fc5b3fdfef6b"}},{"code_sha256_prefix":"46e8c2639942d072","entry":"generate_base_params_for_fpu","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/parameters/hsa_params.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/parameters/hsa_params.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":"46e8c2639942d072"}},{"code_sha256_prefix":"32baa8bb60db0593","entry":"generate_common_base_params","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/parameters/hsa_params.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/parameters/hsa_params.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":"32baa8bb60db0593"}},{"code_sha256_prefix":"50ceb3339058ee9a","entry":"get_operational_workspace_boundaries","repo":"tud-cor-sr/hsa-planar-control","repo_kind":"official","path":"hsa_planar_control/operational_workspace.py","file_url":"https://github.com/tud-cor-sr/hsa-planar-control/blob/HEAD/hsa_planar_control/operational_workspace.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":"50ceb3339058ee9a"}},{"code_sha256_prefix":"7069a7d377fcb3f6","entry":"linearize_actuation","repo":"tud-cor-sr/hsa-planar-control","repo_kind":"official","path":"hsa_planar_control/controllers/generalized_torques_to_actuation.py","file_url":"https://github.com/tud-cor-sr/hsa-planar-control/blob/HEAD/hsa_planar_control/controllers/generalized_torques_to_actuation.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":"7069a7d377fcb3f6"}},{"code_sha256_prefix":"c71db9b4f5e687b3","entry":"map_generalized_torques_to_actuation_with_linearized_model","repo":"tud-cor-sr/hsa-planar-control","repo_kind":"official","path":"hsa_planar_control/controllers/generalized_torques_to_actuation.py","file_url":"https://github.com/tud-cor-sr/hsa-planar-control/blob/HEAD/hsa_planar_control/controllers/generalized_torques_to_actuation.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":"c71db9b4f5e687b3"}},{"code_sha256_prefix":"9b835ce6abdf71b9","entry":"map_generalized_torques_to_actuation_with_nonlinear_optimization","repo":"tud-cor-sr/hsa-planar-control","repo_kind":"official","path":"hsa_planar_control/controllers/generalized_torques_to_actuation.py","file_url":"https://github.com/tud-cor-sr/hsa-planar-control/blob/HEAD/hsa_planar_control/controllers/generalized_torques_to_actuation.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":"9b835ce6abdf71b9"}},{"code_sha256_prefix":"79ae3dff0179920f","entry":"nonlinear_state_space","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/systems/euler_lagrangian.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/systems/euler_lagrangian.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":"79ae3dff0179920f"}},{"code_sha256_prefix":"ae9afdd6af126fe8","entry":"normalize_joint_angles","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/systems/pendulum.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/systems/pendulum.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":"ae9afdd6af126fe8"}},{"code_sha256_prefix":"a868da56f787b49c","entry":"ode_factory","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/systems/planar_hsa.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/systems/planar_hsa.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":"a868da56f787b49c"}},{"code_sha256_prefix":"16de75d3def27549","entry":"pd_plus_potential_compensation","repo":"tud-cor-sr/hsa-planar-control","repo_kind":"official","path":"hsa_planar_control/controllers/configuration_space_controllers.py","file_url":"https://github.com/tud-cor-sr/hsa-planar-control/blob/HEAD/hsa_planar_control/controllers/configuration_space_controllers.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":"16de75d3def27549"}},{"code_sha256_prefix":"181b1964a99e23e3","entry":"trim_time_series_data","repo":"tud-cor-sr/hsa-planar-control","repo_kind":"official","path":"hsa_planar_control/analysis/utils.py","file_url":"https://github.com/tud-cor-sr/hsa-planar-control/blob/HEAD/hsa_planar_control/analysis/utils.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":"181b1964a99e23e3"}},{"code_sha256_prefix":"30cb9354d7aaa12f","entry":"factory","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/systems/pendulum.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/systems/pendulum.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":"30cb9354d7aaa12f"}},{"code_sha256_prefix":"eef20e5a64257b06","entry":"factory","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/systems/planar_hsa.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/systems/planar_hsa.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":"eef20e5a64257b06"}},{"code_sha256_prefix":"01f122d087a5acf5","entry":"pd_plus_feedforward","repo":"tud-cor-sr/hsa-planar-control","repo_kind":"official","path":"hsa_planar_control/controllers/configuration_space_controllers.py","file_url":"https://github.com/tud-cor-sr/hsa-planar-control/blob/HEAD/hsa_planar_control/controllers/configuration_space_controllers.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":"01f122d087a5acf5"}},{"code_sha256_prefix":"6e9dfe7650f0110d","entry":"pd_plus_steady_state_actuation","repo":"tud-cor-sr/hsa-planar-control","repo_kind":"official","path":"hsa_planar_control/controllers/configuration_space_controllers.py","file_url":"https://github.com/tud-cor-sr/hsa-planar-control/blob/HEAD/hsa_planar_control/controllers/configuration_space_controllers.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":"6e9dfe7650f0110d"}},{"code_sha256_prefix":"451dd01e257c845c","entry":"symbolically_derive_pendulum_model","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/symbolic_derivation/pendulum.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/symbolic_derivation/pendulum.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":"451dd01e257c845c"}},{"code_sha256_prefix":"e05b8a20810bbee1","entry":"symbolically_derive_planar_hsa_model","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/symbolic_derivation/planar_hsa.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/symbolic_derivation/planar_hsa.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":"e05b8a20810bbee1"}},{"code_sha256_prefix":"a4b9460c94cb6423","entry":"symbolically_derive_planar_pcs_model","repo":"tud-cor-sr/jax-soft-robot-modelling","repo_kind":"official","path":"src/jsrm/symbolic_derivation/planar_pcs.py","file_url":"https://github.com/tud-cor-sr/jax-soft-robot-modelling/blob/HEAD/src/jsrm/symbolic_derivation/planar_pcs.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":"a4b9460c94cb6423"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}