Skip to content

Open-source code for Neural Internal Model Control (Neural-IMC)

License

Notifications You must be signed in to change notification settings

thu-uav/NeuralIMC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neural Internal Model Control

arXiv Video Code

This repository contains the implementation of Neural Internal Model Control (Neural-IMC) for quadrotor control, as presented in our IEEE Robotics and Automation Letters paper Neural Internal Model Control: Learning a Robust Control Policy Via Predictive Error Feedback. For the quadruped robot experiments, please refer to our dedicated repository.

Overview of Neural-IMC

Installation

conda create -n torchctrl python=3.9
conda activate torchctrl
pip install -e .

Trajectory examples used for experiments

Trajectory Type Description 3D Trajectory Per-axis Trajectory Implementation
Circle Circular trajectory Circle Circle circle.py
Poly Chained polynomial trajectories Poly Poly chained_polynomial.py
Star 5-pointed star trajectory Star Star pointed_star.py
Zigzag Zigzag trajectory Zigzag Zigzag zigzag.py

Usage

Tuning the controller parameters

conda activate torchctrl && cd scripts
# By default, it will use wandb to log data, please make sure you have set WANDB_API_KEY in your environment variables.
python run_quadrotor.py
# To run without wandb logging, use the following command:
python run_quadrotor.py wandb.mode=disabled

Refer to scripts/train/shell_scripts for more experiment scripts.

Quadruped experiments

Check this repo for more details.

Citation

If you find our codebase or our proposed technique (predictive error feedback) useful, please cite our paper:

@ARTICLE{gao2025neuralimc,
  author={Gao, Feng and Yu, Chao and Wang, Yu and Wu, Yi},
  journal={IEEE Robotics and Automation Letters}, 
  title={Neural Internal Model Control: Learning a Robust Control Policy Via Predictive Error Feedback}, 
  year={2025},
  volume={10},
  number={7},
  pages={6848-6855},
  keywords={Predictive models;Robots;Quadrotors;Adaptation models;Legged locomotion;Mathematical models;Training;Robustness;Robust control;Adaptive control;Robust control;reinforcement learning (RL);sensorimotor learning},
  doi={10.1109/LRA.2025.3573169}}

About

Open-source code for Neural Internal Model Control (Neural-IMC)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •