All Projects → adham-elarabawy → Open Quadruped

adham-elarabawy / Open Quadruped

Licence: other
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.

Projects that are alternatives of or similar to Open Quadruped

Gym Pybullet Drones
PyBullet Gym environments for single and multi-agent reinforcement learning of quadcopter control
Stars: ✭ 168 (+13.51%)
Mutual labels:  robotics, reinforcement-learning, control
Stable Baselines3
PyTorch version of Stable Baselines, reliable implementations of reinforcement learning algorithms.
Stars: ✭ 1,263 (+753.38%)
Mutual labels:  robotics, reinforcement-learning
Causalworld
CausalWorld: A Robotic Manipulation Benchmark for Causal Structure and Transfer Learning
Stars: ✭ 76 (-48.65%)
Mutual labels:  robotics, reinforcement-learning
Researchpapernotes
Initiative to read research papers
Stars: ✭ 97 (-34.46%)
Mutual labels:  robotics, reinforcement-learning
Bullet3
Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
Stars: ✭ 8,714 (+5787.84%)
Mutual labels:  robotics, reinforcement-learning
Holodeck Engine
High Fidelity Simulator for Reinforcement Learning and Robotics Research.
Stars: ✭ 48 (-67.57%)
Mutual labels:  robotics, reinforcement-learning
Safeopt
Safe Bayesian Optimization
Stars: ✭ 90 (-39.19%)
Mutual labels:  robotics, reinforcement-learning
Batch Ppo
Efficient Batched Reinforcement Learning in TensorFlow
Stars: ✭ 945 (+538.51%)
Mutual labels:  reinforcement-learning, control
Grl
Robotics tools in C++11. Implements soft real time arm drivers for Kuka LBR iiwa plus V-REP, ROS, Constrained Optimization based planning, Hand Eye Calibration and Inverse Kinematics integration.
Stars: ✭ 105 (-29.05%)
Mutual labels:  robotics, control
Ros2learn
ROS 2 enabled Machine Learning algorithms
Stars: ✭ 119 (-19.59%)
Mutual labels:  robotics, reinforcement-learning
Articulations Robot Demo
Stars: ✭ 145 (-2.03%)
Mutual labels:  robotics, reinforcement-learning
Bolero
Behavior Optimization and Learning for Robots
Stars: ✭ 39 (-73.65%)
Mutual labels:  robotics, reinforcement-learning
Darm
A desktop arm that can write and draw.
Stars: ✭ 38 (-74.32%)
Mutual labels:  robotics, 3d-printing
Awesome Decision Making Reinforcement Learning
A selection of state-of-the-art research materials on decision making and motion planning.
Stars: ✭ 68 (-54.05%)
Mutual labels:  robotics, reinforcement-learning
Gym Panda
An OpenAI Gym Env for Panda
Stars: ✭ 29 (-80.41%)
Mutual labels:  robotics, reinforcement-learning
Hand dapg
Repository to accompany RSS 2018 paper on dexterous hand manipulation
Stars: ✭ 88 (-40.54%)
Mutual labels:  robotics, reinforcement-learning
Ravens
Train robotic agents to learn pick and place with deep learning for vision-based manipulation in PyBullet. Transporter Nets, CoRL 2020.
Stars: ✭ 133 (-10.14%)
Mutual labels:  robotics, reinforcement-learning
Rex Gym
OpenAI Gym environments for an open-source quadruped robot (SpotMicro)
Stars: ✭ 684 (+362.16%)
Mutual labels:  robotics, reinforcement-learning
Gym Dart
OpenAI Gym environments using DART
Stars: ✭ 20 (-86.49%)
Mutual labels:  robotics, reinforcement-learning
Gym Ignition
Framework for developing OpenAI Gym robotics environments simulated with Ignition Gazebo
Stars: ✭ 97 (-34.46%)
Mutual labels:  robotics, reinforcement-learning

open-quadruped

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

  • [x] Hardware // Redesign legs to move actuators closer to hip + reinforce all servo mounting.
  • [ ] Design // Research transition between gait & body pose.
  • [x] 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.
  • [x] Simulation // Create URDF model. (or port collaborater's URDF: Maurice Rahme)
  • [x] Simulation // Gazebo
  • [ ] Simulation // RViz Realtime Model
  • [ ] Design // Solve offset 3DOF IK model for right limbs OR validate that mirroring angles works for left/right legs
  • [ ] Simulation // Implement WebGazebo clientside support for non-linux users
  • [ ] Sim-to-Real // Joint servo calibration
  • [ ] Sim-to-Real // Refining gait parameters
  • [ ] Simulation // Reinforcement learning via ARS
  • [ ] Software // Raibert Huerestic for converting desired velocities into gait parameters
  • [ ] Software // ROS Nav Stack Layer

Papers

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

Documentation

You can find a summary of this project on my portfolio website's project page. I'm hosting most of the technical 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

NOTE: There are 3 different visualization tools: Gazebo Simulator (ROS + Physics), RViz (ROS), & my custom 3d-matplotlib visualization tool (body IK model + leg IK model). The latter tool is still under development, and I haven't ported it to use my new control library yet, so it is likely broken for the time being.

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].