One of my dreams has been to make a kit of a miniature balancing robot. I've been working on this some time now, coming up with a way to make a reasonable number of them (5).
I attached the source code (in C, for freescale HCS08 QE128 8 bit processor).
Here is another video showing a second in action - one built by a buddy who provided some feedback about the assembly process. He as customized it giving it a somewhat steampunk look.. two balancing robots
What do you think? Would anyone want one?
Balance on two wheels and navigate autonomously around the room
Actuators / output devices: two miniature geared motors and two RC servos
CPU: Freescale 8 bit QE128
Power source: 4 AAA batteries
Programming language: C
Sensors / input devices: Sharp IR, accelerometer, gyro, wheel position
I watched your video and was quite impressed. It is a nice clean design and seems to operate quite fluidly. Nice work.
I would be happy to give you a price on running this guy through my laser cutter. If I can judge the size correctly, you are not looking at that much Plexiglass per unit. Not much at all, actually. When its all said and done, I bet you have about $6 of acrylic in the whole thing. Cut time would be pretty darn quick too. Do it with some small threaded rod as your uprights and Bob’s your uncle.
No worries either way, I am just happy to help if I can.
The kit looks very accessible to beginer or intermediate robot builders and the design is fairly clean (except maybe for the wires, but those are always a problem) and it should be easy to build upon this base.
We need more of these kind of robot kits. It doesn’t seem to be able to do much out of the box but it would be an excelent base for a butler bot, tiny telepresence bot (maybe using a smartphone on top) or a YDM/Photibot type robot.
This is the second design prototype, so I was able to get a lot of the kinks out. Thanks for your offer for laser cutting plexiglass, but for this robot aircraft plywood turns out to be an excellent material. It’s light yet strong, and the frame can be glued together. Weight is an issue, since the more weight, the more force is needed to maintain balance.
Thanks, it could potentially handle a little more weight and still balance, so a smartphone for telepresence might work. The controller board has the potential for i2c communication, so that could be a means of building on to it. The challenge with balancing robots is the tuning of the balance parameters, which depend on factors such as weight, motor/geartrain, moment of inertia, etc. Getting the tuning to this point has taken many hours of time. The kit design has ensured all these factors are fixed and will be consistent from kit to kit, so that no tuning is required. There is some adaptive tuning going on as well, so adding a small weight would be OK.
Wonderful robot! While the mechanics and electronics are extremely simple, I am intrigued by the code. I see your block schematic and I am trying to figure out how some software blocks might work. I’ve seen balancing robots that work, I’ve had some attempts, but not so advanced like yours. In the Prezi presentation you say the code is open source, can we take a look at it?
I attached the C code for the robot. It uses 16 bit fixed point math for the trig functions, PID loops, etc. That precision seems to provide the right balance of precision and processing speed. Main loop is executed 64 times/sec, and uses 75% of the available processing time, with the processor running at 40Mhz.
As far as other good examples, I think the following is a good example of code and explanation for how it works. I wish I had found this before I started my version since it would have saved me some time… HTWay