I always wanted to build my own 4-legged robot, mostly for my personal research projects. I have been building humanoid robots in the Neurorobotics Research Laboratory (NRL) at Humboldt University Berlin since 2006, but as bipeds are mostly charged with unrealistic expectations, I found during my 3-year break in the industry the 4-legged much more realistic and my research focused more and more thereon. To explore walking and running robots purely in simulation has certain advantages, however, there is always the open question, if that would work in reality and eventually it was obvious to me that I have to proof this. So in the middle of 2016 I decided to start this project to answer myself this question.
When building a robot with legs, the first thing you need to have is a reliable and powerful actuator system that has multiple sensors to provide enough proprioception. You need the joint angle, angular velocity, current, voltage and temperature. For the body you also need the acceleration. The motors should communicate their sensor values several times per second (e.g. 100 Hz) to the host controller via a robust bus system. And furthermore the motors shall be programmable to support any fancy control loop you can think of, such as the
Cool Cognitive Sensorimotor Loop (CSL). These properties you will barely find with cheap servo motors. You usually need expensive smart servos. Which is not a so big problem if you’re working in a research lab. But as a hobbyist, a 200 EUR motor is quite expensive and you need at least 12 to make a your four-legged walk like a charm. I looked up a lot of similar projects and almost always find them using either expensive Dynamixel motors which results in non-affordable robots or using cheap hobby servos but getting stuck with all the problems which arise with this non-appropriate motor selection.
A main lesson I learned while creating locomotion controllers for legged robots is that you need two important features in your sensorimotor system: 1) Feedback, you need this, yes, some still ignore this from the beginning. You need proprioception, a lot, directly in the closed loop. Open-loop controllers can make toy robots walk but mostly look silly and are highly unstable. When it comes to higher velocities or more degrees of freedoms as in the video below, open-loop controllers will ultimately stumble and fall. 2) Forget target position control, walking is not animation, you need to control the forces or torques not follow trajectories. So whatever actuators and sensors you choose for your robot, make sure you are able to measure position, speed, current and voltage and make sure you can fully control the motor voltage, which is the main driving output for every motor. Under stationary conditions, i.e. constant load and speed, motor voltage is proportional to angular velocity. But we are not talking about drones or e-bikes here. Swinging legs back and forth means zero crossing all the time. So output voltage is somewhat more like driving the joints‘ torque. If you like it simple, for now this is a valid approximation and controlling voltages directly will make your robot run. If you like it more precise, make a torque controller while sensing the motor current, which is proportional to torque.
The video above showed a simulated version of the biped robots we at NRL build at around 2006-2008. This simulated robot is purely voltage controlled using position and velocity as feedback on a 100 Hz update frequency. I will tell you later more about this, but for short, results like dynamic movements are barely seen with position control approaches…
So I needed an affordable but capable servo system which allows for controlling torques, has a reliable bus system and communicates all the feedback. The Open-Servo Project seemed well suited but it was almost pretty dead at that time and getting printed circuit boards (PCB) was kind of hopeless. So I decided to start with this, creating an affordable but capable actuator which is strong enough to drive a 70cm tall four-legged robot, and some months later, I came up with the first draft board of the Sensorimotor.
This is what the next post will be about. But it is almost 2am and to close this first post, want to you to take home, that whatever legged robot project you may have in mind to build some day,… How far you get with your project is highly depending on the wise choice of your actuator system since it dominates your robot’s price, its weight and its future capabilities. If you plan to go beyond toys, you need a lot of feedback, high update rates, forget about position control and dive into low-level voltage or torque control.