A robot perceives the world around it, and its own status, through sensors. Sensors can take in a broad range of
information, including temperature, light conditions, positions of robotic
components,
and more. Environmental data is picked up and relayed to the processor so the robot
can
change actions accordingly and operate with little human input.
For simple robots, sensors need only provide very basic environmental information
such as
light detection using photo sensors, obstacle detection using bumpers or protruding
stiff wires ("whiskers") attached to simple switches that make contact when touched,
microphones to pick up voice commands, and perhaps infrared transceivers enable
complex
distance detection.
Sophisticated robots can include hundreds of sensors including very high accuracy
gyroscopes, accelerometers, and inclinometers to detect position for maintaining
balance; as well as potentiometers for positional feedback of arms and legs, for
example. For imitating human senses, high end CCDs as used in cameras can give
robots
machine vision while microphones enable the robot to hear.
Tactile sensing enables a robot to detect physical contact with the environment.
These sensors can be piezo resistive, capacitive sensing, or elastoresistive
tactile
sensors, the latter of which are so sensitive they are used in minimally
invasive
surgery instruments that can literally feel inside a patient.
Sensors interface to a processor by a serial interface, analog interface, or
binary
input. Serial interfaces include SPI, I2C, and UART protocols.
Analog-to-digital converters convert input from analog sensors into digital
input
for processing or for data collection and storage. For binary or single-switch
sensors, general purpose IO (GPIO) pins can be used. Sensor input to a processor
can
be direct analog input (a real world sensor), digital (on/off input), or
streaming
data communicated to the processor via some kind of networked (e.g., Wi-Fi, Ethernet) or communications
bus
(e.g., serial or USB).