Let's Make Robots!

BFR-H1 Humanoid robot torso

This is my latest robot, BFR-H1. It is a humanoid robot torso actuated with servos with potentiometers for feedback on each joint position. It's similar in design to my previous humanoid robot but built to a higher standard. The construction is all aluminium, machined from sheet, angle and box section. It uses an Arduino mega to control the 10 servos and read servo positions from the 10 corresponding potentiometers.

With the Arduino connected to a PC, each servo can be controlled individually at the moment by setting a slider position. The Arduino is constantly running a control loop to position each servo using feedback from its associated potentiometer. At the moment this is just proportional control but I hope to play around with this a bit in the future to ensure the movements are as smooth as possible. The object tracking I implemented with my previous robot is now working on this platform, check out the video to see this in action.

The next step is to continue work on the software. I'm hoping to develop some autonomous behaviour, whether it be reacting to coloured objects or faces or even interacting with objects put in front of the robot, I'm not sure yet. I may also add some kind of sensing to the hands, possibly just a switch, to give more sensing ability and help with the autonomous behaviour.

Check out my blog at www.bigfacerobotics.com for more info and pictures of this robot as it was being built. I hope to keep this updated as regularly as possible as the project progresses.

A couple more pictures for you below. The first one shows the range of movement of the arms towards the head.

I decided not to go for a gripper on this robot but I thought there may be a chance that the robot could still pick up items using both hands. I tested this today and sure enough it is possible. I think it will take some work to get it working autonomously but definately an option!





Update 15/7/12

I've written some code to store a series of joint positions along with a delay value. This series can then be replayed with the robot moving its joints to each of the stored positions in turn with a delay between each position. To create the sequence of positions the servo power can be turned off and the robots limbs moved manually to the desired position. A click of a button on the PC stores the current position. The robot can then be moved to the next position and this can be stored and so on. I've added a video of a sequence being replayed. I've also been experimenting with having the robot pick up items and I'm happy with the results. Check out the new video to see this in action!





Update 13/3/13

I have been working on my humanoid robot as much as possible when time allows. I've added a sharp IR sensor to the robots head to give some basic depth perception and I've also been experimenting with simple hand switches so that the robot can detect when it is touching something.

I have made a lot of changes to the software and the tools I'm using to develop the software for the robot. The biggest change is that I'm using Python instead of C++ to develop the code running on the PC. C++ and QT was good but Python makes things a whole lot easier when experimenting and adding functionality. I have re-written most of the code in Python now and added extra functionality along the way. Using Python also means the code can be used on different platforms, and I have been playing with the Raspberry Pi to see what it can do. My latest project has been to use the Raspberry Pi and a Wiimote to control the robots head and arms. Check out the new video to see this in action. I wanted to share this new video with everyone here and if anyone would like more information on what I have been up to, check out my blog at www.bigfacerobotics.com 





Update 27/3/13

I've put my robot on wheels! I have built a new wheeled base for my humanoid using modified servos and a fancy castor to help him get around a bit more. I have also mounted my Raspberry Pi to the robot and I'm using this along with the Arduino for control. I plan on sorting out a battery supply for the Pi so the robot is truely mobile, for now he is tethered. I've got OpenCV running to capture an image from the webcam and do some image processing. More updates and video coming soon hopefully!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Extraordinary Creation my dear sir, extraordinary. Congratulations!!

VERY gool :)

Another great project. I like the aluminium construction. Looks like you rivet the parts together. Is there a special reason, why you use rivets and not screws and nuts.

Thanks for the feedback. Mogul has got a good point about the rivets, I think they look cool and look very roboty (if thats a word). They are also cheaper than the stainless steel screws and nuts I've used to attach the servos, and less susceptible to vibrating loose. If something needs attaching to something else and you don't plan on taking them apart, I think rivets is a good way to go!

awesome! i love half humanoids!

...and I gotta tell you, I am still using your PID stuff as reference all the time. Got that one post (from years ago) bookmarked and I hit it probably twice a month.

Same goes for your mapping stuff too. Great stuff.

Thanks dude, its good to know my ramblings are helpful! I worry that my PID post has got a bit lost in the depths of the site, I may edit it so it's back on the front page, may be helpful to someone else. What do you think?