{"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-getting-up-policies-for-real-world","title":"Learning Getting-Up Policies for Real-World Humanoid Robots","arxiv_id":"2502.12152","date":"2025-02-17","proceeding":null,"authors":["Xialin He","Runpei Dong","Zixuan Chen","Saurabh Gupta"],"abstract":"Automatic fall recovery is a crucial prerequisite before humanoid robots can be reliably deployed. Hand-designing controllers for getting up is difficult because of the varied configurations a humanoid can end up in after a fall and the challenging terrains humanoid robots are expected to operate on. This paper develops a learning framework to produce controllers that enable humanoid robots to get up from varying configurations on varying terrains. Unlike previous successful applications of learning to humanoid locomotion, the getting-up task involves complex contact patterns (which necessitates accurately modeling of the collision geometry) and sparser rewards. We address these challenges through a two-phase approach that induces a curriculum. The first stage focuses on discovering a good getting-up trajectory under minimal constraints on smoothness or speed / torque limits. The second stage then refines the discovered motions into deployable (i.e. smooth and slow) motions that are robust to variations in initial configuration and terrains. We find these innovations enable a real-world G1 humanoid robot to get up from two main situations that we considered: a) lying face up and b) lying face down, both tested on flat, deformable, slippery surfaces and slopes (e.g., sloppy grass and snowfield). This is one of the first successful demonstrations of learned getting-up policies for human-sized humanoid robots in the real world.","url_abs":"https://arxiv.org/abs/2502.12152v2","url_pdf":"https://arxiv.org/pdf/2502.12152v2.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-getting-up-policies-for-real-world","repo_url":"https://github.com/RunpeiDong/HumanUP","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2502.12152","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2502.12152"}},"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/RunpeiDong/HumanUP","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_draft_wrong":1,"ran":2,"unverified":5},"by_repo_kind":{"official":{"samples":8,"ran":3,"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":"596f8f6ee188440a","entry":"get_activation","repo":"RunpeiDong/HumanUP","repo_kind":"official","path":"simulation/rsl_rl/rsl_rl/modules/actor_critic.py","file_url":"https://github.com/RunpeiDong/HumanUP/blob/HEAD/simulation/rsl_rl/rsl_rl/modules/actor_critic.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"596f8f6ee188440a"}},{"code_sha256_prefix":"078b120ca1398556","entry":"torch_rand_sqrt_float","repo":"RunpeiDong/HumanUP","repo_kind":"official","path":"simulation/legged_gym/legged_gym/gym_utils/math.py","file_url":"https://github.com/RunpeiDong/HumanUP/blob/HEAD/simulation/legged_gym/legged_gym/gym_utils/math.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"078b120ca1398556"}},{"code_sha256_prefix":"a25affa7af382246","entry":"wrap_to_pi","repo":"RunpeiDong/HumanUP","repo_kind":"official","path":"simulation/legged_gym/legged_gym/gym_utils/math.py","file_url":"https://github.com/RunpeiDong/HumanUP/blob/HEAD/simulation/legged_gym/legged_gym/gym_utils/math.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a25affa7af382246"}},{"code_sha256_prefix":"d2cce27928409d52","entry":"class_to_dict","repo":"RunpeiDong/HumanUP","repo_kind":"official","path":"simulation/legged_gym/legged_gym/gym_utils/helpers.py","file_url":"https://github.com/RunpeiDong/HumanUP/blob/HEAD/simulation/legged_gym/legged_gym/gym_utils/helpers.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d2cce27928409d52"}},{"code_sha256_prefix":"cb6ee0a52ebbdb38","entry":"conv","repo":"RunpeiDong/HumanUP","repo_kind":"official","path":"simulation/rsl_rl/rsl_rl/utils/layers.py","file_url":"https://github.com/RunpeiDong/HumanUP/blob/HEAD/simulation/rsl_rl/rsl_rl/utils/layers.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"cb6ee0a52ebbdb38"}},{"code_sha256_prefix":"2f282677fc4db332","entry":"enc","repo":"RunpeiDong/HumanUP","repo_kind":"official","path":"simulation/rsl_rl/rsl_rl/utils/layers.py","file_url":"https://github.com/RunpeiDong/HumanUP/blob/HEAD/simulation/rsl_rl/rsl_rl/utils/layers.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2f282677fc4db332"}},{"code_sha256_prefix":"841f29b15d58ff76","entry":"get_load_path","repo":"RunpeiDong/HumanUP","repo_kind":"official","path":"simulation/legged_gym/legged_gym/gym_utils/helpers.py","file_url":"https://github.com/RunpeiDong/HumanUP/blob/HEAD/simulation/legged_gym/legged_gym/gym_utils/helpers.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"841f29b15d58ff76"}},{"code_sha256_prefix":"fc4e341b9c79e617","entry":"mlp","repo":"RunpeiDong/HumanUP","repo_kind":"official","path":"simulation/rsl_rl/rsl_rl/utils/layers.py","file_url":"https://github.com/RunpeiDong/HumanUP/blob/HEAD/simulation/rsl_rl/rsl_rl/utils/layers.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fc4e341b9c79e617"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}