Skip to content

Latest commit

 

History

39 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Project Eleven - Robotic Quadruped

Project Eleven - Final Vision

Building an Intelligent Quadruped Robot through Reinforcement Learning

Website SolidWorks MuJoCo Python


🎯 Project Overview

Project Eleven explores training quadruped locomotion using reinforcement learning in MuJoCo with Python. The goal is to develop an agile, intelligent robot through simulation-based learning, starting with a bipedal prototype and scaling to a full quadruped design.

Robot Motion Demo 1 Robot Motion Demo 2

🔄 Complete Workflow Pipeline

This project follows a comprehensive workflow from CAD design to physics simulation:

SolidWorks CAD → URDF Format → MuJoCo XML → Physics Simulation

Step 1: CAD Design in SolidWorks

SolidWorks CAD Assembly

Designed individual components for the bipedal prototype:

  • Waist (1x)
  • Hip joints (2x - mirrored)
  • Upper legs (2x - mirrored)
  • Lower legs (2x - mirrored)

Key Technique - Independent Mirror Parts: For mirrored components that need independent axes and references:

  1. Open the original part
  2. Select a face or plane for mirroring
  3. Go to Insert → Mirror Part
  4. Choose features/body to mirror
  5. Select "Break link to original part" under Link options
  6. Click OK to create a distinct, editable copy

This creates a new part file that can be modified independently without affecting the source part.


Step 2: URDF Conversion with SW2URDF

URDF Model

Converted SolidWorks assembly to URDF format using the SW2URDF exporter:

  • Define the base link (root of kinematic tree)
  • Configure all links in hierarchical order
  • Set up joints between connected links
  • Verify coordinate frames and joint axes

Output: A working URDF file with complete robot description


Step 3: MuJoCo XML Compilation

MuJoCo XML Model

Used MuJoCo's built-in compiler to convert URDF to MuJoCo XML format:

compile Assembly_2legs/urdf/Assembly_2legs.urdf Assembly_2legs/urdf/Assembly_2legs.xml

Compiler Location:

C:\Users\[username]\mujoco-3.3.2-windows-x86_64\bin\compile.exe

Result: A MuJoCo-ready XML file with the complete kinematic tree preserved


Step 4: MuJoCo Configuration & Simulation

With the XML file ready, you can now customize the simulation parameters:

  • ⚙️ Actuators - Apply motors to joints for control
  • 🔧 Joint Limits - Set realistic motion constraints
  • 🎚️ Stiffness - Configure joint stiffness values
  • 📉 Damping - Add damping for realistic motion

Status: Kinematic tree complete and ready for physics simulation!


🎯 Project Phases

Phase 1: Design & Simulation 🔴 ACTIVE

Designing robot components in SolidWorks and converting to MuJoCo format. Currently focusing on 2-leg analysis for learning and understanding the complete workflow.

Phase 2: Control SystemsUPCOMING

Implementing control systems to achieve bipedal locomotion. Testing stability and gait patterns with the 2-leg prototype.

Phase 3: Reinforcement LearningUPCOMING

Training the robot using RL algorithms in MuJoCo. Optimizing for agile and intelligent movement patterns.

Phase 4: Final AssemblyUPCOMING

Scaling to full quadruped (4-leg) version or optimizing the bipedal design based on results. Final integration and testing.


🛠️ Technology Stack

  • CAD Design: SolidWorks
  • Robot Description: URDF (Unified Robot Description Format)
  • Physics Simulation: MuJoCo
  • Programming: Python 3.8+
  • Machine Learning: Reinforcement Learning algorithms
  • Control Systems: PID controllers, trajectory planning
  • Tools: SW2URDF exporter, Jupyter Notebook

📦 Project Files

The repository includes all necessary files to replicate the workflow:

  • files/Assembly_2legs.SLDASM - Complete SolidWorks assembly
  • files/Assembly_2legs.urdf - Robot description format
  • files/Assembly_2legs.xml - MuJoCo simulation model
  • files/mujoco_simulation.ipynb - Python simulation code

🚀 Getting Started

Prerequisites

# Required Software
- SolidWorks 2020 or later
- MuJoCo 3.0+
- Python 3.8+
- Jupyter Notebook

Installation

  1. Clone the repository:
git clone https://github.com/Sjschhabra/project-eleven.github.io.git
cd project-eleven.github.io
  1. Install Python dependencies:
pip install mujoco numpy matplotlib jupyter
  1. Open the simulation notebook:
jupyter notebook files/mujoco_simulation.ipynb

Running the Simulation

Load the MuJoCo XML model and run physics simulation:

import mujoco
import mujoco.viewer

# Load the model
model = mujoco.MjModel.from_xml_path('files/Assembly_2legs/urdf/Assembly_2legs.xml')
data = mujoco.MjData(model)

# Launch interactive viewer
with mujoco.viewer.launch_passive(model, data) as viewer:
    while viewer.is_running():
        mujoco.mj_step(model, data)
        viewer.sync()

📚 Resources & Documentation


🎥 Demo

Bipedal Locomotion Test 1 Bipedal Locomotion Test 2

Current bipedal prototype demonstrating basic physics simulation


🗺️ Roadmap

  • Complete CAD design of 2-leg prototype
  • Convert SolidWorks assembly to URDF
  • Compile URDF to MuJoCo XML format
  • Basic physics simulation in MuJoCo
  • Implement control systems for bipedal walking
  • Apply reinforcement learning algorithms
  • Optimize gait patterns and stability
  • Scale to full quadruped (4-leg) design
  • Physical prototype construction (if feasible)

🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.


👤 Author

Sjschhabra


⭐ Show Your Support

Give a ⭐️ if this project helped you or if you find it interesting!


Project Eleven

Project Eleven - From Simulation to Reality 🚀

About

Project Eleven: Developing an agile quadruped robot using physics-based simulation and reinforcement learning. Starting with a bipedal prototype to understand locomotion dynamics, then scaling to four legs. Includes complete CAD-to-simulation workflow (SolidWorks → URDF → MuJoCo XML), control systems implementation, and sensor integration for gait

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages