We don't know about you, but we definitely find it hard to get our mind around spatial concepts, and we've never been able to just glance at a table of numbers or a spreadsheet and immediately make sense of it. So, when we tackle a project like building and programming a bipedal robot, we find it extremely helpful to construct a mental model.
For example, the Kondo KHR-1, our current robot platform of choice, has 17 degrees of freedom. Each one of the servos that control its motion are positioned in different orientations and have different functions.
Unless we construct an easy to understand, yet robust, mental picture of what's going on, we'll always be confused and frustrated as we attempt to create poses, motions, and scenarios.
The simple robot servo diagram provided in the KHR-1 robot kit manual is a good place to start:
It shows the relative position and orientation of all 17 servos, and assigns them channel numbers that correspond to the channels used by the RCB-1 controller and the Heart to Heart software used to program the robot. From the diagram we can begin to appreciate some of the grouping and symmetry of the KHR-1 design.
First, let's make a totally abitrary decision and say that left and right will always be determined relative to the robot itself. We could have reversed the choices - it doesn't really matter as long as we're consistent in our thinking. Keep in mind that later, when we're controlling the robot in 'real life', orientation is going to get extremely confusing, especially when it is suddenly facing away from us, or walking towards us from the other side of the competition ring.
It's helpful to group the servo channels into two sets vertically as well. The 'upper' set consists of channels 1, 2, 3 (left arm), 6 (head), and 7, 8, 9 (right arm). All of these upper body servos are controlled by one of the two RCB-1 boards installed in the robot.
The lower body servo channels are controlled by the other RCB-1 board and include 13, 14, 15, 16, 17 (left leg) and 19, 20, 21, 22, and 23 (right leg).
All those numbers are great, but difficult to keep memorized without some direct connection to what they actually do. So, let's assign functions to each of the channels that map fairly naturally to a 'humanoid'.
Channel 1 (CH1) controls the rotation of the left arm clockwise and counter-clockwise, so let's call it "shoulder-rotate". The next channel - CH2 controls the movement of the left arm in and out, and is directly attached to the shoulder-rotate servo, so let's call it "shoulder-in/out".
We can proceed down the robot body in a similar fashion until we arrive at it's left foot where CH17 controls the foot tilt angle. The right side is a mirror image of the left side, and that symmetry will turn out to be quite useful and insightful later on.
How is this helpful?
We'll explore that further in the next post in this series as we start to dig into how the software actually controls the robot's movements and how to program it.