Help Needed: Designing and Simulating a Robotic Quadruped from Scratch

Help Needed: Designing and Simulating a Robotic Quadruped from Scratch

I’m working on a personal project to design and simulate a robotic quadruped entirely from scratch. This includes CAD modeling, URDF generation, simulation, and custom software development—everything except hardware. My plan is to:

Start with PID control for basic movement.
Gradually explore reinforcement learning (RL) techniques.
Implement more novel approaches inspired by research papers.

I want to take it step by step and build a strong foundation before diving into complex controls or AI-driven techniques.

Current Status:
I have completed the CAD design of the leg mechanism, which is inspired by an Indian quadruped bot. I used the SolidWorks URDF exporter package to convert the CAD model into a URDF and successfully loaded it in RViz.

In the simulation:

The individual links appear in RViz.
When using teleop, the links move independently instead of being connected.

Where I Need Help:
I’m stuck on how to link all the components in the simulation properly so they behave as a cohesive mechanism (e.g., joints stay connected, and movement propagates through the leg structure as expected).

I have a few specific questions:

How do I correctly define joint connections in the URDF so the links behave like an actual robotic leg?
What’s the best way to test basic motion (e.g., lift and lower the leg) once the joints are correctly defined?
Are there any beginner-friendly tutorials or resources for implementing basic PID control for a quadruped?
Any advice on moving from this phase to more advanced control techniques like RL?

Additional Context:
I’m using ROS for the simulation and have access to tools like Gazebo, RViz, and Python for development. I’m relatively new to this and feel a bit overwhelmed with the process but am very motivated to learn.

If you’ve worked on anything similar or have any suggestions, please share them. Whether it’s related to URDF setup, control algorithms, or general tips for simulating a quadruped, I’d appreciate all the help I can get.

TL;DR: I’m designing a robotic quadruped from scratch, currently stuck on linking joints in the simulation. Need guidance on URDF setup, PID implementation, and next steps for getting the model working in a simulation.

You could look around here to get some inspiration: subt/submitted_models/bosdyn_spot at master · osrf/subt · GitHub .