User avatar
joan
Posts: 15051
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

An experiment in pointing a sonar ranger at a wall

Sat Jun 14, 2014 10:49 am

Some time ago there was a discussion about pointing a sonar ranger at a wall at an oblique angle.

I did some experiments with a HC-SR04 mounted on a pan tilt head driven by a pair of servos.

I moved the head between -45 through +45 degrees in 5 degree increments, taking 50 readings in each position.

Results were.

Green trace represents the angle (10*angle+2000).
Red trace is the round trip echo time in microseconds.
The echo time was limited to 2600 microseconds (approximately 88 cms round trip).

Make of it what you will.
sonar-exp-1.png
plot [][] 'sonar.log' title 'ping', 'sonar.log' using 1:(10*$3+2000) with lines title 'angle'
sonar-exp-1.png (27.26 KiB) Viewed 6004 times
sonar-exp-2.png
plot [3600:5600][] 'sonar.log' title 'ping', 'sonar.log' using 1:(10*$3+2000) with lines title 'angle'
sonar-exp-2.png (23.5 KiB) Viewed 6004 times
sonar-exp-3.png
plot [3600:4600][] 'sonar.log' title 'ping', 'sonar.log' using 1:(10*$3+2000) with lines title 'angle'
sonar-exp-3.png (22.92 KiB) Viewed 6004 times

Code: Select all

#!/usr/bin/env python

import time

import pigpio

class ranger:
   """
   This class encapsulates a type of acoustic ranger.  In particular
   the type of ranger with separate trigger and echo pins.

   A pulse on the trigger initiates the sonar ping and shortly
   afterwards a sonar pulse is transmitted and the echo pin
   goes high.  The echo pins stays high until a sonar echo is
   received (or the response times-out).  The time between
   the high and low edges indicates the sonar round trip time.
   """

   def __init__(self, pi, trigger, echo, toolong=10000):
      """
      The class is instantiated with the Pi to use and the
      gpios connected to the trigger and echo pins.  If the
      echo is longer than toolong it is assumed to be an
      outlier and is ignored.
      """
      self.pi = pi
      self.trigger = trigger
      self.echo = echo
      self.toolong = toolong

      self.high_tick = None
      self.echo_time = toolong
      self.echo_tick = pi.get_current_tick()

      self.trigger_mode = pi.get_mode(trigger)
      self.echo_mode = pi.get_mode(echo)

      pi.set_mode(trigger, pigpio.OUTPUT)
      pi.set_mode(echo, pigpio.INPUT)

      self.cb = pi.callback(echo, pigpio.EITHER_EDGE, self._cbf)

      self.inited = True

   def _cbf(self, gpio, level, tick):
      if level == 1:
         self.high_tick = tick
      else:
         if self.high_tick is not None:
            echo_time = tick - self.high_tick
            if echo_time < self.toolong:
               self.echo_time = echo_time
               self.echo_tick = tick
            else:
               self.echo_time = self.toolong
            self.high_tick = None

   def read(self):
      """
      The returned reading is the number
      of microseconds for the sonar round-trip.

      round trip cms = round trip time / 1000000.0 * 34030
      """
      if self.inited:
         return self.echo_time
      else:
         return None

   def trig(self):
      """
      Triggers a reading.
      """
      if self.inited:
         self.pi.gpio_trigger(self.trigger)

   def cancel(self):
      """
      Cancels the ranger and returns the gpios to their
      original mode.
      """
      if self.inited:
         self.inited = False
         self.cb.cancel()
         self.pi.set_mode(self.trigger, self.trigger_mode)
         self.pi.set_mode(self.echo, self.echo_mode)

