--- # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: CC-BY-SA-4.0 title: Robot Sensors permalink: /modules/1/robot-sensors.html --- Sensors are devices to measure physical properties. They can be classified in two categories: 1. **Proprioceptive**: measure properties of the robot itself. 2. **Exteroceptive**: measure properties of the surrounding. Another categorization is determined by whether they emit energy into the environment -- **active** sensors -- or not -- **passive** sensors. Here a number of passive proprioceptive sensors that are common in mobile robots. {% include two-columns.html description='A rotary **encoder** provides **rotation** information, which can be used to determine displacement, velocity, or angle. Such a sensor, for example, is present on cars to measure the distance traveled.' media='Incremental directional encoder Rotary encoder' position="right" %} ---------- {% capture text_imu %} **Inertial Measurement Unit (IMU)** is a proprioceptive sensor which provides **angular velocity and linear acceleration** measurements, which can be used to estimate the position and orientation of a robot. Micro Electro-Mechanical Systems (MEMS) IMUs have become very popular and widely used in electronics systems (e.g. mobile phone) due to their low-cost and light-weight. However, the measurements are corrupted by noises and biases. {% endcapture %} {% capture fig_imu %} SparkFun 6DoF-IMU-Digital-Combo-Board ITG3200+ADXL345 10121-01d {% endcapture %} {% include two-columns.html description=text_imu media=fig_imu position="right" %} ---------- {% include two-columns.html description='**Global Positioning System (GPS) sensor** uses triangulation from satellites to determine **geolocation and time**. Usual errors for consumer GPS, deriving from, e.g., clock drift, are in the order of tens of meters. Poor GPS signal reception can happen in cities with tall buildings, because of shadowing and multipath effects.' media='GeolocationAdafruit GPS Module Breakout' position="right" %} Exteroceptive active sensors that measure distance to obstacles include: {% include two-columns.html description='**LiDAR (Light Detection and Ranging)** sensor emits pulses of laser beams into the surroundings and measures the time for each pulse to bounce back to calculate the distance travelled. LiDAR creates real-time 3D representation of the environment both at day and night-time, possibly better at night without the interference of the sun.' media='LIDARanimVelodyne ProductFamily BlueLens 32GreenLens' position="left" %} ---------- {% include two-columns.html description='**SONAR (Sound Navigation and Ranging)** uses acoustic beams to create a map of the surrounding environment using the time-of-flight technique. Sonar is specifically useful for underwater exploration as sound waves travel farther than radar and light waves in water. There are different types of sonars -- imaging sonar, mechanical scanning profiling sonar, echo-sounder etc.' media='Maxbotix Ultrasonic-Range-Finder LV-MaxSonar-EZ0Sonar Principle EN' position="left" %} ---------- {% include two-columns.html description='**RADAR (RAdio Detection And Ranging)** system emits radio waves which reflect back to the radar when they come into contact with any surrounding objects. Radar can measure the range from time-of-flight (similar to LiDAR) and speed of an object using Doppler shift.' media='Distance Radar DR-1DHP 61 GHz Symeo' position="left" %} Exteroceptive passive sensors are energy efficient because they measure natural emissions from the environment: {% include two-columns-40.html description='**RGB Camera** is one of the cheapest, small, light-weight, and energy-efficient sensors. If it is configured as a pair, also called stereo camera, it can create a 3D map from a single stereo frame. The underlying assumption is that the environment has sufficient illumination with enough texture.' media='
Typical commercial color cameras.
Raspberry Pi Camera Module v2 with ribbon' position="left" %} ---------- {% include two-columns.html description='**RGB-D Camera** provides per-pixel depth or distance from the camera along with the RGB image. RGB-D camera projects infrared light pattern onto the scene and calculates the depth information using the known projected pattern. However, it can only work indoors cause sunlight will washout the speckle pattern.' media='KinectSensor' position="left" %} Sensors are **not perfect**: measurements are **noisy** -- e.g., the distance measurement of a SONAR place in the same location can be different -- and do not describe the whole environment. In addition, sensors cannot be modeled completely. As such, understanding the properties of the sensors is fundamental to explicitly model the uncertainty and not to let a robot fail in a real environment. How to process the data from the sensors and send commands to the actuators? Let's see the [computation devices]({{ site.baseurl }}{% link _modules/mod-1d-computation.md %}).