Skip to content

An open-source 3D-printed quadrupedal robot. Intuitive gait generation through 12-DOF Bezier Curves. Full 6-axis body pose manipulation. Custom 3DOF Leg Inverse Kinematics Model accounting for offsets.

License

Notifications You must be signed in to change notification settings

0x49b/open-quadruped

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenQuadruped

Maintenance PR Open Source Love png2 MIT license

An open-source 3D-printed quadrupedal robot. Intuitive gait generation through 12-DOF Bezier Curves. Full 6-axis body pose manipulation. Custom 3DOF Leg Inverse Kinematics Model accounting for offsets.

Current Status

To-Do List

  • Hardware // Redesign legs to move actuators closer to hip + reinforce all servo mounting.
  • Design // Research transition between gait & body pose.
  • Software // Implementing ROS infrastructure for all control processes (including cpp on teensy).
  • Software // Write & automate pytest unit tests.
  • Software // Integrate unit tests with github actions.
  • Simulation // Create URDF model. (or port collaborater's URDF: Maurice Rahme)
  • Simulation // Gazebo
  • Simulation // RViz Realtime Model

Papers

I've been formally documenting this project in the form of papers. You can find them here: adham-e.dev/papers

Documentation

I'm hosting most of the documentation for this project on this repo's wiki.

3D Model

In the model folder, you can find all of the step & stl files that I used for my build of OpenQuadruped. There, you can also find a Bill of Materials, and some guides (in progress).

Hardware

I made a custom pcb board to control the position and speed of 12 servos simultaneously, as well as interface with all of the sensors.

You can find the gerber files for the custom pcb in the hardware folder in this repository.

You can find the bill of materials for this project here.

Visualization Usage

To try the visualization tool out, you'll need to run the animate.py python file with the proper libraries installed. (matplotlib 3.0.3 supported).

You can then use keyboard controls: use x, y, z, a, p, r to select (x axis, y axis, z axis, yaw, pitch, roll), and then the up and down buttons to increment the selected position. If you click '1' on your keyboard, it will reset the position.

Right now, if you try to go to an impossible pose that would result in collisions, the body will do some weird things. If that happens, just click "1" on your keyboard to reset the position.

Note: Pitch and Roll are currently not working. I am currently trying to fix that.

More Demos

Force Sensitive Leg TestIK Model Demo 0IK Model Demo 1IK Model Visualization

About

An open-source 3D-printed quadrupedal robot. Intuitive gait generation through 12-DOF Bezier Curves. Full 6-axis body pose manipulation. Custom 3DOF Leg Inverse Kinematics Model accounting for offsets.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 96.0%
  • Python 3.3%
  • CMake 0.7%