Ben's Blog

No description yet.

  • Home
    Home This is where you can find all the blog posts throughout the site.
  • Categories
    Categories Displays a list of categories from this blog.
  • Tags
    Tags Displays a list of tags that have been used in the blog.
  • Archives
    Archives Contains a list of blog posts that were created previously.
  • Login
    Login Login form

Robotics and FPGAs (2) - The 17 DOF Biped Robot Assembly, Part 1

Posted by on in Robotics Using FPGAs
  • Font size: Larger Smaller

I had time last weekend to begin assembling the skeleton of the 17 Degrees-of-Freedom (DOF) robot. For this build I decided to start the assembly with the feet and build  my way upwards. Why start with the feet? Well because, as explained in my previous post, the kit I bought did not come with an instruction manual and building from the bottom up seemed to make sense, to me anyway.

However, as it turned out the build is far easier than one is first led to believe, as it soon becomes obvious what parts should be connected to what. This blog post is the first part, of what might turn out to be many, which describe my assembly of the 17 DOF robot

Before I began the assembly one of the first things I thought about doing was mounting all of the servos onto the multi-functional servo bracket mounts. However, as I soon realised, this would not have been a good idea, as the screw holes used to mount the multi-functional bracket to another bracket would have been obscured, since they reside underneath the servo. Hence, doing this would mean that the multi-functional bracket's mounting holes would no longer be accessible.


The parts I needed to build the assembly from the footbase to the "knee" are shown in the Figure above. I quickly described each of these parts, starting at the top-left and moving in a clockwise direction, below:

  • Multi-Functional Server Brackets - There are 16 of these servo brackets in the kit. Their primary purpose is to perform the function of a joint by hosting the servos, which in my case are the MG966R metal gear servos. The servos slot into this bracket and are securely attached to it using four of the 3.5mm by 10mm screws and nuts. 
  • Short U Servo Brackets - There are 7 of these brackets in the kit, which get their name from their shape, apparently. One of these brackets in conjunction with a multi-functional servo bracket, described previously, a servo, a servo horn and a ball bearing form a complete joint. This joint can be moved by controlling the servo. The assembly of the joint is described in more detail below.
  • The Servo Horns: The servo horns are constructed from aluminium like the rest of the parts  and are used to attach one end of a short (or long) U servo bracket to a servo. They fit on a servo in the same way a servo arm does. The four pre-drilled holes, seen in the image, match those of the U bracket and are typically attached to it using four 3mm x 8mm screws (No 3. in the image below).
  • Footbase: The 2 footbases form the feet, which when attached to a joint assembly can be rolled (as opposed to pitch and yaw) from side to side. The feet are meant to add stability to the robot, but as I discovered (see below) this base can never be completely stable due to the screws used to attach it to the multi-functional servo bracket that provides the footbase with the ability to roll.


The screws and nuts were delivered unsorted in a single bag, as can be seen in the top right-hand image insert of the picture above. Initially, the contents of the bag looked quite daunting, however, once the items are sorted into their various types one is left with the four types of screws and two types of nuts, as seen in the image above. It took about 30 to 45 minutes to sort out the screw and nut groups and place them in the bags the servos individually came in. At first I wanted to ask the kids to help sort out the screws, while I got on with other parts of the assembly. However, I remembered that their rates tend to coincide with the cost of the latest PS4 or WiII U game, so I decide otherwise and did the job myself.

Size Item Description
Screw Type 1 3mm x 8mm Quite worryingly I have not found any use for this type of screw yet, but there are still other parts of the robot to assemble.
Screw Type 2 3mm x 10mm So far I have used this screw type to mount the multi-functional servo bracket to one side of the short U servo bracket using the ball-bearings (not shown) and the 3mm nuts. I suspect they will also be used to mount the long U servo bracket, which has not yet been introduced.
Screw Type 3 3mm x 8mm I have mainly used this type of screw to secure the servo horn to the servo.
Screw Type 4 3.5 mm x 10mm This type of screw, along with its corresponding nut, could be considered to be the work-horse of the screws used for the more heavy duty attachments. So far, I have used this screw to attach the servos to the multi-functional servo mounts, I have also used it to secure the multi-functional mounts to the footbase.

