ROS-integrated Quadruped Robot: Pavlov mini

Pavlov mini is a fully open-source quadruped robot that uses hobby brushless servomotors, weighs 3Kg and is about 25cm tall.

Public Chat
Similar projects worth following
Given the current popularity of quadruped robots, today many hobbiest attemt to build their own robot using inexpensive servomotors and 3D printed materials. These attempts are often difficult due to the limitation of position-controlled servomotors and lack of robust and fast algorithms to maintain its equilibrium. Pavlov mini is a proyect that tries to overcome the limitations of using cheap servomotors.

The software of Pavlov mini is open-source and integrated in ROS. It contains algorithms such as Force controller or MPC (Model predictive controller) implemented in C++ that allow the robot to maintain equilibrium in real time. These algorithms compute the reaction forces in the feet, therefore a robot running these algorithms normally require expensive torque-controlled motors (such as BLDC). In Pavlov mini however, these algorithms have been adapted to deal with position-controlled hobby servomotors.


This quadruped robot is called pavlov mini. It was named after Ivan Pavlov, who studied the concept of conditioned learning in dogs (a very important concept in psicology and neuroscience). 

Pavlov mini is a robot that I designed myself and it is built with cheap components. It has a total of 12 motors (3 in each leg) and the rest of the parts (besides the electronics) are fully 3D printed. It’s not a very big robot, it weighs about 3 kilograms and it´s 25 cm tall. It can work up to 30 minutes on a battery.

So in a nutshell, how does this robot work? When the robot walks using two legs at a time, for example, the robot tends to fall forward or backward, meaning that it is unstable. To tackle this problem, the robot has a sensor called IMU (Inertial Measurement Unit), which detects the acceleration and the angular velocity, and estimates the orientation of the robot in real time at a rate of 50Hz. This sensor is connected to a minicomputer, a raspberry pi, which is located inside the body. This computer has a series of algorithms in C++ integrated in ROS (Robot Operating System), including a Kalman Filter for Robot state, Force controller, MCP (Model predictive controller), Predictive Polygon support, Contact ground detection, and Forward and Inverse kinematics. The MCP and Force controller produce commands to move the feet by solving a QP (Quadratic Program) using the QPoases library (same as in the Cheetah robot from MIT).

The MCP can predict how the feet of the robot should move to avoid falling in real time, at a rate of 30 times per second in the raspberry pi. The force controller does not predict but react to the robots current state, at a rate up to 200Hz in the raspberry pi. More powerful mini computers can imcrease these rates.

Regarding the robot motion, there are different gaits defined, where the legs move in a coordinated way in a continuous loop. For example walking, crawling or troting at different periods. The movement of the robot can be manually controlled by a xbox controller that is connected to the minicomputer using Bluetooth. This controller can change the gait of the robot,  as well as send velocity commands.

Autonomous navigation is still not available, but it will be hopefully soon. To get an overview of the robot and how it works, this video gives a small introduction to the old version of the robot.

  • 12 × Brushless servomotors 270 degrees, 45kg
  • 8 × Disk 25T For hip1 and hip2 joints
  • 4 × Pulley GT2 36 teeth For knee joints
  • 20 × 7mm bearing For knee servo
  • 4 × 37mm bearing For hip1 and hip2 joints

View all 17 components

  • 1
    Design and Assembly

View all instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates