Cyclic chirps

Thanks to Stephan Ahonen for suggesting the use of CDMA for sending homing info to a rossum of robots.

As an alternative, maybe we can very the well known technique of sending a “chirp” in radar or sonar. In the chirp approach, rather than just sending a really short sound (and then waiting to see how long it takes to travel), you send out a continuous tone that rises in pitch over time (which makes a sawtooth pattern, since when you get to the highest pitch, you go back down to the lowest pitch and start again). Since you are sending a signal continuously, rather than just at intervals, you can get a better result.

Unfortunately, as Stephan pointed out, when objects are moving toward or away from your beacon, then Doppler effects will raise or lower the perceived pitch of your tone, thereby introducing errors.

Maybe instead of sending just one tone that varies linearly over time in pitch, we can send two tones, each with a different base pitch. We make both tones wobble in pitch, varying one tone over time as a sine function and the other as a cosine function (rather than a sawtooth, our two pitches trace out a circle over time). This method will be impervious to Doppler shifts, since both tones will rise and fall together, and we only care about the difference between the two pitches.

So to broadcast homing signals out to our rossum of robots, we will end up generating a total of four undulating ultrasonic tones: two from the speaker on one end of our separating rod, and two from the speaker at the other end.

I’ve been searching over the internet, but so far I can’t find any examples of somebody having tried using this kind of cyclic chirp.

2 Responses to “Cyclic chirps”

  1. Stephan Ahonen says:

    Bonus: You can use the amount of doppler shift to determine velocity, which should act as a sanity check on the position calculation (the velocity calculation can be used to determine position for the most part, with absolute position calculations being used to correct for drift). This is reminiscent of the technique used by Serato to allow DJs to control audio playback with special timecoded records on normal turntables.

    Wouldn’t this technique only tell you the difference between the distances from the robot to each speaker, though, rather than absolute distance to the speaker? Without a technique that gives you absolute distance to the speaker, you’d need three or four speakers, depending on whether you need to also resolve height.

  2. admin says:

    A robot gets distance from the two tones emanating from a single speaker. At any moment in time t, the frequency of these two tones are, respectively, A + Dsin(Ct) and B + Dcos(Ct). The term Ct is a time-varying phase difference between the two cycling frequencies.

    Because of the time of flight, the robot (which has an onboard clock) will get a different phase difference at the same time t, and from this will be able to compute how far it is from that speaker.

    As before, we use two separated speakers — each of which is emanating a two-tone circular chirp — so robots can triangulate their position from the two measured distances.

Leave a Reply