{"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-physical-human-feedback-an","title":"Learning from Physical Human Feedback: An Object-Centric One-Shot Adaptation Method","arxiv_id":"2203.04951","date":"2022-03-09","proceeding":null,"authors":["Alvin Shek","Bo Ying Su","Rui Chen","Changliu Liu"],"abstract":"For robots to be effectively deployed in novel environments and tasks, they must be able to understand the feedback expressed by humans during intervention. This can either correct undesirable behavior or indicate additional preferences. Existing methods either require repeated episodes of interactions or assume prior known reward features, which is data-inefficient and can hardly transfer to new tasks. We relax these assumptions by describing human tasks in terms of object-centric sub-tasks and interpreting physical interventions in relation to specific objects. Our method, Object Preference Adaptation (OPA), is composed of two key stages: 1) pre-training a base policy to produce a wide variety of behaviors, and 2) online-updating according to human feedback. The key to our fast, yet simple adaptation is that general interaction dynamics between agents and objects are fixed, and only object-specific preferences are updated. Our adaptation occurs online, requires only one human intervention (one-shot), and produces new behaviors never seen during training. Trained on cheap synthetic data instead of expensive human demonstrations, our policy correctly adapts to human perturbations on realistic tasks on a physical 7DOF robot. Videos, code, and supplementary material are provided.","url_abs":"https://arxiv.org/abs/2203.04951v2","url_pdf":"https://arxiv.org/pdf/2203.04951v2.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-physical-human-feedback-an","repo_url":"https://github.com/Alvinosaur/opa","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"object","task_name":"Object"}],"methods":[{"method_slug":"base","method_name":"BASE"}],"datasets_introduced":[{"slug":"synthetic-object-preference-adaptation-data","name":"Synthetic Object Preference Adaptation Data","full_name":""}],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2203.04951","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2203.04951"}},"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/Alvinosaur/opa","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":5},"by_repo_kind":{"official":{"samples":5,"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":"e0a54f07dca571c3","entry":"as_symm_matrix","repo":"Alvinosaur/opa","repo_kind":"official","path":"data_generation.py","file_url":"https://github.com/Alvinosaur/opa/blob/HEAD/data_generation.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":"e0a54f07dca571c3"}},{"code_sha256_prefix":"2e2f515283361948","entry":"calc_dist_ratio","repo":"Alvinosaur/opa","repo_kind":"official","path":"model.py","file_url":"https://github.com/Alvinosaur/opa/blob/HEAD/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":"2e2f515283361948"}},{"code_sha256_prefix":"434ea84f77d32ce5","entry":"encode_ori_2D","repo":"Alvinosaur/opa","repo_kind":"official","path":"model.py","file_url":"https://github.com/Alvinosaur/opa/blob/HEAD/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":"434ea84f77d32ce5"}},{"code_sha256_prefix":"f5d3083a24c8261b","entry":"generate_traj_helper","repo":"Alvinosaur/opa","repo_kind":"official","path":"data_generation.py","file_url":"https://github.com/Alvinosaur/opa/blob/HEAD/data_generation.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":"f5d3083a24c8261b"}},{"code_sha256_prefix":"5159ac5346296611","entry":"quat2mat","repo":"Alvinosaur/opa","repo_kind":"official","path":"model.py","file_url":"https://github.com/Alvinosaur/opa/blob/HEAD/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":"5159ac5346296611"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}