Jeffrey The Quadruped

Hey guys,
Just found out about LMR and wanted to share some of the robots we have made in past. (so, I will post 4-5 more projects soon)

Jeffrey The Quadruped is a quite small walker with 4 legs. It has printed circuit board with a custom arduino setup, using an Atmega328.
It has a Sharp IR Rangefinder attached on 2 servos and uses a simple rotational object tracking algorithm to let him create temporary low resolution visual maps. This way it can stay on a table, stay away from objects and even track your hands with a single sensor.
Programmed it to be a pet robot. It can interact with humans at a very low (but cute) level.

Here are some more photos:






And some photos from the first prototype (before the casing and printed circuit board):




Planning to build a dock for it to automatically charge itself in future.


 

It is a pet. It can stay on tables without falling, navigates around via IR sensor, interacts with people

  • Actuators / output devices: 2 micro servos, 8 mini servos
  • Control method: Full autonomous
  • CPU: Atmega 328
  • Operating system: N/A
  • Power source: 7, 2V 800 mAh LiPo battery pack
  • Programming language: Arduino
  • Sensors / input devices: Sharp IR
  • Target environment: indoor

This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/jeffrey-the-quadruped

That’s awesome!

I love how his head spins in circles then all of a sudden he’s staring right at you. AWESOME!! Great job.

Thanks a lot :slight_smile:

Thanks a lot :slight_smile:

Yeah, I purposely used a

Yeah, I purposely used a piezo buzzer to create a bug like sound. Love that sound. Also, adding sound to your robot makes it psychologically more comfortable to interact for humans. :slight_smile:
I guess I will add a new project every day, too busy these days.

Awesome ! I am currently

Awesome ! I am currently working on quadruped but this one is great !

Dead-on

That is what is really striking about this bot. It has so much personality. Seems to be pissed off when things get in his way and the twitchy head thing I mentioned before. Like a grumpy mad-man! Perfect. LOL

I didn’t even mention the

I didn’t even mention the angry/fearing behavior we have intended to reach, it’s great to see that you got the exact same feeling that was aimed for. :smiley:
Thanks! 

Awesome…more, more, more

Awesome…more, more, more please :wink:

Could you try to explain how the mapping is working? Does it require a EPROM to save data or do you just store it in te memory?

What servos are you using? With my Chopstick Junior I got some broken after a while…yeah, that cheap 9g servos…

 

 

** He’s very cute! **

 

He’s very cute!  Awesomely cute.  I’d love to build one of these - looks ot be within my capabilities (perhaps) - though some more in depth info would help a lot!  Hint, nudge…  oh, who am I kidding … Pleeeeeeease begs

hi jeff

hey thats great! 

You don’t need the write it

You don’t need the write it in the eprom, it keeps a very small amount of data in realtime (does not keep a log), so the memory is enough. Although, you can use the same concept in a way where you log the data for more complex calculations.
It has a very low resolution of 10x2. Basically what it does it to create an array of distance values (from the IR sensor) as the head moves.
If you watch it as it moves forward, you will see a circular-like movement of the head, it scans 2 lines (one 90 degrees to the ground and one 45 degrees to the ground). I keep 10x samples for each line and store them in an array. After that it depends on how you process that array, for example Jeffrey uses the first line to avoid obstacles and the second line to avoid falling down of a table. 
For the first line I find the lowest value to locate the location of the “obstacle” and the highest value to find the correct place to move in order to avoid it. (the position of these values on the array corresponds to real physical positions since the scanning process is linear). I do the exact opposite for table edge avoidance. Of course, there are exceptions with extra actions, but this is basically how it works.
With the same method you can create a larger resolution array for more calculations, but of course the time lapse between the samples would increase.

Those servos do break. Jeffrey broke 2 servos till now. I plan to redesign its legs with a more solid structure. The correct way to avoid breaking servos is to build mechanical legs and control them via wires connected to the servo. That way you can take some of the tension off the servos.

Just seen your chopstick junior, its awesome :D 

I wish I did a complete

I wish I did a complete documentation of the building process. Are there any specific subject that you want to know?

Wow, thanks for explaing

Wow, thanks for explaing that in such a detailed novel :wink: Now I can make myself an image about how it works.

Yep, Chopstick Junior was a lot of fun to build to show off and even doing a workshop in out hackerspace and let 50 insurance sellers build two of Chopstick Junior clones ;-) 

please upload the arduino

please upload the arduino code!! great job!!!

Yup - code

 

It was pretty much the arduino code that I was after too.  If it happened to be annotated into the bargain that would be GREAT!  I’m a total noob at arduino coding, so being able to look at (read: probably steal) other people’s robotic code would be awesome.  This design is very cool, and I think it may be used in a planned pet robot - though with different cues for certain behaviours.

Also, some pics of how the legs are attached to the body (and which servos you used).  I have been humming and harring about whether to use legs or wheels in my pet.  I was thinking legs might be too difficult, but these appear to be only 1DOF, and yet still allow him to move relatively well.

Thanks for posting him - he’s a cute little dude.  I especially like that he makes noises.  It’s almost like a ‘purr’.  :slight_smile:

Hey guys, sorry for the late

Hey guys, sorry for the late reply! I have been working on a new robot, pretty much shut myself to the world.

Of course, I will send you the code (once I get to my computer at house), but keep in mind that the code is specifically written for jeffrey’s body. it would require lots of trimming and fixing even if you make a similar structure.  

:slight_smile:

Cool. I look forward to meeting your new boy.

It was a look at Jeffrey’s personality stuff that I was keen on. Oh, and info on how you connected the buzzer. I want to give Hexy some personality when he arrives. A happy noise and a grumpy noise for starters.

i love this thing.

i love this thing.

Nice work

Kinda reminds me of bamby and his first steps.  

Blink eyes

How to make eyes keep blinking? looks alive, cute shape and smart design!