if __name__ == "__main__":

   import time

   import pigpio

   import sonar_scan

   VSERVO=14
   HSERVO=15

   pi = pigpio.pi()

   # point sonar ranger slightly up
   pi.set_servo_pulsewidth(VSERVO, 1350)

   sonar = sonar_scan.ranger(pi, 23, 18, 2600)

   end = time.time() + 600.0

   r = 1

   angles = [-45, -40, -35, -30, -25, -20, -15, -10, -5,   0,
               5,  10,  15,  20,  25,  30,  35,  40, 45,  40,
              35,  30,  25,  20,  15,  10,   5,   0, -5, -10,
             -15, -20, -25, -30, -35, -40, -45]

   for x in range(5):

      for ang in angles:
         # move servo to angle
         pi.set_servo_pulsewidth(HSERVO, 1500+(ang*1000/90))

         time.sleep(0.5)

         for i in range(50):
            sonar.trig()
            time.sleep(0.1)
            print("{} {} {}".format(r, sonar.read(), ang))
            r += 1

   sonar.cancel()

   pi.stop()
http://abyz.co.uk/rpi/pigpio/misc/sonar/

BMS Doug
Posts: 3823
Joined: Thu Mar 27, 2014 2:42 pm
Location: London, UK

Re: An experiment in pointing a sonar ranger at a wall

Tue Jun 17, 2014 1:28 pm

Hi Joan,

that's very interesting data, I was expecting to see the shortest response time at the 0 degree angle but that doesn't seem to be the case as your data is returning the lowest readings at -20 degrees, I would speculate that this could be due to the shape of the room you were testing in.

I'm definitely interested in following up on this eventually (once I've got a whole bunch of other problems sorted out, Dalek construction is a slow process, especially with two small Timelords running around and disrupting construction).
Doug.
Building Management Systems Engineer.

User avatar
joan
Posts: 15051
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Tue Jun 17, 2014 1:42 pm

BMS Doug wrote:Hi Joan,

that's very interesting data, I was expecting to see the shortest response time at the 0 degree angle but that doesn't seem to be the case as your data is returning the lowest readings at -20 degrees, I would speculate that this could be due to the shape of the room you were testing in.

I'm definitely interested in following up on this eventually (once I've got a whole bunch of other problems sorted out, Dalek construction is a slow process, especially with two small Timelords running around and disrupting construction).
I did notice that but didn't bother too much about the reason. Perhaps my lollipop stick wasn't calibrated properly! :D

BMS Doug
Posts: 3823
Joined: Thu Mar 27, 2014 2:42 pm
Location: London, UK

Re: An experiment in pointing a sonar ranger at a wall

Tue Jun 17, 2014 2:26 pm

joan wrote: Perhaps my lollipop stick wasn't calibrated properly! :D
:lol:

I'll certainly be interested in a very controlled environment test, sadly I don't expect to have time for that for months, at the earliest.
Doug.
Building Management Systems Engineer.

drhastings
Posts: 113
Joined: Wed Feb 06, 2013 11:38 pm

Re: An experiment in pointing a sonar ranger at a wall

Tue Jun 17, 2014 4:37 pm

From my own tests, I think the reason that you aren't getting the closest reading at 0 degrees is because the sonar will pick up a return in a somewhat sizeable volume of space in front of it.

Imagine the sonar pointing straight at the wall. You could draw a circle on the wall that represented the area inside which the sonar would see an object and outside the circle it wouldn't.

Now imagine the circle drawn on the wall as a plate that has to remain parallel with the sensor. As you rotate the sensor at first the imaginary circle would have to get closer to the sensor in order to clear the wall, then would start to move back out.

Essentially I think the shorter readings with the angle slightly off center are due to the triangle formed by the sensor, the wall and the edge of the detection area from the sonar.
http://www.dansrobotprojects.com/

User avatar
joan
Posts: 15051
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Tue Jun 17, 2014 6:30 pm

drhastings wrote:From my own tests, I think the reason that you aren't getting the closest reading at 0 degrees is because the sonar will pick up a return in a somewhat sizeable volume of space in front of it.

Imagine the sonar pointing straight at the wall. You could draw a circle on the wall that represented the area inside which the sonar would see an object and outside the circle it wouldn't.

Now imagine the circle drawn on the wall as a plate that has to remain parallel with the sensor. As you rotate the sensor at first the imaginary circle would have to get closer to the sensor in order to clear the wall, then would start to move back out.

Essentially I think the shorter readings with the angle slightly off center are due to the triangle formed by the sensor, the wall and the edge of the detection area from the sonar.
There are a couple of other factors to be considered. The rotation is off centre and as the angle changes from zero the receiver and transmitter are at different distances from the wall.

My maths/head ain't good enough to see what effect this will have.
lolly.png
Visual aid
lolly.png (11.53 KiB) Viewed 5524 times
Last edited by joan on Tue Jun 17, 2014 6:59 pm, edited 1 time in total.

drhastings
Posts: 113
Joined: Wed Feb 06, 2013 11:38 pm

Re: An experiment in pointing a sonar ranger at a wall

Tue Jun 17, 2014 6:46 pm

Yes, there are other factors, but I think that the factors you listed would be of smaller magnitude than the affect you have shown above.

The sensor I'm using only has a single transducer that is used for both sending and receiving which simplifies the situation somewhat and I've observed the same phenomenon using a servo to pan the sensor along a wall.
http://www.dansrobotprojects.com/

User avatar
redhawk
Posts: 3465
Joined: Sun Mar 04, 2012 2:13 pm
Location: ::1

Re: An experiment in pointing a sonar ranger at a wall

Tue Jun 17, 2014 6:59 pm

So does that mean that pointing a sonar at a wall has actual uses or has data collected proven to be unreliable??

Richard S.

User avatar
joan
Posts: 15051
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Tue Jun 17, 2014 7:03 pm

redhawk wrote:So does that mean that pointing a sonar at a wall has actual uses or has data collected proven to be unreliable??

Richard S.
The data is certainly useful. I have three little bots which trundle around. Two use sonars to avoid or find obstacles (depending on what their task is), the other uses an IR sensor.

Ravenous
Posts: 1956
Joined: Fri Feb 24, 2012 1:01 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Wed Jun 18, 2014 8:19 am

redhawk wrote:So does that mean that pointing a sonar at a wall has actual uses or has data collected proven to be unreliable??
There is an old academic paper somewhere out there (possibly on Johann Borenstein's page) that was into modelling the behaviour of sonar sensors in rooms (I think they were the old big Polaroid sensors at the time.)

One of the things they tried to model was reflection at an angle - there can be specular reflection, meaning the sensor doesn't detect the wall at all - the beam bounces off at a steep angle and may reflect off something else in the room, then back via another reflection to the sensor. So you can sometimes see occasional very long reflections "beyond" the known walls.

Another thing is the distance measured, when at various angles, is not precise because of the beam width. (Most sonars have a pretty wide "beam".) The curved responses in joan's plot show this quite well I think.

All interesting background when trying to interpret these plots...

User avatar
PeterO
Posts: 5958
Joined: Sun Jul 22, 2012 4:14 pm

Re: An experiment in pointing a sonar ranger at a wall

Wed Jun 18, 2014 8:43 am

Has anyone tried plotting these out on polar coordinates ? That way it "should" draw a map of the room.

PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

Ravenous
Posts: 1956
Joined: Fri Feb 24, 2012 1:01 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Wed Jun 18, 2014 10:05 am

Hang on - the shortest measurement above is around 1100 ms - that's a wall distance of only around 20cm (double that for the round trip).

Is this too short? Is there a minimum recommended distance for these sensors? (Bear in mind - IF the frequency of these is 40KHz, I don't know - the wavelength is only 8-9 cm which might be relevant.)

I'm speculating the "blind spot" straight ahead might be just the sensor saturating due to a massive straight-on reflection from the wall at very close range. Maybe a wide open space with just a small target like a broom handle will give "cleaner" results... :?

EDIT: Silly Mistake in the above - the wavelength is 8-9 mm, not cm! I still suspect signal saturation might be a possible cause though.

User avatar
joan
Posts: 15051
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Wed Jun 18, 2014 10:19 am

I did a number of tests further away from the wall. I saw the same affect. Unfortunately I did a "tidy up" a couple of days ago and deleted my old logs.

I'll probably repeat the test in a more controlled environment in the next few days.

Ravenous
Posts: 1956
Joined: Fri Feb 24, 2012 1:01 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Wed Jun 18, 2014 10:29 am

OK as you noticed the same thing at greater distances it's got to be some other explanation then... curious...

(And it can't be something like not enough "recharge" time between pulses because if anything only the weaker/further returns would be affected.)

Maybe something to do with the phase of the returned signal? (Multiple reflections, of different distances, being received from the whole width of the bream pattern, cancelling each other out, which could occur from a flat wall. Sounds unlikely to me though.)

User avatar
joan
Posts: 15051
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Wed Jun 18, 2014 10:36 am

The blind spots are at the angular extremes (nominally +/- 45 degrees).

Ravenous
Posts: 1956
Joined: Fri Feb 24, 2012 1:01 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Wed Jun 18, 2014 11:13 am

Oh I'm being dense then - I thought your red traces showed two different types of blind spot (longest return), one type head-on to the wall and the other around the 45 degree extremes...

Do you happen to remember at which ponit in the sweep the sonar is pointed directly at the wall? Is it at one or both of those 1100ms minimum points on the red trace?

User avatar
joan
Posts: 15051
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Wed Jun 18, 2014 11:19 am

Ravenous wrote:Oh I'm being dense then - I thought your red traces showed two different types of blind spot (longest return), one type head-on to the wall and the other around the 45 degree extremes...

Do you happen to remember at which ponit in the sweep the sonar is pointed directly at the wall? Is it at one or both of those 1100ms minimum points on the red trace?
I expected the minimum to be when the angle crossed the 2000 horizontal line (sensor should then have been parallel to the wall). I laid it out by eye so I could easily have been 10 degrees off.

User avatar
joan
Posts: 15051
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Wed Jun 18, 2014 7:34 pm

I repeated the experiment using a stepper to move the sonar ranger. This mean that the angles should be far more accurate and that the rotation point is between the sonar tx and rx sensors.

The sensor was positioned 40 cms from the wall (it can detect distances down to a few cms).
sonar-stepper-a.png
plot 'sonar2.log' title 'micros' with points pt 7, 'sonar2.log' using 1:($3)+2700 with lines title 'angle 2655=-45 2700=0 2745=+45'
sonar-stepper-a.png (33.7 KiB) Viewed 5324 times
sonar-stepper-b.png
plot [2000:4200] 'sonar2.log' title 'micros' with points pt 7, 'sonar2.log' using 1:($3)+2700 with lines title 'angle 2655=-45 2700=0 2745=+45'
sonar-stepper-b.png (25.75 KiB) Viewed 5324 times
sonar-stepper-c.png
plot [2000:3100] 'sonar2.log' title 'micros' with points pt 7, 'sonar2.log' using 1:($3)+2700 with lines title 'angle 2655=-45 2700=0 2745=+45'
sonar-stepper-c.png (24.17 KiB) Viewed 5324 times

Code: Select all

#!/usr/bin/env python

import time

import pigpio

class ranger:
   """
   This class encapsulates a type of acoustic ranger.  In particular
   the type of ranger with separate trigger and echo pins.

   A pulse on the trigger initiates the sonar ping and shortly
   afterwards a sonar pulse is transmitted and the echo pin
   goes high.  The echo pins stays high until a sonar echo is
   received (or the response times-out).  The time between
   the high and low edges indicates the sonar round trip time.
   """

   def __init__(self, pi, trigger, echo, toolong=10000):
      """
      The class is instantiated with the Pi to use and the
      gpios connected to the trigger and echo pins.  If the
      echo is longer than toolong it is assumed to be an
      outlier and is ignored.
      """
      self.pi = pi
      self.trigger = trigger
      self.echo = echo
      self.toolong = toolong

      self.high_tick = None
      self.echo_time = toolong
      self.echo_tick = pi.get_current_tick()

      self.trigger_mode = pi.get_mode(trigger)
      self.echo_mode = pi.get_mode(echo)

      pi.set_mode(trigger, pigpio.OUTPUT)
      pi.set_mode(echo, pigpio.INPUT)

      self.cb = pi.callback(echo, pigpio.EITHER_EDGE, self._cbf)

      self.inited = True

   def _cbf(self, gpio, level, tick):
      if level == 1:
         self.high_tick = tick
      else:
         if self.high_tick is not None:
            echo_time = tick - self.high_tick
            if echo_time < self.toolong:
               self.echo_time = echo_time
               self.echo_tick = tick
            else:
               self.echo_time = self.toolong
            self.high_tick = None

   def read(self):
      """
      The returned reading is the number
      of microseconds for the sonar round-trip.

      round trip cms = round trip time / 1000000.0 * 34030
      """
      if self.inited:
         return self.echo_time
      else:
         return None

   def trig(self):
      """
      Triggers a reading.
      """
      if self.inited:
         self.pi.gpio_trigger(self.trigger)

   def cancel(self):
      """
      Cancels the ranger and returns the gpios to their
      original mode.
      """
      if self.inited:
         self.inited = False
         self.cb.cancel()
         self.pi.set_mode(self.trigger, self.trigger_mode)
         self.pi.set_mode(self.echo, self.echo_mode)

class stepper:
   """
   A class to pulse a stepper.
   """

   def __init__(self, pi, g1, g2, g3, g4):
      """
      """
      self.pi = pi
      self.g1 = g1
      self.g2 = g2
      self.g3 = g3
      self.g4 = g4
      self.all = (1<<g1 | 1<<g2 | 1<<g3 | 1<<g4)
      self.pos = 0

      pi.set_mode(g1, pigpio.OUTPUT)
      pi.set_mode(g2, pigpio.OUTPUT)
      pi.set_mode(g3, pigpio.OUTPUT)
      pi.set_mode(g4, pigpio.OUTPUT)

   def move(self):
      pos = self.pos 
      if pos < 0:
         pos = 7
      elif pos > 7:
         pos = 0
      self.pos = pos

      if   pos == 0: on = (1<<self.g4)
      elif pos == 1: on = (1<<self.g3 | 1<<self.g4)
      elif pos == 2: on = (1<<self.g3)
      elif pos == 3: on = (1<<self.g2 | 1<<self.g3)
      elif pos == 4: on = (1<<self.g2)
      elif pos == 5: on = (1<<self.g1 | 1<<self.g2)
      elif pos == 6: on = (1<<self.g1)
      else:          on = (1<<self.g1 | 1<<self.g4)

      off = on ^ self.all

      self.pi.clear_bank_1(off)
      self.pi.set_bank_1(on)

   def forward(self):
      self.pos += 1
      self.move()

   def backward(self):
      self.pos -= 1
      self.move()


if __name__ == "__main__":

   import time

   import pigpio

   import sonar_scan_2

   pi = pigpio.pi()

   sonar = sonar_scan_2.ranger(pi, 14, 15, 4000)

   stepper = sonar_scan_2.stepper(pi, 7, 8, 25, 24)

   end = time.time() + 600.0

   r = 1

   for x in range(5):

      # starts at -45 degrees, 4096 is full revolution for stepper
      for s in range(2048):

         if s <= 1024:
            stepper.forward()
            ang = (45.0/512)*(s-512)
         else:
            stepper.backward()
            ang = (45.0/512)*((2048-s)-512)

         sonar.trig()
         time.sleep(0.1)
         print("{} {} {:.1f}".format(r, sonar.read(), ang))
         r += 1

   sonar.cancel()

   pi.stop()
photo
misc
Last edited by joan on Wed Nov 13, 2019 5:32 pm, edited 1 time in total.

Ravenous
Posts: 1956
Joined: Fri Feb 24, 2012 1:01 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Thu Jun 19, 2014 7:48 am

That looks real good now. This is really interesting to see...

(I wonder if some of the asymmetry in the last plots were caused by the servo being inaccurate/nonlinear over part of its range. I've never rigorously measured one.)

There's a little asymmetry left - maybe this is a quirk of the sensor, ie the transmitter being on one side, the receiver on the other...

User avatar
joan
Posts: 15051
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Thu Jun 19, 2014 8:10 am

I do have a SRF02 (http://www.robot-electronics.co.uk/htm/srf02tech.htm). If I can find a way of mounting it on the lollipop I'll give it a spin.

simplesi
Posts: 2327
Joined: Fri Feb 24, 2012 6:19 pm
Location: Euxton, Lancashire, UK
Contact: Website

Re: An experiment in pointing a sonar ranger at a wall

Thu Jun 19, 2014 8:29 am

Am I missing something here? :)

Do joan's tests just show that if you point the sensor at 90 degrees to a wall, you get fairly accurate readings at 40cm range?

And if not at 90 deg ,then results are drop off?

Does 1+1 = 2? :)

Simon
Seeking help with Scratch and I/O stuff for Primary age children
http://cymplecy.wordpress.com/ @cymplecy on twitter

Ravenous
Posts: 1956
Joined: Fri Feb 24, 2012 1:01 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Thu Jun 19, 2014 8:36 am

simplesi wrote:Do joan's tests just show that if you point the sensor at 90 degrees to a wall, you get fairly accurate readings at 40cm range?
Correct they do; I was confused yesterday and misinterpreted a few things, and thought the graphs showed a washed out signal at 90 degrees. Totally untrue!

The current graph is not completely symmetric and I was wondering if there was a reason... it may be a quirk of the sensor, or something else, but they definitely work!
simplesi wrote: Does 1+1 = 2? :)
Well assuming base 10. (which is implicit in the question, but I'm so easy to confuse it's probably best not to assume anything.)

BMS Doug
Posts: 3823
Joined: Thu Mar 27, 2014 2:42 pm
Location: London, UK

Re: An experiment in pointing a sonar ranger at a wall

Thu Jun 19, 2014 11:20 am

simplesi wrote:Am I missing something here? :)

Do joan's tests just show that if you point the sensor at 90 degrees to a wall, you get fairly accurate readings at 40cm range?

And if not at 90 deg ,then results are drop off?

Does 1+1 = 2? :)

Simon
that's definitely the case, Joan started investigating the issue after some comments on another thread regarding sonar accuracy when the sensor wasn't pointed directly at a wall.

Its very interesting that one direction has a very different response to the sensor angle than the other (visible on the signal return time curve on the first graph).

I wonder how much of this is due to the sensor's field of view limitations and how much is due to the acoustic properties of the room. I really would like to spend some time investigating this, but I have other priorities first.
Doug.
Building Management Systems Engineer.

User avatar
joan
Posts: 15051
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: An experiment in pointing a sonar ranger at a wall

Thu Jun 19, 2014 11:38 am

joan wrote:I do have a SRF02 (http://www.robot-electronics.co.uk/htm/srf02tech.htm). If I can find a way of mounting it on the lollipop I'll give it a spin.
Well I mounted my SRF02 but it appears to be bust. It'll flash the LED when I tell it to do a reading, it'll report its version, it'll do autoranging, it'll report the minimum usable distance in inches, centimetres, and inches, it'll let me reprogram its I2C address. It just always returns 0 for the reading.

BMS Doug
Posts: 3823
Joined: Thu Mar 27, 2014 2:42 pm
Location: London, UK

Re: An experiment in pointing a sonar ranger at a wall

Thu Jun 19, 2014 11:48 am

joan wrote: Well I mounted my SRF02 but it appears to be bust. It'll flash the LED when I tell it to do a reading, it'll report its version, it'll do autoranging, it'll report the minimum usable distance in inches, centimetres, and inches, it'll let me reprogram its I2C address. It just always returns 0 for the reading.
I'm sure you've already checked but there isn't anything blocking the sensor cone? I wouldn't expect a zero range result from a faulty sensor but if something small had gotten inside it then it might bounce back an immediate response?
Doug.
Building Management Systems Engineer.

Return to “Automation, sensing and robotics”