-
Ivan Arm Revisited Again
02/20/2017 at 15:33 • 3 commentsI realized a simplification in Ivan's construction by thinking about the bearings. These are 3D printed all-plastic bearings made of planetary gear sets, most notably AVA's Gear Toy 2 which you can view here. That's a two-to-one gear reduction from innermost "sun" gear to outer gear with the inward facing teeth. The other six are the planet gears.
I spent a lot of time cleaning up the file, parameterizing it better, and adding the robot parts including NEMA 17 motor mounts, frames, arms, joiners, and base. It still has no actuator. It's already pretty top heavy with the tallest motor at 0.3 meters from the base, so I think it will wobble a bit. It has the advantage that almost and possibly all of the parts I already have, owing to it being almost entirely plastic. I have the motors and the control electroinics. I may need a power supply.
The other neat thing about this robot is that since it's so printer-heavy-usage, I can make lots of them. outfit them with different motors and make them different sizes, what not. Looking forward to playing with this robot!
Les
-
Ivan Moves a Coffee Cup
02/19/2017 at 18:06 • 0 commentsi got the motion and some construction details worked out a bit better.
Les
-
Ivan Arm Revisited
02/19/2017 at 02:59 • 0 commentsThis is a design I created tonight. It's based on NEMA17 motors, since I have six of those from an old 3D printer I took apart. The idea is to make it as fully plastic as possible, with as few fasteners as possible (if any). I know the rotations aren't correct yet, just messing with it for the first night. I plan to make it in nylon or carbon fiber nylon. though another filament may be a better choice. the box is the claw.
hidden under the base is a gear with the teeth facing in and a motor driving the gear, plus a base that rides on bearings. The note (not visible) in the center of the base allows wires to travel to the steppers. The idea is to save the expense and complexity of a slip ring by just putting extra wire harness length and letting it twist up to a a few revolutions. eh, it's an idea.
Les
-
Ivan the Jingle Machine
02/17/2017 at 21:04 • 0 commentsThe latest thing I've done with Ivan occurred during my recent absence from Hackaday. I added rubber bumpers to Ivan's spinner and put one inch diameter jingle bells in it. I tried from one to thirty jingle bells and found that four was the ideal number.
For a while I had the beginnings of a jingle bell song going but this and that and some blown chips later, I just set it at max rotary velocity for the sake of demonstration, lol.
I van has a greater purpose in life but for now he is a Jingle Machine!
Les
-
AIvan Shows Brain Activity
08/28/2016 at 14:14 • 0 commentsToo much to say, too much to do... Well, suffice to say that Ivan has what I'm calling a "cognitive array" which consists of cubes that each have six cells, one for each side. The cells are similar to neurons, but they have a one cycle time delay and they fire rather than hold their values - to closer model real brain cells. Weights are like neural nets, and sum of products also is, but the time delay, lack of sigmoid function, and especially the firing approach make the cells different from neurons. Each cell is fully interconnected and paths from cell to cell exist in all possible directions (except local diagonals), so the structure is highly interconnedted. That interconnectedness is what I'm guessing we could call the "Einstein observation, in which those who studied Einstein's brain after his death observed a high degree of interconnectedness. Anyway, a few days more of coding and I hope to be ready to unleash this creation on at first one and later many Google Cloud servers. Yay fun! - Les -
AIvan_2 and AIvan_3
08/19/2016 at 14:53 • 0 commentsI just uploaded the zip files for rev 2 and 3 of AIvan, AKA Ivan's BrainZ. In rev 2 I learn (or re-learn) some basic file i/o and pointers and header files stuff. As I get more comfy with K&R and my admittedly archaic coding practices, I take time to really think about AIvan.
One thing was the concept of long term and short term memory in Ivan. The Google cloud service mentioned a feature of their cloud intances called "persistent memory" and since I plan to one day soon unleash AIvan unto this cloud, I thought it might do well for the long term memory of Ivan to exist on the disk file storage. When Ivan woke up he could read his disk file and then when he fell asleep he could write it out. Then I thought some more a bit later and realized that as humans we don't have a total recall moment upon waking and a memory dump at rest. Rather we access our long term memory the whole time we are awake (or mostly we do). So I should code Ivan accordingly.
Specifically this has caused AIvan rev 3 to show the humble beginnings of a concept emerging. It all started in the wee hours of last night (Friday morning, Aug 19, 2016) as I spoke with my friend Ixmal Supermarine of London. We spoke at length about various interesting topics leading up to AIvan and at the end of our convo Ixmal mentioned something very curious. He said if I could make Ivan do a good job at handling the unexpected, the unpredicted, ie the untrained phenomena then that would be an useful discovery.
I thought about that in the context of the disk file as long term memory and I know this will sound crazy to you but as I sat and wondered, I heard two words. The first word was dream and the second word was imagine. Actually what I heard was "Ivan must dream" and I forget the context of the word imagine. This is how I receive communications of a spiritual nature, or so I believe.
So now it began to make sense. Dreaming can be thought of as thinking with sparse or no long term memory access, at least in a vague sense. And imagination is like dreaming while awake (ie daydreaming). Also we know that we can't recall dreams if we don't write them down immediately after waking up - no long term memory storage (only short term). So to make an AI dream or imagine, we can create dream behavior just like waking behaviour and decide what type of memory access is involved.
These notions are still formative obviously and exist as vague concepts that are at best only approximately modeled by the code, so I think we should take them with a grain of salt and maybe think (a lot) more about them before drawing any conclusions. I'm just writing down what I am thinking about - what do you think of it all?
Les
-
AIvan Under Construction
08/19/2016 at 01:33 • 0 comments"AIvan" is what I am calling Ivan's AI brain. I am writing AIvan in C for portability and so I can get back to basics. I have been coding in C-like languages for so long that I have forgotten what little original K&R C I ever did know! With some bit of stumbling and playing around with terminal emulation (retro fun a la nostalgia!) all day and had a blast doing it.
Then in an after-dinner tired and lazy state of mind I came across file I/O. Even though it looks very familiar and learnable, I am too tired to continue, alas and alack... What I can do is tell you the structure of Ivan that I have created.
I'm calling Ivan's long term memory his disk file(s). In main() I have put a wake_up() function which will contain a file read operation, a while loop containing a state_of_mind() function which I may rename, and when the state_of_mind() function ends the while loop with a zero value in it's return function, the final function executed is called go_to_sleep() in which the long term memory write occurs.
After some (not much lol) thought I decided to keep the long term memory file open for access during the waking state because that's how we humans think after all. We don't recall everything in the morning and keep it all in short term memory throughout the day, then save and forget it all at night. We always have access to it during the waking state.
Similarly RAM is for short term memory. Well, I may not have the clearest and best thought out way of doing things but this is the type of planning that I am doing at this time. Up next is to actually add some file i/o which will begin with a single number for easy initial effort, then some more and them a whole lot more after that - you know how it goes. I will upload a zip file called AIvan_1 in a moment so you can look at it, laugh and point and make funny faces, then tell me how stoopid I am lol. As long as you teach me what is a better way to do itI dont mind.
Les
-
Ivan's "Cloud BrainZ"?
08/17/2016 at 00:42 • 0 commentsOK so I have this idea. I've been wanting to establish a neural net for Ivan's BrainZ for quite some time now, decades actually and these days I am getting more and more focused on the idea. So much so that I'm willing to put my money where my mouth is. However my limited human BrainZ are not quite capable of doing the programming. For some stupid reason I have never been able to recreate the backprop allgorithm - close yes - but no cigar. So what If I got one or some of you to do the job.?
In fact, why don't I make it interesting and pony up a small fund for some cloud based processor power? I hear Google has an awesome cloud for super cheap and made just for this type of thing. If I offer to foot the bill, would one or more of those reading this want to program up some BrainZ for Ivan? It would be a really fun component of project Ivan and we could enjoy being part of a long-term project that may one day soon result in a sentient being coming into existence (hey, I dream big but this is not such a big dream today).
Let me know what you think - I'm interested in your reaction to this idea.
Les
-
Ivan the Jingle Machine
08/16/2016 at 23:36 • 0 commentsIvan is a robot of many forms, all integrated together into some collective robot entity. After this communal Ivan project sort of faded into oblivion last year, I kept the robotic base of Ivan as a perpetual reminder to one day begin again. Ivan is my friend for life of robotic form and if you build him you can have your own Ivan too, so even if at times i stray, Ivan is always there waiting to be developed further. At any rate, the image below shows what I recently did with Ivan.
This part of Ivan's physical form is affectionately known as "the Salad Spinner" because of it's rotating bowl, the bottom of which counterrotates at full speed and the walls of which rotate at 1/3 of full speed. it is also reversible under control of it's brains, an Adafruit Metro Mini board and it's brawn, a SN754410 motor driver chip.
At the moment the bottom's attachment hole is stripped so I need to make a thingie that grips the D-slot better somehow. I plan on doing that tonight. The microphone has a half wave rectifier (a diode) and a low pass filter (an RC circuit) to convert the audio into an noise level for telling the circuit whether to spin or not (not if nobody is making noise, spin if there is noise). This prevents the device from running all night long when no people are nearby.
It's not very smart and it does not communicate with other devices, but it has some coolness in it's own silly way. Also I just got in the mail some jingle bells to put in the bowl. As soon as I fix the grip on the shaft (probably with a gripper tightened with tie wraps), I will test it with the jingle bells and attempt to make it play jingle bells, which of course goes like this:
JIngle Bells
Batman smells
Robin laid an egg
The batmobile
Lost it's wheel
And the Joker got awaaay!
(or something like that. Les out, praise the Lord!).
-
Here goes nothing!
04/29/2016 at 01:04 • 0 commentsHey everyone, I'm back on this project. For the time being at least, see I was getting the robotic urge to create again and I looked at some robots, the arms, the drawing bots, a delta bot, and some way cool BB-8 Ball Droid bots including the Sphero one for $150! I wanted to create something unique so I thought of a wearable bot... But nah, I want a companion bot, something that sits here next to me at the computer and does cool stuff.
Then I was talking with my friend John and he reminded me of THIS project! He reasoned that I should go back and take this project further rather than just leave things in the past and redo a bunch of work. He's right of course, so I'm back. This time I have a working 9DOF sensor and code from Adafruit that tells me PRYs data (absolute orientation in pitch, roll, and yaw), plus WiFi chops to boot with enough knowledge of the ESP8266 chip to be dangerous to myself and others lol.
And so it begins! Yet again! Stay tuned!
Les
Make history!