Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

61
Sensors Brad Miller Associate Director, WPI Robotics Resource Center
  • date post

    20-Jan-2016
  • Category

    Documents

  • view

    223
  • download

    1

Transcript of Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Page 1: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Sensors

Brad MillerAssociate Director, WPI Robotics Resource Center

Page 2: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Why Use Sensors?

• Robot Internal State– Banner sensors– Limit switches– Potentiometers on arms– Accelerometers for tilt angle– Gyros for direction– Encoders for speed

• Robot position (usually) field relative– Rangefinders (ultrasonic or infrared)– Encoders for distance

Page 3: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

This Stuff is Easy!

• People seem to think autonomous operations is only for advanced teams– Hard to program– Hard to connect sensors– Hard to understand

• It’s NOT HARD – the FLL 7th graders can do it, their robots are all autonomous

• You just need the right tools!

Page 4: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Wiring Sensors

• Connects to robot via 3 pin PWM connector– PWM shells, connectors and crimp tool are

available from Jameco and DigiKey– Same for digital and analog I/O– All FRC connectors should be female– Vex connectors are male

Page 5: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

What makes a machine a robot?

where is thetruck?

Sensing Planning Acting

informationabout theenvironment

actionon the

environment

Page 6: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

What is sensing?

Sensing is converting a quantity that you want to measure into a useable signal (usually electronic).

Perception is the interpretation or under-standing of these signals.

Example:Sensing: Sound waves -> vibrating eardrums -> signals to brainPerception: Understanding that I am talking to you about sensors.

Page 7: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

One Use of Sensors

• Control your motors so they go at the speed and distance you ask them to– How do we know how fast the motor is

really going?– How do we know how far the robot really

went?– How do we know when the angle of the arm

is what we asked it to be?

Page 8: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Controlling the Robot

• Open loop control has no feedback– Set the speed and “hope” that the motors

go the requested speed and/or distance.

• Closed loop control (with feedback)– Use sensors to measure what’s going on

then do something about it!– Apply correction to the input

• Desired speed is higher – Increase motor power• Desired speed is lower – Decrease motor power

Page 9: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Simple feedback – On-Off

• On-Off (“Bang-Bang”) controller

• Thermostats have a set (desired) temperature– House too cold – turn on furnace– House too warm – turn off furnace

• Very of “jerky” response

• Hysteresis helps (dead band)

Page 10: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Proportional Control

• The speed of the robot (in this case) is proportional to the error signal– R(t) = Kp * (Ddes(t) – Dact(t))– The difference between the desired value and

the actual value is called the error function

• The constant Kp sets the response time– Higher Kp (controller gain) means faster

response, but too high and oscillations and overshoot

– Lower Kp and the system is slow and mushy

Page 11: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Proportional Control

Page 12: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Potentiometers

• Directly provides an angle of a piece of the robot

• You should always use potentiometers on anything that rotates or slides– Limit switches can provide stops, but not

position

• Examples– Robot arm joint position– Lift (elevator) position

Page 13: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Potentiometers• Variable resistor used to

indicate position of something

• Single turn (about 270 degrees) or multi-turn for elevators

• Always use linear pots – not logarithmic volume controls

• Connect to the power, ground, and signal

Page 14: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Potentiometer Examples

Page 15: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Encoders

• A sensor of mechanical motion that translates motion such as speed, direction or shaft angle into an electrical signal

• Types of encoder outputs– Standard– Quadrature– Other outputs: Grey Code, Binary

Page 16: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Encoders

• Usually optical and measure changes in rotating disk

• Standard encoders have one output and can’t sense direction

• Quadrature encoders have multiple outputs for direction

Page 17: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Encoder Examples

Page 18: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Characteristics

• Resolution – Cycles/revolution– Typically 32, 64, 128, or greater– Trade resolution for processing

requirements• Types of outputs

– Absolute: binary and gray code– Incremental: single channel (tachometer),

quadrature– Optionally provide index output

• Maximum rotational speed

Page 19: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Measuring Distance

Page 20: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Methods of Measurement

• Mechanical touch sensors– Simple to build but you need to be in

contact– The bumper sensor is a good example

