ODE-Enhanced Neural Network Modeling for Irregularly Sampled Mujoco Dynamics.
This project explores the integration of Ordinary Differential Equations (ODEs) with neural networks to model the dynamics of multi-joint systems using the Mujoco dataset. Our focus is on interpolating irregularly sampled data to predict and analyze joint movements accurately.
We use the Mujoco simulation to generate a trajectory dataset, which serves as a rich benchmark for simulating multi-joint dynamics. This dataset was then processed to create subsets with irregular sampling intervals, presenting a challenge for our ODE-integrated neural network models.
- Dataset for the Hopper and Walker can be found in the below link
https://drive.google.com/drive/folders/1Lqv9svglAOKeX3dWkJ88cxsvY4vZkyT9?usp=sharing
In this project, we adapted the methodology from this paper to integrate ODE solvers into our neural network architecture, allowing us to effectively handle the irregularly sampled data in the Mujoco dataset. The core idea involves using ODEs to model the continuous dynamics of the system, which provides a flexible framework for dealing with non-uniform time steps in our dataset.
Yulia Rubanova, Ricky Chen, David Duvenaud. "Latent ODEs for Irregularly-Sampled Time Series" (2019) [arxiv]
To set up the project locally, follow these steps:
- Clone the repository:
git clone https://github.com/your-username/Mujoco-Dynamics-with-ODE_NN.git
cd Mujoco-Dynamics-with-ODE_NN
- Create a virtual environment and activate it:
python -m venv venv
source venv/bin/activate
- Install the required dependencies:
pip install -r requirements.txt
- Main Training File for all models and rendering Hopper Trajectories (DM Control Suite):
src/final_project.ipynb
- Dataset generation script using Mujoco for Walker -
notebooks/Walker_data_collection.ipynb
- For rendering Walker: (Open Ai Gym environment trajectories)
src/Final_Render_Walker_Gym_env.ipynb
Input trajectory
Output trajectory of Latent ODE with 50% subsampling
Output trajectory of Latent ODE with 20% subsampling