The different types of screws and a description of how they have been used so far are listed in the Table above:


I began the build by attaching the servo horn to the servo, but not the servo to the multi-functional bracket, because this would have blocked the multi-functional bracket's mounting holes, as described previously. However, when the multi-functional bracket is mounted the servo can be attached to it using four of the "heavy-duty" Type-4 screws (Listed in the Table above) and nuts. One end of a short U servo bracket is attached to the servo horn using four Type-3 screws and the other end is attached to the multi-functional servo bracket using the ball bearing, a Type 2 screw and a nut (N.B Not the Type 3 screw shown in the image, 3, above).


In the next part of the build I attached the footbase to the multi-functional bracket and the servo, with a servo horn attached, followed by the short U servo bracket. Two combinations of a multi-functional bracket, servo and short U bracket are mounted at right-angles to complete the assembly. The parts used and the final two assemblies (seen at the top of the drawing) can be seen in the picture above.


The two complete builds between the footbase and the "knee" of the robot  can be seen in the image above. Once this initial part of the build had been completed I proudly placed the two lower limbs side-by-side, as can be seen in the Figure. I was quite pleased with myself at this point and rewarded myself with a drink, a glass of lemonade, as it was quite a hot day and although this part of the assembly was not necessarily hard, it was quite challenging. Once the self congratulations was over I noticed that although the feet were stable, due to the weight of the aluminium parts and servos assembled so far, the base was slightly unbalanced. This was due to the screws used to mount the multi-functional brackets to the footbase slightly protruding out of the footbase, as can be seen in  the image below.


Now, this got me thinking, which is not always a good idea! However, I was thinking along the lines of designing an outer covering for the footbase, or shoes if you like, to provide better stability and hide the protruding mounting screws. My plan at this stage is to fire up AutoCAD and design the outer covering and print it out on our newly acquired Up! Mini 3D Printer (review link soon), which are currently being sold for about half their original price at the time of writing this post. It is the combination of affordable 3D printing along with the ability to purchase robotic parts at warehouse prices from China that has made projects like this achievable for independent researchers like myself. All I need to do next is to figure out the electronics and the mathematics for forward and inverse kinematics implemented in a FPGA to get the robot to move. To implement a balance feedback algorithm I decided to investigate 6-axis and 9-axis Degrees-of-Freedoms (DOF) Inertial Measurement Units (IMUs) like the MPU-6050 described, briefly, below.


The PCB, shown above, contains InvenSense's six DOF Inertial Measurement Unit (IMF) typically used for applications requiring orientation detection like mobile devices and quadcopters. In fact the introduction of MEMs devices into mobile phones has led to their miniaturisation and affordability, ideal for use in projects like this one. The MPU-6050 consists of a 3-axis accelerometer and a 3-axis gyroscope. The readings from these two measurements are typically combined by using a Kalman filter or the more hardware friendly Complimentary filter. I'm not going to go into the details of the operation of this unit in this post but will save them for a future post.

I will be using a number of these sensors to help provide balance to the robot, although I also have a few MPU-9150 devices, which offer 9 DOF by adding a magnetometer or what is commonly known as a compass. Quite interestingly, I would prefer to use the MPU-6000, which consists of the same components as the MPU-6050 with the only difference being that it is accessed via an SPI bus rather than the 6050's IIC. Hence, access to the 6000 is about two and a half times quicker, however it seems to be much more expensive. That's all for now I will provide more on the ideas discussed here including using AutoCAD to design robot parts, 3D printing of robot parts and the electronics and control using FPGAs in upcoming blog posts. Cheerio for now.

Last modified on
Tagged in: 17 DOF Robot MPU-6050