• Light sensors– Infrared sensors measure reflected light

amplitude, angle, time of flight (TOF), or contrast

• Sonar– Bounce sound off target and time

Page 21: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Mechanical Sensors

• Just switches:– Commercial switches like limit switches and

bump sensors– Can be as simple as whiskers

• Generally only tell you a single distance

• Connect to a digital input on robot controller – we’re either in contact (1) or not in contact (0)

Page 22: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Limit Switches

• Can detect a fixed position• Useful for knowing which position a

mechanism is in– Pneumatic pistons with the reed switches

• Measuring the position– Polling – can easily miss the transition– Interrupts – better, but maybe more complex– Interrupt watchers (easyC and WPILib)

• Banner sensors are optical version of limit switch

Page 23: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Sonar Sensor

• Using the sensor– Start the sensor to begin, and stop it when finished– Read the range whenever it’s needed

Page 24: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

How WPILib Computes Distance

• Speed of sound (in air): about 343 m/s or 1125 ft/s– Distance to object is 1/2 the round trip time– EasyC does the work for us – but does not give distance

directly – that’s our job– Two connections, interrupt port and digital output

Output port

Interrupt port

Page 25: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Sharp IR Rangefinders

• Very inexpensive• Easy to use• Very cool!

Page 26: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Triangulation

• IR emitting diode is located at the focal point (F0), producing parallel rays of output

Page 27: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Triangulation 2

Page 28: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Triangulation 3

Page 29: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Triangulation 4

Page 30: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Triangulation 5

• PSD is located at the back focal plane (f)

Page 31: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Sharp: Limitations• Back side of

curve can give confusing readings – can be disastrous – easy to deal with

• Need to deal with nonlinear output

Page 32: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Cross Firing Detectors

• Get around the minimum distance

Page 33: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Beam Pattern

• Wider beam pattern using two crossing detectors

• Can be used with a servo to sweep an area

• Widest portion of beam is about 16cm

Page 34: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Choices of Sharp IR Sensors

Detector Output Type Range Enable Method On Current Off Current

GP2D02 Byte value read serially

from device 10cm - 80cm

Each reading triggered by an external clock

~25 mA ~2 uA

GP2D05 Boolean value (1 or 0)

based on distance threshold

10cm - 80cm adjustable threshold with small integrated potentiometer

Each reading triggered by an external clock

~25 mA ~2 uA

GP2D12 Analog value (0V to ~3V)

based on distance measured

10cm - 80cm

Continuous readings ~38ms per reading

~25 mA *

GP2D15 Digital (0 or 1) output factory preset to 24cm

Continuous readings ~38ms per reading

~25 mA *

* detector continuously reads (always on)

Page 35: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Gyros

• Measure rate of rotation– Integrate to get the angle– Initialize before using sensor– Connects to analog port

• Easy to get robots driving straight or on predetermined headings using proportional control

• Be careful of specs – especially the range (maximum degrees/sec)

• Parts usually come from Analog Devices

Page 36: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Gyro Programming

• With easyC or WPILib– InitializeGyro – runs calibration– StartGyro – starts background readings– GetGyroAngle – returns angle in 0.1 degrees– StopGyro – stops background readings

• Works with various models of gyros including kit parts – 80, 150, 300 degrees/sec

Page 37: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Sample Gyro Program

• Program always drives straight (0 degrees)

• Proportional control: Kp = 0.5

• Replace 0 with 900 for 90 degree turn, then drive

#include "BuiltIns.h"

void main(void){

InitGyro(1);StartGyro(1);TwoWheelDrive(1, 2);

while (1){

int error;int heading = GetGyroAngle(1);error = heading - 0;Drive(60, - error / 2);

}

}

Page 38: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

FIRST Infrared Remote Sensor

• Detects which of 4 IR Remote buttons is pressed– You program the sensor for a set of remote

codes• Put in program mode and teach it each code• It then detects those codes by setting one of 4

wires to 5v for 100ms. Maybe a good candidate for interrupt watchers

• Be careful if polling

– 7-15v power supply

Page 39: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Programming IR Sensor

Page 40: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Sample IR Receiver Program#include "BuiltIns.h"

#define LEFT 5#define RIGHT 6#define FORWARD 8#define BACKWARD 7

void main(void){

TwoWheelDrive(1, 2);while (1){

if (GetDigitalInput(FORWARD))Drive(127, 0);

else if (GetDigitalInput(BACKWARD))Drive (-127, 0);

else if (GetDigitalInput(LEFT))Drive(0, 127);

else if (GetDigitalInput(RIGHT))Drive(0, -127);

}}

Page 41: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Programming Sensors

• Programming tools– MPLab – Microchip tools that ship in the kit– Eclipse – Very popular open source

programming environment– easyC – supplied in the kit from Intelitek

• Represents the softest entry into the world of programming

Page 42: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Libraries and Frameworks

• Raw IFI code base– Very basic – a set of starter files– You’re responsible for all sensor code,

interrupts, timers, etc.• Kevin Watson’s code

– Complete source code base that you augment to add your code

• WPILib– Modular high level library that has “drivers” for

all sensors, timing, interrupts– easyC is based on WPILib

Page 43: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Program Structure

• Basically you write three functions:– void Initialize(void) // init sensors here– void Autonomous(void) // autonomous code– void OperatorControl(void) // operator code

• The library does all the rest of the work for you

Page 44: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Questions?

Page 45: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Why do robots need sensors?

internal information

What is the angle of my arm?

Page 46: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Why do robots need sensors?

Where am I?

localization

?

Page 47: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Why do robots need sensors?

Will I hit anything?

obstacle detection

Page 48: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Sensing for specific tasks

Where is the cropline?

Autonomousharvesting

Page 49: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Sensing for specific tasks

Autonomous material handling

Where are the forkholes?

Page 50: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Sensing for specific tasks

Where is the face?

Face detection & tracking

Page 51: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Control Systems

• Open loop: the sequence of commands in the program is carried out irrespective of consequences– Example: microwave oven set to defrost for 2

minutes. Shuts off in two minutes – ready or not.– Driving a fixed distance by timing

• Closed loop: feedback is used to modify the commands in the program based on current conditions– Example: home heating system – the current

temperature is fed back to the control system– Driving a fixed distance using wheel encoders

Page 52: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

People do Closed Loop Feedback

• We stay in our lane. How do we do this:– If we stray out of

the lane we apply a correction

– Amount of correction is usually related to the amount of error(wild turns on waking up!)

Page 53: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

What are some examples

• Keeping your house at a constant temperature

• Following a wall at a fixed distance

• Keeping the arm on our FIRST robot at a desired angle regardless of load

• Automotive cruise controls

• Airplane autopilots – near and dear to my heart

Page 54: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Derivative Control

• Going fast makes sense when far away.– The problem is momentum carries actuators

past the setpoint

• Rate of change of error over time – is the error getting smaller over time?

Page 55: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Solving the Steady State Error Problem

• The problem is: the system has internal friction– At low values (near 127) the motors just don’t turn and

the robot doesn’t make that final correction.• But there is still an error – this is the steady state error.• This is where the integral term helps: sum the error and

reapply it. The longer the robot sits parked at 13” the larger the error becomes until it is enough to move the robot.

• The same thing happens when the robot is too close to the wall. This time, a negative correction accumulates.

Page 56: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Integral Control

• The Integral of the error (error accumulated over time)– Acts on the “history” of the error– Eliminates steady state error– While the error is positive, the correction is

increasing. While the error is negative, the correction is decreasing.

Page 57: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Example: Driving Straight

• Gyro returns the rate of rotation– Integrate rate to get the heading– Different gyros have different sensitivities

Page 58: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Problem: Don’t Know the Distance Until Hitting the Object

Page 59: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Other Echolocation Users

Page 60: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Enter: Echolocation (Sonar)

• Sound Navigation and Ranging (Sonar)– Use speaker to send out

sound and microphone to listen for echo

– More correctly called echolocation

– Works in air or water

Page 61: Sensors Brad Miller Associate Director, WPI Robotics Resource Center.

Demonstration: Looking at the Rangefinder Signals

• We can measure the voltage from the echo return on the rangefinder.– That lets us see the

rangefinder operating in real-time using a software oscilloscope.