Introduction
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.