Hi All
Here is an early video of Scob walking, the code has improved a bit since then: https://youtu.be/nfrh7tHPFYQ
And here's what he looks like:
He still needs a head top designing (I think) to stop his brains falling out!
And someone suggested that flexy arms which wobble around when he's walking would be funny!
Rob.
--
You received this message because you are subscribed to the Google Groups "swindon-hackspace" group.
To unsubscribe from this group and stop receiving emails from it, send an email to swindon-hacksp...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
As you can see, SCOB now has arms (two variants), and an initial mouth design using a neopixel strip :) There's also a cap piece for his head, not shown in the video.
Software-wise, the animation control is stable and fairly capable, plus very portable to other projects. It will co-ordinate keyframe animation across a set of servos, with tween control via a bezier curve. Command queuing is inherited from LogoBot, but with a more streamlined/efficient parsing approach. There are a couple of ino files in the repo illustrating how to apply the libraries in a very simple form as well as a more full-featured version.
Latest experiments are with further streamlining the state machine that is used for selecting between different behaviours (e.g. wander at random vs collision avoidance) in the full-featured firmware.
Today's discussion has been on:
Which leads me nicely to thoughts on how the subsumption approach could be implemented... (you'll need to look at the latest code for context and for this to make much sense):
Subsumption architecture is based on the principle of co-existing behaviours, vying for control over the "actuators" of the robot, achieved by more important behaviours being able to suppress/inhibit the actions of others. Read the wiki article for more background, but that's the gist of it. This is really easy to understand if you have a continuous parameter space for your control (e.g. wheeled robot with fine grain control over speed/direction), but harder when you have discrete control states (e.g. for SCOB, with a set of fixed movement animations).
In the discrete case (ala SCOB), the various behaviours need to fight it out to determine:
Of course, you don't want to switch animations too fast, or poor SCOB will end up fitting. On the flip side, allowing each animation to complete may be too slow for some reactions (e.g. collision avoidance). So, animations may need to define valid points of "interruption"... given they are keyframe animations, this could be as simple as a boolean flag for each keyframe that indicates if it is interruptible.
There is also the challenge of behaviours needing to co-ordinate a sequence of moves to get something done (e.g. collision avoidance needs to back-up then turn).
The MIBE architecture is actually a better fit for this problem, and is derived from the subsumption approach.
In SCOB terms, he has a couple of simple behaviours: