← Open Source
rohanpsingh

LearningHumanoidWalking

Training a humanoid robot for locomotion using Reinforcement Learning.

Model DevelopmentEnvironmentsReinforcement LearningPython
Open on GitHub
Momentum
+0stars in 24 hours0.0%
1.23k
Stars
139
Forks
+2
This week
1
Contributors
Created 2022-07-13 · Updated 2026-10-15 · #11061 today
Top developers

rohanpsingh/LearningHumanoidWalking is ranked 11,061 with 1,228 stars.

Same-category comparison

rohanpsingh/LearningHumanoidWalking is ranked 11,061 among these 8 peers; Genesis-Embodied-AI/RoboGen is ranked 11,058.

Same-category comparison
NameRankMetrics
python-adaptive/adaptive11,050
Language:
Python
Stars:
1,230
Forks:
64
Description:
:chart_with_upwards_trend: Adaptive: parallel active learning of mathematical functions.
yuanxiaosc/Entity-Relation-Extraction11,052
Language:
Python
Stars:
1,230
Forks:
269
Description:
Entity and Relation Extraction Based on TensorFlow and BERT. Schema based Knowledge Extraction, SKE 2019.
huoyijie/AdvancedEAST11,054
Language:
Python
Stars:
1,229
Forks:
371
Description:
AdvancedEAST is an algorithm used for Scene image text detect, which is primarily based on EAST, and the significant improvement was also made, which make long text predictions more accurate.https://github.com/huoyijie/raspberrypi-car.
Genesis-Embodied-AI/RoboGen11,058
Language:
Python
Stars:
1,228
Forks:
108
Description:
A generative and self-guided robotic agent that endlessly propose and master new skills.
google/prettytensor11,069
Language:
Python
Stars:
1,226
Forks:
142
Description:
Pretty Tensor: Fluent Networks in TensorFlow.
SakanaAI/self-adaptive-llms11,073
Language:
Python
Stars:
1,225
Forks:
142
Description:
A Self-adaptation Framework🐙 that adapts LLMs for unseen tasks in real-time.
Bolin97/GongBU11,077
Language:
Svelte
Stars:
1,224
Forks:
89
Description:
Paper accepted by CIKM 2024. Codes of GongBU, a LLM fine-tuning platform for domain-specific adaptation.
dee1024/pytorch-captcha-recognition11,084
Language:
Python
Stars:
1,223
Forks:
326
Key parameters and specifications
Key parameters and specifications
ParameterValue
LanguagePython
CategoryModel Development
SubcategoryEnvironments, Reinforcement Learning
KeywordsRL, Robotics
Stars1,228
Forks139
Contributors1
Created date2022-07-13
Updated date2026-10-15
Stars in 1 day0
Stars in 7 days2
Rank11,061
Previous rank5,875
Rank change-5,186
7-day stars rank8,152
Previous 7-day stars rank7,036
7-day stars rank change-1,116
Total stars rank9,517
Previous total stars rank9,508
Total stars rank change-9
CountryUSA
README summary

LearningHumanoidWalking Code for the papers: **Robust Humanoid Walking on Compliant and Uneven Terrain with Deep Reinforcement Learning** Rohan P. Singh, Mitsuharu Morisawa, Mehdi Benallegue, Zhaoming Xie, Fumio Kanehiro **Learning Bipedal Walking for Humanoids with Current Feedback** Rohan P. Singh, Zhaoming Xie, Pierre Gergondet, Fumio Kanehiro **Learning Bipedal Walking On Planned Footsteps For Humanoid Robots** Rohan P. Singh, Mehdi Benallegue, Mitsuharu Morisawa, Rafael Cisneros, Fumio Kanehiro Code structure: A rough outline for the repository that might be useful for adding your

own robot: Key abstractions: **BaseHumanoidEnv**: Common functionality for humanoid environments (observation history, action smoothing, reset logic) **BaseTask**: Interface for task implementations (reset, step, calc_reward, done) **Reward functions**: Explicit parameter functions in for testability Requirements: Python version: >= 3. **To play:** Or, we could write a rollout script specific to each environment. **Cartpole** A minimal swing-up task for testing the RL pipeline. The goal is to swing the pole from hanging down to balancing upright. Configuration Environment behavior is configured

via YAML files in . Create directory with: - MJCF generation from URDF - Configuration - Environment class 2. Run tests: **What you should see:** *Ascending stairs:* *Descending stairs:* *Walking on curves:* Citation If you find this work useful in your own research, please cite the following works: For omnidirectional walking: For simulating "back-emf" effect and other randomizations: For walking on footsteps: Credits The code in this repository was heavily inspired from apex. Clock-based reward terms and some other ideas were originally

proposed by the team from OSU DRL for the Cassie robot, so please also consider citing the works of Jonah Siekmann, Helei Duan, Jeremy Dao, and others.

Frequently asked questions

How many stars and forks are recorded?

rohanpsingh/LearningHumanoidWalking has 1,228 stars and 139 forks.

What is the repository rank?

rohanpsingh/LearningHumanoidWalking is ranked 11,061.

What language and category are recorded?

rohanpsingh/LearningHumanoidWalking has 1,228 stars, uses Python and belongs to Model Development.

Which repository is closest in rank?

rohanpsingh/LearningHumanoidWalking is compared with Genesis-Embodied-AI/RoboGen, ranked 11,058 with 1,228 stars.

README

LearningHumanoidWalking

Code for the papers:

Code structure:

A rough outline for the repository that might be useful for adding your own robot:

LearningHumanoidWalking/
├── envs/                      <-- Environment implementations
│   ├── common/
│   │   ├── base_humanoid_env.py   <-- Base class for all humanoid environments
│   │   ├── mujoco_env.py          <-- MuJoCo simulation wrapper
│   │   └── robot_interface.py     <-- Robot state/control abstraction
│   ├── jvrc/                      <-- JVRC robot environments
│   └── h1/                        <-- Unitree H1 robot environment
├── tasks/                     <-- Task definitions (rewards, termination)
├── rl/                        <-- Reinforcement learning
├── robots/                    <-- Robot abstractions (PD control, stepping logic)
├── models/                    <-- MuJoCo model files
└── tests/                     <-- Test suite

Key abstractions:

  • BaseHumanoidEnv: Common functionality for humanoid environments (observation history, action smoothing, reset logic)
  • BaseTask: Interface for task implementations (reset, step, calc_reward, done)
  • Reward functions: Explicit parameter functions in tasks/rewards.py for testability

Requirements:

  • Python version: >= 3.10
  • uv package manager
$ uv sync

Usage:

Environment names supported:

Task Description Environment name
Basic Standing Task 'h1'
Basic Walking Task 'jvrc_walk'
Stepping Task (using footsteps) 'jvrc_step'
Cartpole swing-up 'cartpole'

To train:

$ uv run run_experiment.py train --logdir  --num_procs  --env 

Note: Setting RAY_ADDRESS= ensures Ray starts a new local cluster instead of connecting to an existing one.

To play:

$ uv run run_experiment.py eval --logdir 

Or, we could write a rollout script specific to each environment.

Cartpole

A minimal swing-up task for testing the RL pipeline. The goal is to swing the pole from hanging down to balancing upright.

$ uv run run_experiment.py train --env cartpole --n-itr 500 --std-dev 0.15 --learn-std --entropy-coeff 0.01 --minibatch-size 256 --max-traj-len 500 --no-mirror

Configuration

Environment behavior is configured via YAML files in envs//configs/. Key parameters:

# Simulation
sim_dt: 0.001              # Physics timestep
control_dt: 0.025          # Control loop period
obs_history_len: 1         # Observation history length
action_smoothing: 0.5      # Action filtering coefficient

# Task parameters
task:
  goal_height: 0.80        # Target standing height
  swing_duration: 0.75     # Gait swing phase duration
  stance_duration: 0.35    # Gait stance phase duration

# Reward weights (sum to 1.0)
reward_weights:
  foot_frc_score: 0.225
  foot_vel_score: 0.225
  # ... see configs for full list

Adding a new robot

  1. Create envs// directory with:

    • gen_xml.py - MJCF generation from URDF
    • configs/base.yaml - Configuration
    • _env.py - Environment class
  2. Inherit from BaseHumanoidEnv and implement:

    class MyRobotEnv(BaseHumanoidEnv):
        def _get_default_config_path(self) -> str: ...
        def _build_xml(self) -> str: ...
        def _setup_robot(self) -> None: ...
        def _setup_spaces(self) -> None: ...
        def _get_robot_state(self) -> np.ndarray: ...
        def _get_external_state(self) -> np.ndarray: ...
    
  3. Register in envs/__init__.py:

    ENVIRONMENTS = {
        "my_robot": (MyRobotEnv, "my_robot"),
        # ...
    }
    
  4. Run tests: uv run pytest tests/ -v

What you should see:

Ascending stairs:

Descending stairs:

Walking on curves:

Citation

If you find this work useful in your own research, please cite the following works:

For omnidirectional walking:

@inproceedings{singh2024robust,
  title={Robust Humanoid Walking on Compliant and Uneven Terrain with Deep Reinforcement Learning},
  author={Singh, Rohan P and Morisawa, Mitsuharu and Benallegue, Mehdi and Xie, Zhaoming and Kanehiro, Fumio},
  booktitle={2024 IEEE-RAS 23rd International Conference on Humanoid Robots (Humanoids)},
  pages={497--504},
  year={2024},
  organization={IEEE}
}

For simulating "back-emf" effect and other randomizations:

@article{xie2023learning,
  title={Learning bipedal walking for humanoids with current feedback},
  author={Singh, Rohan Pratap and Xie, Zhaoming and Gergondet, Pierre and Kanehiro, Fumio},
  journal={IEEE Access},
  volume={11},
  pages={82013--82023},
  year={2023},
  publisher={IEEE}
}

For walking on footsteps:

@inproceedings{singh2022learning,
  title={Learning Bipedal Walking On Planned Footsteps For Humanoid Robots},
  author={Singh, Rohan P and Benallegue, Mehdi and Morisawa, Mitsuharu and Cisneros, Rafael and Kanehiro, Fumio},
  booktitle={2022 IEEE-RAS 21st International Conference on Humanoid Robots (Humanoids)},
  pages={686--693},
  year={2022},
  organization={IEEE}
}

Credits

The code in this repository was heavily inspired from apex. Clock-based reward terms and some other ideas were originally proposed by the team from OSU DRL for the Cassie robot, so please also consider citing the works of Jonah Siekmann, Helei Duan, Jeremy Dao, and others.

Nearby in the ranking
Similar items