Distance Sensor - False Positives? [solved]

When running the tutorial "obstacle_avoider.py" the Arvik would just and spin and upon further investigation I saw the Center sensor was reading artificially low. I found the example code "read_tof.py" and when running it the Alvik robot returns unusably low read values even when on a flat, level, open surface:

T: 13.3 | B: 6.3 | L: 14.2 | CL: 10.7 | C: 10.0 | CR: 9.3 | R: 9.3
T: 14.1 | B: 6.3 | L: 14.0 | CL: 10.3 | C: 10.2 | CR: 10.1 | R: 9.0
T: 13.9 | B: 6.3 | L: 13.2 | CL: 10.6 | C: 9.900001 | CR: 9.3 | R: 9.8
T: 91.9 | B: 6.3 | L: 13.9 | CL: 10.2 | C: 9.7 | CR: 9.3 | R: 9.7
T: 90.8 | B: 6.3 | L: 13.9 | CL: 10.6 | C: 10.3 | CR: 10.0 | R: 9.6
T: 91.0 | B: 6.2 | L: 13.8 | CL: 10.2 | C: 9.8 | CR: 9.400001 | R: 9.400001
T: 13.5 | B: 6.3 | L: 13.8 | CL: 10.5 | C: 10.4 | CR: 10.3 | R: 9.400001
T: 13.4 | B: 6.3 | L: 14.1 | CL: 10.1 | C: 9.400001 | CR: 8.8 | R: 9.8
T: 13.2 | B: 6.3 | L: 14.2 | CL: 9.8 | C: 9.6 | CR: 9.5 | R: 9.3.

There is no yellow protective film as called out by the manual, and if I tilt the front of the Alvik upward at approximately 25 degrees It starts returning ToF reads that you would expect. (e.g.: < 325). I suspect there is an issue with the sensor, but was curious if anyone else has experienced this?

Thanks,

Post a picture of this.

Is it the the listed time-of-flight sensor? If so it uses light pulses. So, describe the surface the robot is on when you get the wrong distances! What do you get when on a different surface or put a piece of carpet in front of the sensor?

Here are four quick pictures from 2 videos I took (not allowed to upload vids apparently). I'm running the read_tof.py script for both. In the first, the readings I get consistently on a level surface, and in the second showing that if I tip the front of the Alvik upward the sensors start to provide more realistic readings. This happens on any surface type, wood or carpet, and if I run the script with the Alvik pointing straight up, the sensors respond exactly how I would expect them to. My theory is that even though the sensor looks flush and level it is somehow pointing downward.

Flat and Level and output:


Can only post 3 image per post...
Tipped upward with output:


Sensor Mount:

Would you show the Alvik in its normal orientation and circle/arrow the sensor on your picture?

Not sure what you're looking for with the circle and arrow, but here is a shot of the sensor with the Alvik flat and level.

Is the concern the "B" value in Post #4, second image? I assume the measurements are all centimeters. (around 6.5)

Why is the seller of the robot not giving you support in solving the problem?

Paul, this is an Arduino product. and I have reached out and am awaiting feedback/support. My goal of reaching out in the forums for this product was to see if this was maybe a known issue and resolvable, or if I should push Arduino for a return/exchange.

xfpd, Actually the B (bottom) readings from the flat/level position are what I'd would expect, but all the other readings seem wrong when there are no objects for several meters away. I raised the post for help determining if the Alvik is operating as expected or if I should push Arduino for a return or exchange. It seems that if by design a robot kit can only use 1/10th of the sensor's operating range something is amiss.

What device is measuring and what is the operating range?
What does the device register with a large object in each location?
Is there a object minimum size?
What are the real distances versus measured?

Thank you for that information. I was able to track down the data sheet for the device and it would take a month or more of concentrated study to understand all the capability of the device. One thing caught my eye and that is all their testing was done in the dark. Perhaps that is why the yellow filter you said was missing. That thing is really a powerful stand-alone sensor. Did you use the Arduino C code or the Python code?

The yellow filter I referenced was from the manual:


Mine didn't have the film, I was just letting folks know I'd RTFM, and my issue wasn't a known issue. :slight_smile:

I'm using micropython one of the scripts that are published with the robot (read_tof.py): arduino-alvik-mpy/examples/sensors at main · arduino/arduino-alvik-mpy · GitHub. Object detection is literally the first programming example in the Alvik tutorials...

I've been reading the data sheet as well, trying to reconcile that to the how distance API calls included in the Alvik library work (specifically the 7 detection zones). Also with a FOV of 60° it seems mounted perpendicular to, and this close to the ground it would be detecting the floor almost instantly. so saying in the robot specs it has a range of 350cm may be true for the sensor, but not to how it has been implemented in the robot.

Surely you are not the first user, so I wonder why it seems so difficult. Guess we have to wait for Arduino to send support.

If anyone is curious:

This weekend I removed and reseated the primary PCB on the Alvik. I didn't remove it entirely, leaving the motors still attached, but simply lifted it out of the Alvik body so I could check to see if there were any wayward connections. As expected I didn't see anything that looked amiss, so I simply reseated the PCB into the Alvik. After that, for whatever reason the ToF sensor operated exactly as expected.

However, I would caution anyone following the Getting Started with Alvik tutorial, as even with the ToF sensor working as expected the provided code in the tutorial will generate many false positives, as the code tests every read 'zone' without filtering the reads in any way.

The magic "clean and reseat." : ) Suggests a loose connector (ajar, corrosion, causing high resistance or missing ground). Dielectric paste/grease might make the connection if it happens again. (0.5oz/15cc on amazon: Amazon.com: AGS Automotive Solutions Dielectric Silicone Grease – 0.5 oz Tube, Prevents Electrical Faults, Ensures Rust-Free Connections, Automotive Lubricant : Automotive )

You seem to have changed the title to add [solved] but without actually clicking on the Solved Button. This will mark the solution and there is no need to change the title.

Can I ask you to read this How to get the best out of this forum again and see how to mark a thread solved..

As it is your thread then only you have accessed to the solved flags.