How To Really Program A Humanoid Robot – Part 2
Welcome to the FlowStone Workshop number 10, Part 2, where we give a beginners guide to computer programming using the FlowStone graphical programming language. In the last issue (Part 1) we looked at what makes up a humanoid, and some of the differences in the kits available as well as the different ways to program them. In Part 2 we planned to build a Hovis Eco humanoid from Dongbu Robot (courtesy of RobotShop) and add various sensors to further enhance its performance. In reality the build took a little longer than expected and therefore we decided to split the build and the pimping of the robot into two parts. So in this issue we will be describing our build of the Hovis Eco and the programming using the standard bundled software, then in Part 3 (Next issue ) we will detail the programming using FlowStone, IK and additional sensors like gyros and pressure sensors etc.
BUILDING A HUMANOID ROBOT!
Last issue in Part 1 we featured the Bioloid Robot from Robotis, this was a bare bones robot without a full body shell, in this issue we are going to build the Hovis Eco from Doungbu Robot and look at the standard software that comes with it.
WHAT’S IN THE BOX?
The kit arrives in a nice hard plastic tool box with all of the parts packaged in labelled plastic bags, there is definitely a feel of quality here, so we are excited to get going and see what this robot is capable of. This is a large for the robot build is amazing, there has been some serious work put into this, literally every step was shown in an exploded 3D diagram with clear labeling of every component.
The build follows this plan: Head, Left Arm, Right Arm, Left Leg, Right Leg, and Body then controller (brain). I laid everything out on my desk so that I could see everything
FOLLOW THE INSTRUCTIONS!
I made a couple of early mistakes by trying to be clever and build up the arms left and right simultaneously, this proved to be a costly mistake as many of the components are reversed and it was easy to make a mistake by not looking at the pictures in detail. So I had to undo some of my work which cost me more time in the long run. Another key thing to get right, which is clearly documented, is the servo numbers. Each servo, and there are 20 of them, has an ID number so it’s important that you follow the guidelines here as a mistake could prove costly (in time). One thing with a robot of this type where all of the wires are hidden underneath the shell is that if you make a mistake you have to take the whole thing to pieces to get at the parts to change them.
Finally I got the head and arms finished – this took me a whole day! Next was the legs, these were a little quicker to build as I had learnt my lesson from the arms, the main thing I found frustrating, and took the most time, was identifying the correct screws for each hole, I’m used to building kits where there are probably two or three types of screw, in this kit there are around 20 different types of screw nuts and bolts and hundreds of them, so if I had any criticism this would be it – simplify the screws!
Then finally it was time to put it all together and connect the body, the wiring is quite complex but again well documented.
TESTING & CALIBRATION
So here it is my finished robot ready to be tested. The first thing I did being impatient was to test the remote control feature to see if I could get any life out of the old boy. I figured out how to select the remote control mode on the DRC Controller (the robot brains) and started hitting buttons. In the default firmware the functions were quite good my Eco would bow, kneel and do some quite sophisticated tai-chi type moves as well as some martial arts, the only problem was that since it wasn’t calibrated it was slightly off balance and would fall over all the time. So next I downloaded the Dr Sim software and entered the calibration mode using the included RS232 lead:
This allowed you to tweak each joint so that your robot was in perfect balance and matched the position on the screen. Once complete the calibration data was written to the robots firmware so that it was remembered.
Now my robot was in balance it would perform the pre-programmed sequences from the remote control without falling over. This was pretty cool as what it was doing was quite complicated – you can see the full set of sequences in action in the video.
I also realized that the DRC firmware was out of date so I also updated the firmware again using the Dr Sim interface and the serial lead connected to the robot, now the functions of the DRC controller matched the user manual and I could also select Autonomous mode. This would set the robot off walking around and avoiding obstacles using its Sharp distance sensor. This mode was a partial success as whilst the robot walked ok sometimes it would roll on its back on purpose to change direction and struggle to get back up again. I’m sure this could be fixed with further calibration but the complex moves seemed unnecessary.
Disappointingly the new firmware had different remote control sequences too that made no sense, so the cool tai-chi and martial arts moves were gone. The new sequences appeared to be made with different calibration settings, so it kept falling over again even though it was in balance from the initial calibration.
Once I started to use the Dr Sim soft- ware properly to record my own sequences everything became clear, since these animation sequences were made using my robot it was always in balance. I was quickly able to create my own sequences by manually positioning the actual robot in the position I wanted and recording it as a key frame in the animation time line. The Dr Sim software is really good showing a 3d representation of your robot as you animate it. At any point you can turn the torque back on and check that the real robot is in balance. Once you are happy with your sequences you can then download them into the robot. One word of caution is that the stability of the robot depends greatly on what it’s standing on, it appears to prefer hard surfaces rather than carpet for example.
This plays sequence 16 followed by a pause of 1 second then sequence 1. I can see that this could be quite powerful once you get into it, so it’s a useful addition but for intermediate/advanced users only.
There are also some expert options, like an API for Microsoft’s Visual Studio and even the option to write your own firmware for the ATmega 128 processor in the DRC controller! So there is lot’s to go at here.
So you could say that I have the measure of what the Hovis Eco is capable off in stock form, it’s a great product and good value for money, it takes a few days to build so be prepared for that and there are a few to many different screws for my liking, but they have taken great care with the manuals for both the build and the software, it’s easy and rewarding to create your own animations and I think that would be good enough for most people. The hardware quality is also very good as are the Herkulex servos. ¥
What I’m interested in is programming it in FlowStone to get away from yet another sequence based product and using Inverse kinematics and a midi key- board to create dynamic movement. Dear reader, we ran out of time and space in this issue, so to see how we get this done, you’ll have to wait for Part 3 in the next issue!