Saturday, December 17, 2011

Down the track...

I've got photos to post, just haven't had the time...

Well, I've completed the final exam for Stanford's open AI course, I have to finish off some stuff for the Machine Learning one... Not really happy with the ML - massive troubles getting the videos to work.

Am getting the legs together, although I've found I needed to go back over the seams with JB-Weld. I'm still going to put carbon fibre inside in order to add enough strength. I also got the A&A R5 head kit - I need somewhere to put sensors. I interact, therefore I am...

Saturday, October 15, 2011

Back in to the swing of things...

Well, after an interim, here's what's been happening...

Firstly, I've inspired a friend to be into robotics - which means that I'm having to improve my gain actually going things.... which is very, very good. I've actually gotten around to getting my mosfet based h-bridge to work. I'm going with a complementary pair system, rather than using just n-channel ones... I'll go into my reasons why later,  though. And I should actually check the values for the resistors I'm using with it. I have found, however, that you can't leave the gates floating - they tend to over heat... but it's easy enough a problem to solve.

Secondly,  Stanford University have started their online, unofficial Artificial Intelligence and Machine Learning courses - very timely when you're attempting to build an autonomous robot.

And finally, my legs and feet are on their way care of A&A! Of course, I'm now looking at ways to... improve things. The way that I figure things, it doesn't look like it will be difficult to make a few moulds, and build them out of fibreglass... or carbon fibre... or carbon/kevlar...

This is becoming a really good way to learn plenty of stuff.

Friday, September 16, 2011

After an interim...

Short post, covering a few topics...

Let's see... Am going to list a couple of more projects that I'm working on...

1. Speakjet based text-to-speech reader. I'm using a Etherten Arduino board, primarily because it has a micro-SD slot, which will go into the Speakjet via the matching dictionary chip. The idea being to be able to download text files from, for example, Project Gutenburg, and have the board read them aloud. Obviously, this isn't going to be as good as a properly produced audio book, or even the best quality text-to-speech programs, but it's an easy enough project...

2. Electronic binoculars. Or rather, monocular. Okay, I'm a Star Wars freak - I'm building my own astromech, after all. But these aren't that difficult to do, really... Will start off with a 3 axis accelerometer, outputting to a video overlay processor, on top of a camera signal. Can then add magnetometer, gps, etc., info. The hard parts will be range finding, autofocus... and making my own zoom lens.

3. Have ordered legs and feet for my droid! Now just waiting...

Friday, March 4, 2011

Toward a Theory of Mind, The Precis.

Tacto, ergo Sum. I touch, therefore I am.

I was trying to mentally compose this post earlier today, but find myself lost for words. Basically what it comes down to is that intelligence seems to depend a lot on being able to detect the environment around one's self, as it does sheer processing power.

A robot requires sensors, both proprioceptive and exteroperceptive - it needs to know about itself and about the world around it. Of course, this is potentially a lot of information - hence my interest in distributing such processes. Mind is a function of brain and the information it can process.

The simplest robots have touch sensors, wandering aimlessly. Such a robot cannot have much awareness of what's going on around it. Navigation, planning, and so on, are all impossible.

We introduce proprioception. Some simple additions, and a robot can learn when its batteries are low - it becomes hungry. It learns how far and fast it is moving, it can start to sense when its motors are overworking. We add additional sensors - it can become more aware of what's going on around it...

The more sensors we add, the more processing we have to do for the inputs, but the more the robot knows what's going on around it. I will write more later... but the thrust of it is - we interact with the environment, therefore we are.

On a different note, I actually made some progress on the motor controllers, the interfacing between the microcontroller(s) and the mosfets that control the power to the motor. Although, thinking about it, I perhaps should use optoisolators to eliminate the chance of interference.

Wednesday, February 16, 2011

Turning fiction into reality...

Ages ago, having settled on wanting to just go beyond a static display, basically a non-functional but full-size model, or a radio controlled toy, but actually wanting to create a proper robot, a strange idea settled on my mind.

Why not give the robot some of the functions that astromechs, within the Star Wars Universe, have - or, at least, real-world variations. Fire extinguisher - easy... if you don't mind only having a couple of short bursts... Welder - not easy - lots of power, plus a lot of fine coordination, touch perception, and delicate sight processing required, although a small (~ 5 Watt) soldering iron might be possible. Two big functions, however, do lend themselves to adaptation.

Firstly, astromech droids, such as the R2 and R6 series, are starship engineers, albeit dedicated to repairing said vessels. Additionally, the R4 series are specifically programmed for working with land based vehicles. The obvious real-world version is to have an OBD-II interface. For those not in the know, OBD-II stands for "On Board Diagnostics (version 2), and is the standard diagnostic interface for car engine management computers, since about 1994 (or so). It may not allow my droid to change the oil in my car, and I think my car is just a little older than OBD-II, but it's something...


OBD-II interface board, circuit board Silicon Chip, Feb 2010.
OBD-II interpreter chip by Elm Electronics

Of course, the board as it stands could do with a couple of modifications... I'm going to add optocouplers between this board and the board to which that I connect it, particularly removing the leds that signal to human eyes that something is happening. Software is something else, of course, but...

The next application is having the droid actually doing some orbital mechanics - what use is an astromech if I can't get it to calculate orbits and navigate from Earth orbit to somewhere else in the solar system?

Saturday, February 12, 2011

In a mind to...

