PDA

View Full Version : [Contest Entry] Hockey Playing Humanoid



RobotGrrl
12-30-2008, 08:50 AM
Hello TRC World! :D

My project is a hockey playing humanoid.


http://farm4.static.flickr.com/3263/3140308944_03f2330630.jpg

It uses a MANOI AT01 kit, controlled by an Arduino (with an ATmega328) with a Wave Shield, and a SSC-32.

Humanoids have always been associated with walking or running. This project focuses on a different action for humanoids, skating. The end result of this project yields an interesting vision of the possibilities of skating robots.


Introduction

The idea came around when I was trying to make my humanoid (MANOT AT01) walk. Instead of taking a "big bite", I decided to take a smaller bite and make it slide its feet. However, I quickly realized that when it slides its feet, it looks exactly like a newbie Canadian hockey player!

A Canadian newbie hockey player begins to skate by almost walking. Although the skater doesn't go far, he does move forward due to the friction between the blade of the skate and the ice.

When I did notice this, I quickly grabbed some lego to create MANOI's own version of skates, which are similar to rollerskates. I mounted the lego onto the feet using velcro.

The hockey stick I just found laying around. I had to cut a bit of it off, as it was too tall. I use tape and tie wraps to keep it mounted to MANOI.


http://robotgrrl.com/blog/wp-content/uploads/2008/11/img_4004.jpg



Development

Development on this project was mainly trial and error. To get all of the motions correct so they all balance together was critical.

Instead of using the controller board that is usually used to control the MANOI, I did a major transplant and substituted it for the Arduino and SSC-32. This allows me to have much more flexibility in terms of sensing and creating motions. The H2H software was too problematic.


http://robotgrrl.com/blog/wp-content/uploads/2008/11/IMG_4036.JPG

Usually what would happen is I would draw out a motion, on paper, that I would want to create, and I would put it into MANOI. Sometimes I got it first try, other times I didn't. However, the cool part is that a lot of the motions stemmed from the ideas of other motions.

For instance, in the video of MANOI Skating with music (seen below), the motion where MANOI is running is actually a faster version of the sway motion! That was really surprising.

The development for the Wii nunchuck part of the code was quite easy as I had already established all of the variables and settings of when the nunchuck is tilted left or right, forwards or backwards. Instead of using real numbers for it though, I just defined a "home position" of the nunchuck, and subtracted or added numbers to the accelerometer axis, x y and z.

The music part of the wave shield was quite fun and straight forward. I looked around for the songs, and put them on a SD card which plugs into the wave shield. From there, it was just a simple method call inside of the Arduino.

Once the above developments were done, I wanted to create a version of MANOI that could sense if a ball/puck/object was there. I did this by using LDRs and LEDs.

Rest assured, I would have used IR Sensors if I had any ;) This was the best alternative I had, though!


http://farm4.static.flickr.com/3266/3139479837_766d0d2621.jpg

http://farm4.static.flickr.com/3220/3140309622_73fa01f9a1.jpg

On the left side of the sticks the LEDs are in a yellow casing, and on the right side they are in a clear casing. There is some effect on the reading, however their values change precisely the same when an object is in front of the stick.

The black construction paper enclosure around the LDRs was required to direct the reading. Otherwise, the light from the LEDs saturated the reading and no difference was seen when an object was present or not.

I observed the change between the readings of when there was an object present, and when there was not an object present.

From this, I created a simple neuron, where if the input values succeed a predefined threshold, it will perform an action. In this case, the action would be to shoot the object.

I had to tweak the threshold a little to make it work with smaller objects, such as a roll of electrical tape.


http://farm4.static.flickr.com/3251/3139478581_83b815196c.jpg?v=0

In the video below, you will observe that it does work with a roll of electrical tape, a ball, and a spool of lead solder (the LEAD solder isn't mine, it's my DAD's because he can't use non-lead solder like the rest of us -_-;). The spool is white, which proves that the theory does work, meaning that the light that is reflected from the LEDs back into the same LDR board does not obscure the readings.



Results

Here are the videos that you can look at!

This is the first video, where I was just getting the motions down.

YouTube - Hockey MANOI -WIP Robot-

The program is basically a sequence of movements:

- Forward 6 times
- Shoot 3 times
- Backward 6 times
- Shoot 3 times

As you can see, the forward and backward movements both result in MANOI moving backwards. As I later found out, through trial and error, it was due to the Arduino and power cords limiting the movement of MANOI! Once they were mounted properly, it worked much better.


This is the second video, where MANOI is controlled by the Wii nunchuck!

YouTube - MANOI Wii Hockey

http://robotgrrl.com/blog/wp-content/uploads/2008/11/IMG_4040.JPG

http://robotgrrl.com/blog/wp-content/uploads/2008/11/IMG_4032.JPG

You press Z to shoot, and you hold C and tilt to move it. :D MANOI can move forwards, backwards, left, right, and home.


This is there third video, where MANOI is playing a little game of hockey by himself while listening to some music. The song that you first hear is the Hockey Night in Canada theme song!

YouTube - MANOI Skate + Music


This is the last video, where MANOI can autonomously decide if he should shoot or not.

YouTube - MANOI Hockey Robot AI

(The quality in that video is quite yucky, please check out the video on vimeo (http://vimeo.com/2641041?pg=embed&sec=2641041) if you'd like to see it in better quality)

http://farm4.static.flickr.com/3093/3140309114_d7f3818783.jpg



Conclusion

In conclusion, this project was SO much fun! The only time I didn't enjoy it was when I was trying to hold MANOI, who was whacking me with its stick, with one hand and trying to type in some code with my other hand.

My favourite part was watching people play with the Wii version of the code. They really enjoyed it!

I also liked making the AI part too, that was pretty fun.



Next Steps

The next steps would include coding a modified version of the Bayes filter algorithm to predict if an object is in front of the stick or not.

More sensors would be fun, like three proximity sensors mounted on the front, left and right. This way MANOI could avoid opponents trying to take the ball off of it.

I would also add two more servos in the leg that would allow rotation. This would then allow me to create a more realistic skating humanoid, where there would actually be a stride.

Perhaps I could also add a camera to the head so that it could track where the ball/puck/object is.



That's my project, I hope you like it! ^_^
You can see more of everything I mentioned at robotgrrl.com

sam
12-30-2008, 10:37 AM
Wow! It's a really nice project!

Very nice videos and ahhh... the zip ties! :veryhappy:

I liked how you did the sensor to "see" the "puck". It's really cool.

Keep us updated on all the modifications you bring to this little guy!

Sam

Alex
12-30-2008, 11:53 AM
really neat project robotgrrl! Thanks for the entry:)

Keep us updated with the progress!

4mem8
12-30-2008, 01:07 PM
Oh so cool, so cool, Nice work robotgrrl, something a bit different.

Adrenalynn
12-30-2008, 02:10 PM
Only a Canadian Girl could come up with the skating hockey playing autonomous humanoid. Bwahahaha! That's AWESOME! :D

sunithaya
12-30-2008, 02:34 PM
I love IT Robotgrrl! Is this the beginning of the Hockey Robot League? Will robots confront humans and defeat them by 2050? :veryhappy: that would be scary, reminds me of the movie Rollerball.
I think if you add a simple ratchet mechanism to the wheels it would improve it's skating ability quite a bit. It helps that your wheels are already notched, so a simple gravity assisted "tongue" set at an angle over the wheel would prevent it from going backwards. Just a thought:wink:

Very cool and fresh project, congrats!

Adrenalynn
12-30-2008, 03:03 PM
I wonder if there's enough DOF to teach it to actually skate? Pushing off at the angle, balancing until the skate rolls out, then alternating?

DresnerRobotics
12-30-2008, 03:17 PM
I wonder if there's enough DOF to teach it to actually skate? Pushing off at the angle, balancing until the skate rolls out, then alternating?

Would be immensely easier with hip rotation, which I don't believe the Manoi has. Still possible with the current leg design, just a lot more difficult and wouldn't be as smooth nor articulated.

Great project Robotgrrrl!

Adrenalynn
12-30-2008, 04:37 PM
I wonder. I just put on my rollerblades a little bit ago and played with my skating a bit. I've never really tried to analyze the different techniques. A very smooth and regular "gait" is to lock your hips inline (no rotation), and push sideways and somewhat back with the raised skate. You can even do it with the knee locked, although it looks smoother with the knee relaxed and the tip pointed down at the back of the stroke.

This is for inline and iceskating. Roller skating is a little different - I'm a really good inline and ice skater, but I suck rocks at roller skating...

ooops
12-30-2008, 06:00 PM
Wow, this project is cool on so many levels. You have just about everything covered ... humanoid, wheels, cool LEDs, tape, wire ties. If you can find a spot for a laser I would say it has it all.
Great idea, and you have pulled it off well. Please keep us updated!

Adrenalynn
12-30-2008, 06:50 PM
Hey, she's using IR light to detect the target - that may be better'n a laser (unless said laser is mounted to a fricken shark! Bwahahahaha!)

RobotGrrl
12-30-2008, 10:04 PM
Thanks all for your comments!

"Hockey Robotic League" sounds quite thrilling! I wonder if, futuristically thinking, more people would like it because humans wouldn't get hurt. Hmmm!

A rachet mechanism is a pretty good idea, but I would like to have the flexibility of being able to have MANOI move forwards and backwards, like when it is controlled by the nunchuck.

At this moment, MANOI can't rotate it's hips. I would need to use two more servos. (I think I mentioned this in 'Next Steps' ;) ). It would be super fun to make new skating motions for that!

Just to ensure it's clear... I'm using yellow LEDs, and sensing with LDRs. No IR, unfortunately :( (it's okay adrenalynn, I'll treat you to a coffee at Tim Hortons (hockey pun intended), hahaha)

Lasers would be cool! I could imagine MANOI pulling a move like "melt puck/ball/object with laser".

Again, thanks for the comments! ^_^

Adrenalynn
12-30-2008, 10:24 PM
Sorry - my bad! I figured the yellow glow was a slightly IR sensitive CCD... Thanks for the correction.

The real reason I missed it was trying sooo hard not to post anything about a beer-bogarting-bot. Gawd am I trying to resist...

[edit] Dang it! You made me do it! :tongue: It's your fault! :D

RobotGrrl
01-14-2009, 05:20 PM
Hehehe!

I only need two more servos and some brackets (and screws) to add the extra DOF needed to rotate the leg. :D