If any of the info on this website was useful for your projects or made your head spin with creative ideas, and you would like to share a token of your appreciation- a donation would be massively appreciated!

Your donation will go to my Robotics Fund, straight towards more sensors, actuators, books, and journeys. It takes a lot to continue building these robots, and I’m really thankful of everyone who helps encourage me along the way.



“A wise robot once said to me through Serial.println- that robots teach us about ourselves.”

All posts tagged omg

Zombial Robotics

Based on results from a computer program executed last night, social robotics is NOT achievable.

All researchers should therefore shift focus to a more advantageous field of robotics: Zombial Robotics.

All robots on will now be zombies. All social robots will be overrun by a zomboni machine.

—— version 4.01 😉

Friday Night Robotics * 3 – MANOI’s Holiday Xtravaganza Warmup

This weekend really gives patronage to how challenging the sport of robotics is (Technically it’s not a sport since it’s not in the Olympics), and how frustrating everything can be!!!! >:(

Last year, MANOI barely showed off any holiday spirit. Just a seemingly 2D stocking sticky-tacked onto its head.

This year I really wanted to improve on that because… well, I don’t really have a reason. I just wanted to. I wanted to see what it would be like for MANOI to ring bells ^_^

The decorating started off with just a hat, followed by the hunt to find jingle bells that are a circle, not a bell. My mom eventually figured out the type of bell that I was looking for, and bought me some festive bells and bows!

Et voila, MANOI! C’est magnifique! (Tada, MANOI is magnificent!)

Festive MANOI

I spent an enormous amount of time getting various actions set up so that I can string them together into a final product. In total, there are 7 different movements. My favourite of which, called ‘tango’ can be seen in the video below where one of MANOI’s arms is outwards, and another is inwards, perpendicular to its front shell with the bow. Surprisingly enough, its only two motion frames:

  1. int tangoHeadTilt = 400;
  2. int tangoHandTilt = 200;
  3. int tangoHandIn = 120;
  4. int tangoHandUp = 500;
  5. int tangoArmUp = 500;
  6. int tangoArmTilt = 600;
  7. int tangoHipTilt = 200;
  8. int leanBack = 25;
  10. int tango_keyframe1[17] = {
  11.       HOME0tangoHeadTilt,
  12.       HOME1+tangoHandTilt,
  13.       HOME2tangoHandIn,
  14.       HOME3tangoHandUp,
  15.       HOME4,
  16.       HOME5+tangoArmUp,
  17.       HOME6+tangoArmTilt,
  18.       HOME16+tangoHipTilt,
  19.       HOME17+leanBack,
  20.       HOME18,
  21.       HOME19,
  22.       HOME20,
  23.       HOME21tangoHipTilt,
  24.       HOME22+leanBack,
  25.       HOME23,
  26.       HOME24,
  27.       HOME25
  28. };
  30. int tango_keyframe2[17] = {
  31.       HOME0+tangoHeadTilt,
  32.       HOME1,
  33.       HOME2+tangoArmUp,
  34.       HOME3+tangoArmTilt,
  35.       HOME4+tangoHandTilt,
  36.       HOME5tangoHandIn,
  37.       HOME6+tangoHandUp,
  38.       HOME16tangoHipTilt,
  39.       HOME17+leanBack,
  40.       HOME18,
  41.       HOME19,
  42.       HOME20,
  43.       HOME21+tangoHipTilt,
  44.       HOME22+leanBack,
  45.       HOME23,
  46.       HOME24,
  47.       HOME25
  48. };
  50. void tango(int repeat) {
  51.   for(int i=0; i<repeat; i++) {
  52.   setFrame(tango_keyframe1, 800, 50);
  53.   setFrame(tango_keyframe2, 800, 50);
  54.   }
  55. }

It’s weird because tango looks way more complicated than a movement that has 6 frames, the ‘both arm jingle’. This is where MANOI jingles both of its arms, so one is back and the other is forwards, then the hands both jingle.

  1. int bothArmJingle_frame1[17] = {
  2.       HOME0+200,
  3.       HOME1,
  4.       HOME2+leftArmOut,
  5.       HOME3+leftArmForward,
  6.       HOME4,
  7.       HOME5+rightArmOut,
  8.       HOME6+rightArmForward,
  9.       HOME16,
  10.       HOME17,
  11.       HOME18,
  12.       HOME19,
  13.       HOME20,
  14.       HOME21,
  15.       HOME22,
  16.       HOME23,
  17.       HOME24,
  18.       HOME25
  19. };
  21. int bothArmJingle_frame2[17] = {
  22.       HOME0+200,
  23.       HOME1leftWristMovement,
  24.       HOME2+leftArmOut,
  25.       HOME3+leftArmForward+50,
  26.       HOME4rightWristMovement,
  27.       HOME5+rightArmOut,
  28.       HOME6+(rightArmForward170),
  29.       HOME16,
  30.       HOME17,
  31.       HOME18,
  32.       HOME19,
  33.       HOME20,
  34.       HOME21,
  35.       HOME22,
  36.       HOME23,
  37.       HOME24,
  38.       HOME25
  39. };
  41. int bothArmJingle_frame3[17] = {
  42.       HOME0+200,
  43.       HOME1+leftWristMovement,
  44.       HOME2+leftArmOut,
  45.       HOME3+leftArmForward,
  46.       HOME4+rightWristMovement,
  47.       HOME5+rightArmOut,
  48.       HOME6+rightArmForward,
  49.       HOME16,
  50.       HOME17,
  51.       HOME18,
  52.       HOME19,
  53.       HOME20,
  54.       HOME21,
  55.       HOME22,
  56.       HOME23,
  57.       HOME24,
  58.       HOME25
  59. };
  61. int bothArmJingle_frame4[17] = {
  62.       HOME0200,
  63.       HOME1,
  64.       HOME2+leftArmOut,
  65.       HOME3leftArmForward,
  66.       HOME4,
  67.       HOME5+rightArmOut,
  68.       HOME6rightArmForward,
  69.       HOME16,
  70.       HOME17,
  71.       HOME18,
  72.       HOME19,
  73.       HOME20,
  74.       HOME21,
  75.       HOME22,
  76.       HOME23,
  77.       HOME24,
  78.       HOME25
  79. };
  81. int bothArmJingle_frame5[17] = {
  82.       HOME0200,
  83.       HOME1leftWristMovement,
  84.       HOME2+leftArmOut,
  85.       HOME3(leftArmForward+50),
  86.       HOME4rightWristMovement,
  87.       HOME5+rightArmOut,
  88.       HOME6(rightArmForward+50),
  89.       HOME16,
  90.       HOME17,
  91.       HOME18,
  92.       HOME19,
  93.       HOME20,
  94.       HOME21,
  95.       HOME22,
  96.       HOME23,
  97.       HOME24,
  98.       HOME25
  99. };
  101. int bothArmJingle_frame6[17] = {
  102.       HOME0200,
  103.       HOME1+leftWristMovement,
  104.       HOME2+leftArmOut,
  105.       HOME3leftArmForward,
  106.       HOME4+rightWristMovement,
  107.       HOME5+rightArmOut,
  108.       HOME6rightArmForward,
  109.       HOME16,
  110.       HOME17,
  111.       HOME18,
  112.       HOME19,
  113.       HOME20,
  114.       HOME21,
  115.       HOME22,
  116.       HOME23,
  117.       HOME24,
  118.       HOME25
  119. };
  122. void bothArmJingle(int repeat) {
  124.   for(int i=0; i<repeat; i++) {
  126.   setFrame(bothArmJingle_frame1, 500, 0);
  127.   for(int i=0; i<5; i++) {
  128.   setFrame(bothArmJingle_frame2, 20, 0);
  129.   setFrame(bothArmJingle_frame3, 20, 0);
  130.   }
  131.   setFrame(bothArmJingle_frame4, 500, 0);
  132.   for(int i=0; i<5; i++) {
  133.   setFrame(bothArmJingle_frame5, 20, 0);
  134.   setFrame(bothArmJingle_frame6, 20, 0);
  135.   }
  137.   }
  139. }

Crazy right? I’ve found that in most of my other MANOI motions, the movement was very focused, with no other moving parts. So I made sure to make the most things move at once. 😀 I think it gives off a more exciting vibe. ^_^ Check out the video!

It really wasn’t as easy as the video makes it look. There were a lot of times where various movements wouldn’t match up, so they would catch the balance off-guard. Also, one of MANOI’s ankle servos went crazy on me, so it let the other foot down, causing a fall.

It’s super challenging to fix this because when MANOI falls, there are at least two things that temporarily break. You fix those things, but while you’re fixing them, other things break. While you’re trying to fix the new things, you can’t get a good grip on the robot because its entire body is made up of servos, and if you set the robot down, another thing will break. I would be willing to wager that working in no-gravity is a cinch compared to this!

Once everything is working again, you go and fix the motion. Fixing the motion is a whole separate routine of trial and error- you change some of the values of the servos and see what happens. There are two options for the next step, either have super fast reflexes, or only program with one hand on the keyboard. Since macs are not very one hand friendly, I have to have super fast reflexes to turn the power switch off on MANOI so that it won’t fall. If it does fall, you have to go back and fix everything.

In any case, once the motion is fixed, you go back and try it with the other movements. Just your luck, the battery runs out! MANOI falls, and you have to fix everything again.

It’s so unbelievably frustrating!! >:( Especially doing it for 3 days straight! There have been three times where MANOI has fallen off the table, about 1 meter (3 feet) tall. The risk of this is MANOI getting shocked by me, the air, and the carpet! It’s really nerve wracking, but thankfully MANOI is alright. Here’s a video of all of MANOI’s falls from the various videos that I tried to take:

At the end of the day, I really enjoy seeing MANOI move around. I think of it this way: it is my frustration and patience that has given an otherwise inanimate object LIFE. How cool is that? :)

There will be more videos of MANOI in its holiday gear showing up soon, with more blinky lights too!

Festive MANOI

Friday Night Robotics

Today I finished off a part of a project that I can’t blog about, then worked on MANOI. I didn’t really do much, all I did was configure (AKA: plug in) the force-sensing resistor and watch the results on Arduino’s serial monitor.

I was really surprised with the FSR! I thought there would be some jitter when it isn’t being touched (or, has no force on it) but it wasn’t. It’s value stayed at 0!

I can’t really add much AI to hockey MANOI until I get an IR sensor. I would mount the IR sensor on the side of the stick to see if there is a ball. That, combined with the FSR, would make a good scenario for the Bayes filter algorithm.

What I did tonight does have something in common with robotics….


You might think that I watched the movie… but I didn’t! I watched the special “The PIXAR Story” on Disk 2. I had major problems figuring out what DVD to get too… I had my mind set on the 3 disk one. When we get to the store, there is no 3 disk one… and they’re all packaged in French! I can’t read what the fudge it’s saying!! Then there’s like Blue-Ray and HD and normal and super and GOLD ULTIMATE EDITION and it’s all like “omg -.-“.

It’s pretty neat how similar robotics and animation is. When it all comes down to it, you’re trying to make an inanimite object move, interact, and have character! I still haven’t finished exploring all of the features on Disk 2… but it’s pretty AWESOME!