One of the Questions to Ponder in Unit 4 asks what happens when multiple robots need to work together and all have sonar sensors, or, more generally, how might we deal with sensor interference.
When a bunch of robots with interfering sonar sensors are in the same space, they will sometimes read an other’s emission ping as their own reflection. It will generally result in a shorter distance measurement, less than half the distance between the robots in the case of direct transmission (since the sonar unit expects each reflection to have traveled twice the available distance, there and back again, but it traveled from the interfering robot to the receiving one), but may also result in longer measurements due to specular reflection of other robots’ emissions.
One way to deal with this is the same method for dealing with erroneous sensor readings: averaging and throwing out (or re-weighting with low coefficients) extreme values. This is part-way towards reconstructing the physical environment and ignoring values that don’t make sense. All sensors should be doing this, regardless, and it may fail in this case. MATLAB has the algorithm called robustfit; the GNU Scientific Library (Octave) suggests the use of gsl_multifit_robust_default; the MASS library for R (scientific computer language) provides the algorithm called rlm.
A complication that may arise is that more of the sensor readings may come from interference than the physical environment, especially with many robots in a small space and when each robot emits their sonar signals at the same rate. A robust averaging algorithm may have difficulty determining which readings are the correct ones.
If all robots emit their sonar pulses at the same rate, the interference between them may be systematic, which, to algorithms attempting to determine whether a signal is erroneous, can appear legitimate. One way to get around this is to have the robots emit their pulses at variable rates. Slight shifts in phase is called jitter. Inserting some random jitter into each robot’s delay between emissions reduces the systematic appearance of interfering signals. A simple way to do this is to add random delays prior to each sonar emission.
A sonar pulse is technically already modulated – sound, by definition, is modulated vibrations – but it can be further modulated at frequencies far above its base in ways that can be used to identify it. Infra red signals are modulated in this way, their encoding acting as the base frequency. When the sonar module receives a signal, it can filter or otherwise compare it against the modulation frequency of the most recently emitted ping.
It’s possible to encode a signal in different ways, three examples being amplitude modulation (AM), phase-shift keying (PSK) modulation, and frequency modulation (FM). (Other methods exist.) These examples are normally used for radio signals, but their algorithms can be applied to sonar as well. A robot could encode their emissions with an identifying mark, even including some data such as emitter angle. In this way, other robots could use the otherwise interfering signals as real measurements, as they would be able to assign them to specific robots (and perhaps specific robot sonar emitters) of known dimensions.
Taking the idea of encoding data in the sonar emissions, the robots could use sonar as a transmission medium as well as distance measurements, pooling all of their data. Of course, they can use any medium, including those better suited to sharing data (such as WiFi/IEEE 802.11), to verify sonar readings and share data. In this way, sonar emissions could be arranged as a group, ensuring that there is no interference and that each robot that receives the reflection knows which of them emitted the signal, creating a richer sensor environment.
The Landing is a social site for Athabasca University staff, students and invited guests. It is a space where they can share, communicate and connect with anyone or everyone.
Unless you are logged in, you will only be able to see the fraction of posts on the site that have been made public. Right now you are not logged in.
If you have an Athabasca University login ID, use your standard username and password to access this site.
We welcome comments on public posts from members of the public. Please note, however, that all comments made on public posts must be moderated by their owners before they become visible on the site. The owner of the post (and no one else) has to do that.
If you want the full range of features and you have a login ID, log in using the links at the top of the page or at https://landing.athabascau.ca/login (logins are secure and encrypted)
Posts made here are the responsibility of their owners and may not reflect the views of Athabasca University.