Thursday, April 25, 2013

Bits and Pieces

I'm still broke but the month is almost over -- several gigs next week, mostly design and FOH.  Plus I have a new prop commission, which I will be logging in detail here as it is an interesting challenge (creating a resin-cast receiver for a de-militarized Suomi).

Which is good, because the latest Poser prop kit made a bit over fifty bucks, and the one I'm working now is starting to bore me (either that, or the modeling itself, which is currently in a fiddly, time-consuming, and, basically, annoying part of the build).  So as a second source of income, it hasn't exactly proven itself yet.

In upcoming Poser posts I intend to talk a bit about mesh design for Poser (not "how to model," but how to make a mesh Poser won't bork on), and go into more detail about technical rigging tricks.  I realize the tough part is learning the nuts and bolts of basic modeling and rigging and file management, but that's not something I think I can really help with.  You have to get your hands dirty.  Start small, build some stuff.  Find the tools and processes that work for you.

I am sad that due to being sick part of the month and broke all of it, I was unable to properly focus on getting any new gadgets built.  I may skip Maker's Faire this year anyhow;  Last year there wasn't much showing by music people and it was actually a bit boring.  With a lot of luck, though, I might get a prototype "Duck Node" built in time to have it available in case some application shows up for it on "The Wiz."

We are finishing up on the first "robot" with my youngest niece.  She constructed a head that is a bit large for the servo I had, so I need to build a new base.  Haven't been able to decide whether I want to make the circuitry visible and accessible but I'm leaning towards closing this one up and using the next project to explore new functions.

I'd also love to involve her more with the software creation, as that is a major part of, well, practically everything electronic these days.  But I've kind of painted myself into a corner here where we are making a "head" bot with a simple tropism; it has a single Sharp distance sensor, and will attempt to point at -- and track -- the nearest object.

When I used the same sensor on my "Square Candies That Look 'Round," the Sharp was only the trigger; everything after that was programmed behavior.  That would be a lot more open to a child's development efforts.  (Heck, if I was a LOT further on with my own programming, I could design a simplified graphical-based programming environment where she could patch different behaviors to the sensor and get real-time feedback from the robot.)

For this, though, I have to massage the (extremely dirty) sensor data and then feed it to a control loop with a bunch of tricky stuff to smooth out behavior.  Hysteresis is not enough, especially as I'm building this with a single sensor (line tracking and similar is usually done with two).  To get the effect of the head smoothly "nodding" to determine the peak reading, and moving in on it with smooth curves, I need to be doing the same kind of state modeling done in, say, the inertial navigation system of an Apollo space capsule.

(In very simplified terms, instead of modeling a static position, you model the current acceleration vector.  Then you compare the information from various sensors against that model, and toss out those that are both low reliability and stray furthest from the model.  You can then generate a difference between the change of state that will converge on your desired state and your current change of state.  In this case, I only have a single sensor, and I can add an additional constraint of forcing the head to move only at a given velocity/velocity curve.  I can constrain it even further by requiring each "adjustment" move fall within a set oscillation cycle.  That smooths out the motion/reaction considerably).

And there are libraries that handle some of these functions, but even the process of finding, installing, and learning your way around a new function library is just a wee bit advanced for someone my niece's age.  So as I said, I've basically painted myself into a corner where I can't use THIS robot to help her learn programming.

It will have to happen on the NEXT one.

No comments:

Post a Comment