Recent blog entries for marcin

20 Oct 2006 (updated 9 Nov 2010 at 02:51 UTC) »
21 Nov 2005 (updated 9 Nov 2010 at 02:51 UTC) »
10 Nov 2005 (updated 9 Nov 2010 at 02:52 UTC) »
1 Nov 2005 (updated 9 Nov 2010 at 02:52 UTC) »

Okay, so I was a bit premature in giving myself kudos for getting a nice subsumption/arbitration thing going there. I've been refactoring the code a little while writing the rotating ranger code (ie servo+SRF as a single entity), and as it turns out, one of the conditional compiles wasn't #defined previously. Now that I have enabled it ... well subsumption has a little way to go.

That being said, though, I have to say that the architecture works as designed, it is just that my behaviours are too simple - they should be state machines, not simple conditional outputs. It does raise the question though, once the behaviours are FSMs, what will happen once a higher-priority tasks interrupts a lower priority one, since not all behaviours are mutually exclusive.

Cheers, Marcin.

Finally, after procrastinating for over two weeks, I finally finished writing up the servo interface docs for the M16C (as done for ScaredyBot). You can find them here. I should write up the motor PWM driver as well ...

I'm still reading the Brooks book - I like it, there's a lot of me me me in it, but hey, he's probably got a fair claim to that pronoun in this context. And he's an Aussie, too! Well, sort of.

Cheers, Marcin.

I've been a bit slow recently with the robotics work. I'm at the stage where I am tidying up the architecture to allow more of a plug-and-play feel for additional sensor modules. By plug and play, I mean that the modules are robot-independent and can simply be included in the code with no modification. Going ok so far. I'm also trying to encapsulate the SRF04 and servo turret as a single entity, so that theoretically 1 rangefinder on a turret behaves like 5 fixed rangefinders. Indeed, the next iteration robot will use a OS/RTOS of some description - hopefully not homebrew by me - and will allow me to use some more powerful programming models. Unfortunately, my limited skill in C is a bit of a weakness - I know what I want to do, but I don't know how to achieve it. I think function pointers are going to be involved.

Having said that, Scaredy has a four-component behaviour at present, which has seen it become pretty much unstoppable (except for getting snagged) - it has retreat, collision avoidance, wall-avoidance, and roam behaviours which are all indepenently coded. I'm thinking that an accelerometer would be a good way of detecting a stall or snagged condition. Also need to figure out how to avoid mindless loops (ie if A then B, if B then C, if C then A) which can happen over and over again in corners (although, remarkably, it does eventually break free).

I've also been reading Rodney Brooks book 'Robot: the future of flesh and machine' and now I realise that I am about 20 years behind the times! However, it was quite gratifying reading some of his approaches and seeing how I have been going down the same path anyway, fairly independently. I'm only 1/4 of the way through the book, though.

Having some issues now with the software subsumption architecture. Chris Schur was right in that the implementation in software can be a bit nasty - my implementation certainly is. I still like the concept, but I need to tidy it up a bit - the arbiter needs to work more like a scheduler as well as a sort of bus-master? Maybe.

Well, Scaredy is all systems go. Not that there are that many systems (servo, motor, SRF04 and MCU) but go it is.

I've put up new pics and a tiny video (745k) on my ScaredyBot page (

So that's good. More soon.

Cheers, Marcin.

I've been putting together my enhanced controller according to my Robot-MCU Peripheral Interface. It's a living document at this stage, but once all the interfaces are designed, implemented and tested, it will become the stardard for all my mobile robots (that use the Renesas M16C, at any rate).

I've also been trying to stir up interest in a Sydney robotics club - I may have 1 interested party (well 2, if you count my wife who wants me to talk to someone else about robots) so that's a start (albeit very modest).

Ciao, Marcin (

17 older entries...

Share this page