Ok, so you read my last post on sensor types (you did, didn’t you? if not check it out here) and you now know which sensor you want to use. How do you choose which sensor option to choose? That is a great question, this post will go into details of the various sensor characteristics you might see in the sensor data sheets.
If I missed any please add it in the comments below.
The accuracy of a sensor is how close to the real value will the reported sensor value be?
This is often expressed as a range. For example +/- 1mm. Sometimes you can improve the accuracy of a sensor by seeing the calibration section below.
Once we know how accurate the sensor it is important to know how small of an increment can the sensor can detect. For example if a temperature sensor has a resolution of 5degrees you can not use it to differentiate between 30 and 32 degrees (maybe that is not true, see calibration below).
Calibration & Saturation
This brings us to the calibration. Often the accuracy and sometimes the resolution can be improved by calibrating the sensor. Calibration which can be done by a vendor or by you is the process of comparing the sensor output with some known quantities. By doing that you can develop an equation to relate the two. Using this equation to process the sensor data with will yield better results than the default values. You also must know at what points the sensor becomes saturated (the point where you go above or below what it can measure) and the data becomes less trust worthy or meaningless.
Is the output of the sensor linear? This can be important when you are feeding the output from a sensor into a low-level device that can not do much computation as well as for developing the calibration equation above.
Repeatability, Dead Bands, & Hysteresis
One important quality of a sensor is that when you take a measurement in identical conditions you should get the same result every time. Often in mechanical systems there might be some slop in the gears that will cause a different value based on the direction of motion (hysteresis) or have some amount of motion that is not detected by the sensor creating a dead band.
For some sensors there is an inherent drift in the measurement. This is especially true with devices like rate gyro’s. You will want a model with low drift (the lower the drift the more it costs) and also you can filter the sensors output. For example if you know that the robot is not moving, you know that there is no rotation of the sensor so you can ignore the gyro and do fancy stuff such as ignoring the sensor and/or determining rates of drift and applying it to improve the sensor output.
I am putting temperature up here since there are 2 components to temperature. The first is temperature stability. Does the sensor value drift/change as the temperature changes. This is a common problem with many sensors.
The second temperature specification also has 2 parts to it:
1. Usable Temperature – What is the min/max temperature that the sensor can be used at?
2. Storage Temperature – What is the min/max the sensors can be before it gets damaged?
Field of View (FOV)
The FOV is an important specification that tells you what area (usually angular) can be seen by the sensor. This is often reported as a horizontal (hFOV) and vertical (vFOV) components. For example 60×40 degrees.
This is mostly pertaining to lasers but it is important to know how large the spot size is at a given distance (the spot gets larger with distance). This spot size is important for determining what size objects can you see through. A small spot size is critical for seeing through dust, rain, and snow. This can be expressed as both a horizontal and vertical spot size. Often if a sensor manufacturer only publishes one of the two values it is because the other one is larger (this is common).
You must know what type of output the sensor has. For example with an analog output you want to know what the range of voltage or resistance it is. If it is a higher level output make sure you have that type of input. Some common output types are 4-20mA, voltage, USB, ethernet, serial, and CAN.
One thing to watch out for is gigabit ethernet cameras often use a jumbo packet (large MTU) that is not supported by 802.11 wireless standards and must be used with a wired connection.
You want to know how much power the sensor uses and what voltage range the sensor can accept so that you can power the device properly. Some sensors will have a large range while some precision sensors will require its one DC-DC for a tightly regulated input voltage.
Mass, Size, Mounting Brackets, & Form Factor
Another thing to consider is if the sensors mass and size work for your system. The sensors form factor and mounting bracket will also play a role in how it fits. Many sensors will come in multiple form factors and you can customize where you want the wires to come out from, mounting brackets, etc..
Reliability can be a tough parameter to assess. There are many things that go into reliability.
Is the software mature and fault tolerant?
Is the sensor physically strong?
Is it well-built?
Does it have electrical safeguards in place (protection diodes, fuses, etc..)?
Are the connectors strong? Will the connectors fall out?
Can it get wet? How wet? What about Submerged?
Is it sealed from dust?
and the list just keeps going on…
One good place to start is looking at ratings given to the product. In particular NEMA and IP ratings are good to look at.
Click here for the Wikipedia article on NEMA ratings
Click here for the Wikipedia article on IP codes
Shock and Vibration
Will you be shaking the sensor more than it can handle? What about dropping it or going to fast?
All things you need to watch out for so you don’t destroy your sensor.
This is often a tricky parameter. You need to make sure that your sensors is not affected by other devices, and that your sensor if not affecting other devices. Some common examples of this are RF transmitters being to close (GPS, RTK, etc..). Lasers/Radars being in plane with each other and interfering with each others. Hall effect or capacitance based sensors being placed to close to one another.
For sensors that you talk to via the computer do you need to write code for it, is their code available? Be careful the vendor might say there is code but it might be for an x86 running windows and not for the Arm computer, Linux box, or whatever you want to use it with.
Cost & Lead Time
While always important I think you know what these parameters are…
Do they support their product? If they do not have faith in their product than should you?
Now there are some characteristics that are specific to cameras that I will go into below:
Exposure Time / Shutter Speed – (Images)
The exposure time and shutter speed are important for taking images. By setting how much light enters the camera you can optimize the camera for different conditions (day, night, etc..)
Speed (Frames per Second, FPS) – (Video)
The capture rate of the images for creating videos. 24fps is good for viewing and what is used (approximately) for movies. Very high-definition video can be 60fps.
Black & White (B&W) vs Color
Is the camera sensor get color images or just black and white. For navigation black and white is typically fine however for machine learning magic and visualizations color can be useful.
Can you adjust the zoom automatically or only by changing the lenses? In many cases having a fixed zoom lens is good and more reliable, it can also be important when you are calibrating the camera images.
This can be tied to the zoom options above. You want to determine the field of view (FOV) that you need in both the horizontal and vertical direction as well as the mechanical mount that you will need to connect to the camera. Some common lens mounts are the C-mount, the CS-mount and the M12 mount (M12 is sometimes called S-mount). You will also want to by a lens that is sized for your sensor and has the proper focal length based on your working distance from the camera.
There are also special lenses available such as a fisheye lens. Be careful as your FOV goes up you will often get warping in the image.
Once yo have your optics you might want to add a filter. There are all sorts of filters available. Some filters include UV, IR, diffusion, polarizing, and contrast control.
Resolution / Mega-Pixels (MP)
The resolution is the number of pixels in each direction. For example a camera resolution can be 648×488. It can also be refereed to by the number of pixels that it has. So 648 x 488 = 314272 or 0.3mega-pixels. The resolution is often specified at a specified frame rate. If you change the frame rate or your resolution might change.
High Dynamic Range
This is the ability to express a large range of brightnesses. This is often useful when a robot operates in full sun as well as in shadows.
This gives you the ability to define what white is so that your images look more realistic.
Gamma correction lets you correct the intensity of each pixel based on a non linear scale. The gamma value is typically applied to the entire image.
You need to look at the features that the camera provides and which settings can be changed via software. You want to check which settings you can command and which will require a human to walk up to the camera and modify.
Other features in a camera should be the ability to change compression algorithms for the output images, and auto-focus.
Triggering / Synchronization
The ability to trigger and synchronize image capture between cameras is important for methods such as stereo where you want all of the images to be taken at the same time.
A good book for learning all about sensor is the Handbook of Modern Sensors by Jacob Fraden.
I hope you found this useful, and thanks for readings!
Image from http://www.ti.com/lit/ds/symlink/lm741.pdf