Vid of fusion experiment #1

Here’s vid of my first "bottom-up" experiment in sensor data fusion.

The Inex Robo-11 tank is supposed to maintain a constant distance of 30 cm from the target book (a ref on 6811 controllers, of course :) . It’s allowed a 25% range error.

The program is purely reactive, and this may cause a defficiency, noted below.

Robo-11 presently  has a bunch of sensors, but the only ones active are the IR ranger and sonar.

The task is beyond either sensor alone. The IR sensor has a max range of 30 cm. This is demonstrated by the tank backing off from the book, but when the book moves beyond the (target) 30 cm nominal target range, it’s lost to view, and the tank just sits.

The sonar sensor can see out to 4 m (yes, this works; I’ve tried it out in the street!), but turns out to be extremely noisy.

I’m not sure whether the motors and other sensors are interfering with the sonar, or maybe I’ve damaged the sensor, or the interpreted C running on the poor old 8 MHz 6811E1 is getting overloaded, but the alleged range even when everything is still keeps bobbing around between "real" values and "plainly wrong" values (like 4.3 m and 0).

The vid shows the 6 experiments of each sensor alone, the geometric average of the 2 (not very good;   simple theory says it should have 70% of the noise of the pair — and one of the pair is VERY noisy :(   ), and an "optimal" digital filter put onto each of those 3.

While the vid shows up some kind of s/w error — the tank backs away in the last 2 experiments, but seems reluctant to actually FOLLOW the book when it moves away — the expected fused result (last example) is best, with  the digitally filtered sonar by itself a close 2nd in performing this task.

If I try the same experiment using different kinds of objects — e.g. a mirror  or a pieces of deep-pile shag carpet — the fusion method might show up as "clearly superior" to just smoothing one sensor. But I’ve been surprised before. ;)

3 Comments

  • On 09.23.07 rolandgpainter said:

    I used sonar for mapping in my thesis project at uni, 6 years ago now. I remember having to average and filter the sonar data, but from memory it wasn’t that noisy. However that was using a Polaroid 6500 series instrumental grade sensor and driver board, which may be higher quality? I have a presentation on that project – I used a Rug Warrior Pro robot, with Interactive C. Maybe I should post it on here somehow…

  • On 09.24.07 Anonymous said:

    Maybe higher quality. I also (always!) suspect I’ve damaged the sensor or similar with all my mucking around.

    I have 2 AX-11 controllers — one mounted on a tank and one just nailed to a board (not quite literally ;) . I’d debugged the sonar s/w on the nailed-down AX-11 and had never noticed the raqnge jittered around so much.

    On the tank-mounted controller it sure seemed noisy. And moving the sensor back to the other board showed a bit more noise than I’d originally remembered, but only about 1/2 as much as on the tank board.

    Anyway, with all those crappy DC motors and the IR sensor pinging away, maybe the tank-mounted environment is much noisier — even when the thing is standing still.

    I’m using a simple Markov model (i.e. equiv to a Kalman, but allowing for bursty-type noise) to “smooth” and “average” the signals for the demo in the vid, and it seems to do a reasonable job.

    The bug with the backing away and not following target turned out to be a silly mistake with the starting estimates for the model. I.e. the wrong initialisations caused a divergence and the first few real measurements were considered noise and/or evidence of a rapidly-approaching book. :)

  • On 09.25.07 kymhorsell said:

    Just as an afterthought, here are some closeups of the mounted sonar.

    The SRF05 is supposed to be a plug-compat version of the SRF04 with extended range (out to 4.3 m). I picked it up for about $20 usd.