TIRDNKWIIT

If Google video is down, the videos can be found here:

Video 1
Video 2

 


 

The I really Do Not Know What It Is Thing!

I just had to do this - One day I may show more tricks with it..

I really do not know what it does

  • CPU: picaxe 18x
  • Power source: 4 DD cells

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

The Bee Gee’s, song

The Bee Gee’s, song “Stayin Alive” was running in my head when I watched the video. I could see great potential for some bad ass disco moves !

“Stayin alive, Stayin alive … oh oh oh ooohhhhh Stayin alive”

needs a white jump suit and and some flashy bling.

Great project Frits.

maybe you could get ydm to tap out the tune…

Hey looks nice!

Maybe you could get it to climb stairs or something… does it use some gyro-sensor-thingie (maybe those small accelerometers you’ve shown in another of your posts) for adjusting “legs” when you rotate it around?

- Jimmy

Lol - Yes - It could do

Lol - Yes - It could do Disco - and Yes, it could climb stairs, and yes, it is an accelerometer :slight_smile:

It is just immensely funny to program, I cannot stop playing with it even though I should get moving instead of messing, it does so many different stupid things with the simplest of code. It is like all spasms and all disco ever made is put in a blender :smiley:

It was based on my usual Picaxe 28 board on the video - but I need better servo-control (too much jigger), so now I just ported it to a nice board with a picaxe 18 and a dedicated servocontroller hooked up by i2c. I think the board is called axe21 or something, no time to check :slight_smile:

It is really quick to make one; It is just 8 servos mounted in a “H”, and then an accelerometer and a micro/servocontroller.

I’ll teach it some tricks, and shoot some video of it as soon as I get the time!

/ Fritsl

very nice, i loved the
very nice, i loved the idea… keep surprising us =D

How about making it walk? Or
How about making it walk? Or even run?

That’s awesome :slight_smile: Is that a

That’s awesome :slight_smile: Is that a 2-axis accelerometer, or 3-axis?

Dan

How about you build one and

How about you build one and make it do that :smiley:

/ Fritsl

2, but so far I am only

2, but so far I am only using 1 :slight_smile:

Thanks,

/ Fritsl

** Hmmm… Looks like you have**

 

Hmmm… Looks like you have the same servo control problem as my biped. I think it’s unlikely that my 'bot has Parkinson’s disease, so I’m looking for a more mundane cause.

I haven’t decided what that cause is yet. At first I suspected that the rising edge of the output pulse was not happening at a regular interval, so I set this output on a Timer1 interrupt. It didn’t fix the jitters. Then I though it mightbe the falling edge was not frequent enough, so I removed 15 of the servos (mine controls up to 16) and it still didn’t fix it.

Last of all I wondered if the PIC was rebooting due to a current drain. I counted the powerups, storing the result in EEPROM. But that’s not it either.

I’m due a complete rewrite of my code. More later. If you get to the bottom of it in the meantime, yell.

God created the integers; all else is the work of man - Leopold Kronecker

Hehehe! What a question! Who cares??

Seriously, though. Which accelerometer did you use? Did you get freebies engineering samples?

God created the integers; all else is the work of man - Leopold Kronecker

well that was quite a random
well that was quite a random creation but its a robot all the same. =)

Mine is rock steady

Mine is rock steady now.

First; The Picaxe (running at 4 Mhz) had to do 8 servos, and the code for them. That is known to give hiccups that usually does not matter in steering etc - but every jitter matters when the stunt is balancing.

I knew this, but just throw it together, knowing that board so well. The servos just clip on, and so did the accmeter, 1 minute job. I was actually surprised how well it handled it, also with crap code, see video. But… I would need total servo control.

 

So I am now using another board (AXE031) with a Picaxe 18 and a dedicated servo-controller by i2c.

That is first half of the fix: Someone to just give out steady pulses.

 

Second half is the code. I have read what you wrote, and this is hard to write in english for me, so please read twice or something… :slight_smile:

You know how every motion gives a kick-back motion? It goes for materials that bend, it goes for motors that continues after they should stop, it goes for joints on a robot that always will be loose, and it goes for the accmeter that first thinks things are one way, then gets a correction from the mechanics, and then thinks it is opposite…

All this means that if the code - even if it is at steady intervals - should never be able to jump a servo´s position from A to C to B.

 

What I did was to make “a second layer of variables”, I call them “pointers”:

A servos position is NEVER dictated from “the code”, from the sensors, or from an algorithm. These things ONLY alters “the pointers”, and always only with a step of 1 (one, uno).

AND

When ever a pointer is changed, it always happens only once in a cycle, and then the servo-controller is updated with the pointer’s value.

 

Result is some sort of semi-average position of what the code & sensor dictates.

You could think this would slow down the response, but:

  • If code dictates A, D, B… What you really want is A, B, B, as the servo cannot move that fast.
  • The pointer is changed every cycle, so if code dictates full throttle to one direction, the servos speed will be the bottleneck, not the pointer - it will move way faster than the servo.

 


Last, to really avoid “self-swing” (you know: Oh I am leaning forward, must correct, OMG, I am on my way to fall backwards, must correct even more, OOOHH I AM FALLING FORWARDS) - I “damp the code” all the time:

 

  • Pointers only are allowed to change if matters get “worse” in respect to “where we are”. This means that if we are tipping to the X-side, correction can only take place as long as we are tipping more to the X-side than in last cycle.
  • If we are in fact tipping less, “half a bit” is even added in order to get back.
  • “Sharp tipping over- edges” (Like “on this side of 150 do this, on that side, do that”) are avoided, and replaced with Like “on this side of 140 do this, on that side of 160, do that”.

*) “Half a bit”: I take a bit, and adds it to the vaue. Then I add one to the bit; Every second time the bit is 0/1 :slight_smile:

/ Fritsl

OMG, the second video is so
OMG, the second video is so cool, this robot has great potential. Keep up the great work!

Sudden start/stop

I understood perfectly your eloquent description on the first readthrough! My software also uses "pointers". The high-level code demands a position and the low level code gets the servo there as a background task. MY "pointers" are called "demanded position" as distinct from "current position". I am working on a version which gradually ramps up the speed instead of just ramping the position. I hope this makes it more smooth.

God created the integers; all else is the work of man - Leopold Kronecker

That was just jitter from

That was just jitter from when i had crap code and not a dedicated servo controller. But hey - that kind of things can be inspiration… possibly for later… :slight_smile:

/ Fritsl

I love this robot…

I want one.

Make one, it is extremely

Make one, it is extremely easy!

Get 8 standard servos, and one of these You do not need the accele-I-cannot-spell-tat-meter to make tons of tricks with it. And the rest is just sticks, bolts and glue!

I must show some more tricks this fella can perform some day soon. Am too busy with project Wall Racers at the moment :smiley:

I will give you my code and everyting, help etc :slight_smile:

/ Fritsl

I will!

well, I think the most interesting part of the job is the accelerometer, so I won’t renounce to it…

right now, I’m working on upgrading my “War Pig” but as soon as I have some free time I’ll sure do something like that… I really like self-balancing robots ^^

All righty then!
My holiday starts in a month or so, and then I will have plenty of time to build. I’ll contact you by then, Okay?