The more I've been thinking about it, the more I like the Beagleboard - lots of processing power, small size, lowe power consumption, plus a growing community of developers. I will, however, still have quite a few AVRs sitting in there, doing control.

Essentially, the AVRs will be working as the nervous system, the Beagleboard(s) the higher brain functions. Higher functions, such as OpenCV, Java Astrodynamics Toolkit, OBD-II interfacing... Fortunately, I have an OBD-II interface board that's been sitting away, ready to be used. I have to finish the last couple of things, like actually connecting the OBD-II plug, and adding in some optocouplers. Actually making sense of the data going back and forth will be interesting.

I still like the idea of having some neural network processors doing some work... and I do believe in using several processors doing individual jobs, rather than having one trying to do lots

Saturday, February 5, 2011

Body building...

Woot! Frame arrived yesterday, and I've put it together in a couple of hours.





It looks good, feels solid - great work from James. Of course, I still need legs, ankles, feet... head, skins... But - a good marker... And a first step into a larger world...

Sunday, January 30, 2011

Eye for an eye... and a slightly smoky thought...

As part of my thoughts on the internals of my droid, I've come across two very interesting things. Firstly, a few people have ported OpenCV, an open-source computer vision project, to the Beagle Board-xM board, running under Linux. Very nice, 1GHz processor, very low power consumption, quite powerful really... Vision would be handy to have but, of course, but is dependent on the power required to process - and the software required to make best use of it.

I could easily use a board or three of these - especially as they will happily cluster. However, my personal preference is to have boards running dedicated processes, rather than a single board (or two) doing everything. Additionally, one board could be run just for any orbital mechanics calculations - what's the point of having an astromech if it can't do any astrodynamics calculations? *g*

Secondly, I came across (a couple of years back) a company which apparently makes Neural Network processor chips... *cough* MwahahahaHaHaHAHAHA! *ahem* Again, it's the programming which is the problem. They have boards dedicated to vision processing, plus the idea of speaker-independent speech recognition is interesting. If neural network ICs are available, of course, it makes possible the option of having a few chips processing environmental/etc data on the fly; alternatively you log a run (start to stop of operation), with a suitable sampling of data, and use it to provide some action/reaction mental processing.

Here's the thing, though... Say you have a few neural processors. You log sufficient data... NNs have two modes - Training and Operation. During a run, you set the processors to their Operation mode, and log operational data. The robot goes back to recharge, goes into Sleep Mode. During sleep mode, you have taken care to have motors, sensors, etc., turned off - you use the time to Train the network...

Is the robot dreaming?

If you didn't quite fully disable everything, would the robot twitch while it sleeps?

Thursday, January 20, 2011

Pro-tip: when ordering parts, make sure you get everything...

I get most of my electronics parts from two sources... One is local, the other international... The local source is more expensive, the non-local takes a lot more time. There can be a difference in what is available, but anything that both have I decide on is based on a speed vs cost question - do I want it quickly, or cheaply? For a lot of things at the moment, I go the cheap option, and just have to put up with waiting three weeks.

However, going that route has its problems - when you buy something, you need to make sure you get everything for it... I just received my order from before Christmas - lots of fun goodies (more below), which included (importantly) some non-polarised header sockets...

Except - I forgot to also order the pins for them. The pins being what the wire attaches to to make contact with (and hence use of) any header pins you want to actually use. So another order is required... I will fake it, most of the boards come with both socket and pins, so I'll use the sockets for the moment.

As for the parts that I got - a small I2C real time clock, some PIR sensors, logic level converters... Not anything to get excited about, but all make for useful things for a robot to have... I also realised the other day that it would be awfully useful for a robot to have an on-board logging system, particularly when a lot of data could need to be analysed, a view reinforced by one book I've been reading on the pitfalls and problems with robots. Actually getting to anything to work can be an interesting challenge of course, but that's the interesting thing about putting together this sort of a project...

Thursday, January 13, 2011

A Change Of Heart... Or A Replacement Motivator

It has been a little while since my last entry. Nothing serious, just life getting in the way. Like earning the money to get the bits to build my droid...

I've been thinking... Perhaps I should be willing to make astromechs for people.

The question is: would people be willing to pay a couple of thousand for labour? Note that I wouldn't be selling droids, you would be paying for the cost of parts, reimbursing me for said, and paying for me to spend my time putting it together. Plus shipping and handling costs. Given that costs for astromech parts can easily run into the thousands of dollars, having someone do the work might be acceptable for those who are prepared to pay a cost of convenience, and don't have the time.

I've just finished paying for my first frame (from James of Commando 8) - really, I prefer the idea of a machined aluminium internal body over wood, and I couldn't buy the tools to do it myself for less, nor get a local machine shop to make it.

Since my last post, I've also been doing a bit with microcontrollers (AVR FTW - not that I'm biased, or anything). Mostly playing with some that I've had for a while, and have only really started learning to use. I have learned (in my time) a bit of programming, and some electronics, so this is a convergence of the two. Combine this with an interest in robotics, and being a Star Wars fan... Like I said, I'm using the excuse that this is an interesting engineering project (gotta give that mind of mine some exercise), and it's a convenient shape to use...

I will make some more posts soon, mostly on the microcontroller side of things (at least until the frame is delivered)... and one interesting observation I made recently (without the use of mind-influencing substances as much as you might think otherwise when I write about it).