Today Midterm Demo Magellan has arrived Demo II: Demolition Derby

Slides:



Advertisements
Similar presentations
Robofest 2005 Introduction to Programming RIS 2.0 RCX Code.
Advertisements

Lecture 20 Dimitar Stefanov. Microprocessor control of Powered Wheelchairs Flexible control; speed synchronization of both driving wheels, flexible control.
MOTION CONTROL ECE 105 Industrial Electronics Engr. Jeffrey T. Dellosa College of Engineering and Information Technology Caraga State University Ampayon,
Odometry Error Detection & Correction - Sudhan Kanitkar.
Rotary Encoder. Wikipedia- Definition  A rotary encoder, also called a shaft encoder, is an electro- mechanical device that converts the angular position.
Tachometers – An Overview
Part 1: Introduction FRC Introduction  FRC 2907 since 2008  Each area of the robot has a team assigned  The Electronics team is headed this year.
Sensors Lecture is based on material from Robotic Explorations: A Hands-on Introduction to Engineering, Fred Martin, Prentice Hall, 2001.
Available at: – Program Optical Quad Encoders in Autonomous Mode Program optical quad encoders in autonomous mode.
Connecting VEX and ROBOTC
Engineering H193 - Team Project Gateway Engineering Education Coalition P. 1 Spring Quarter 2008 Robot Programming Tips Week 4 Day 2 By Matt Gates and.
The Enforcer Laura Celentano Glenn Ramsey Michael Szalkowski.
A.R.M.S. Automated Robotic Messaging System William Batts Chris Rericha.
SENIOR DESIGN 10/16.
EIGHTH GRADE ROBOTICS KITTATINNY REGIONAL HIGH SCHOOL MR. SHEA Introduction to Robotics Day4.
Micromouse Meeting #3 Lecture #2 Power Motors Encoders.
1 Sensors BADI Year 3 John Errington MSc. 2 Sensors Allow a design to respond to its environment – e.g. a line following robot may use photosensors to.
Basics of Sensors. A sensor is a device which is used to sense the surroundings of it & gives some useful information about it. This information is used.
Sensors Chris Davidson Ari Kapusta Optical Encoders and Linear Variable Differential Transformers.
June 12, 2001 Jeong-Su Han An Autonomous Vehicle for People with Motor Disabilities by G. Bourhis, O.Horn, O.Habert and A. Pruski Paper Review.
Applied Control Systems Robotics & Robotic Control

Microcontroller Hands-on Workshop #3 Ahmad Manshad New Mexico State University Institute of Electrical and Electronics Engineers November 7, 2009.
3-D Scanning Robot Steve Alexander Jeff Bonham John Johansson Adam Mewha Faculty Advisor: Dr. C. Macnab.
Localisation & Navigation
Programming Concepts Part B Ping Hsu. Functions A function is a way to organize the program so that: – frequently used sets of instructions or – a set.
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class 2.
An Introduction to Robotic Navigation ECE 450 Introduction to Robotics.
Autonomous Mobile Robots Lecture 04: Sensors
Programming Concepts (Part B) ENGR 10 Introduction to Engineering 1 Hsu/Youssefi.
Introduction to the VEX ® Robotics Platform and ROBOTC Software © 2012 Project Lead The Way, Inc.Principles of Engineering.
Lab 2 Structure, Drivetrains, and Ground Sensing
7.2 V battery pack and charger Put the battery in the charger station at the end of the lab. period. Red light indicates charging. Ken Youssefi Introduction.
Robot Building Lab: Localization and Mapping Collision Detection and Obstacle Avoidance Using Sonar  Have continuously running task update obstacle state:
Robot Building Lab: Localization DEMO  Show us your working differential drive robot  Start it running a fixed pattern that includes –Forward –Backward.
Castor Bot. Now, we will begin creating a robot Log onto your computer On your screen, click on the website labeled “castor bot” Your building instructions.
PRIYADARSHINI SHRAVYA KAVYAA MOBILE CONTROLLED ROBOT USING DTMF ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts.
Control systems KON-C2004 Mechatronics Basics Tapio Lantela, Nov 5th, 2015.
The George Washington University Department of ECE ECE Intro: Electrical & Computer Engineering Dr. S. Ahmadi Class 4/Lab3.
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class3/Lab 2.
Niket Sheth Chris Karman Erik Scherbenske Peter van der Hoop.
Smart Lens Robot William McCombie IMDL Spring 2007.
Sensors Lecture is based on material from Robotic Explorations: A Hands-on Introduction to Engineering, Fred Martin, Prentice Hall, 2001.
Robot Project by Ahmad Shtaiyat Supervised by Dr. Salem Al-Agtash.
BLDC Motor Speed Control with RPM Display. Introduction BLDC Motor Speed Control with RPM Display  The main objective of this.
 Definition of Micro-Controllers  Comparison between types of Micro- Controllers  Pin Identification of ATMEGA32.
Casne.ncl.ac.uk Taking care of the CrumbleBot Please do NOT stress the robot's motors 1.Do NOT push the robot 2.Do NOT hold the.
Connect VEX and ROBOTC Electrical Engineer Responsibilities © 2011 Project Lead The Way, Inc.Automation and Robotics VEX.
Introduction to VEX® components
National Highway Institute 5-1 REV-2, JAN 2006 EQUIPMENT FACTORS AFFECTING INERTIAL PROFILER MEASUREMENTS BLOCK 5.
ROBOTC for CORTEX Teacher Training © 2011 Project Lead The Way, Inc. Automation and Robotics VEX.
Electrical Engineer Responsibilities
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
Programming & Sensors.
Obstacle avoiding robot { pixel }
VEX IQ Curriculum Smart Machines Lesson 09 Lesson Materials:
Electrical Engineer Responsibilities
Sensors For Robotics Robotics Academy All Rights Reserved.
Introduction to Handshaking Communication with SSC-32U
ARDUINO LINE FOLLOWER ROBOT
‘SONAR’ using Arduino & ultrasonic distance sensor
Sensors For Robotics Robotics Academy All Rights Reserved.
Electrical Engineer Responsibilities
Pulse Width Modulation (PWM) Motor Feedback - Shaft Encoder
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
Electrical Engineer Responsibilities
CSCI1600: Embedded and Real Time Software
UNIT 11: RC-SERVOMOTOR CONTROL
CSCI1600: Embedded and Real Time Software
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
Presentation transcript:

Today Midterm Demo Magellan has arrived Demo II: Demolition Derby Reform Teams Lab 5 Hand out wheel encoders and servo motors Wheel encoders and odometry discussion Robot Building Lab: Wheel Encoders and Odometry

Our New Addition: Magellan Pro Pentium III 800 MHz onboard industrial PC 16 sonar sensors 16 IR sensors 16 bump sensors High-precision Laser Range Finder Odometric sensors Differential drive low-level processor (Motorola MC68332) communicates with drive motors sound Ethernet and Wireless Flex control system and Linux-based Mobility high-level programming Robot Building Lab: Wheel Encoders and Odometry

Mobility Software CORBA-based Software Development Environment Building blocks to construct robot control system Supports multiple robot systems Mobility Object Manager (MOM) – Java based GUI Robot Building Lab: Wheel Encoders and Odometry

Midterm Demo Use behavior/priority based control to combine: Two runs ground sensing, light following, bumper reaction, and IR obstacle avoidance and tracking Two runs First run is time trial Second run in decreasing order of time of first run Score is least time over both runs Penalty of +10 seconds for each time you cross through a ground object Robot Building Lab: Wheel Encoders and Odometry

Demo II: Demolition Derby Label robot kit with team number Label robot with team number Put kits circle/square and robots in middle Run program from midterm Extra credit points in order of finish Re-form teams Inventory major components of kit and report any missing/broken pieces Robot Building Lab: Wheel Encoders and Odometry

New Teams (Robot Stays with Team Name, People Move) Team 1: Max D Peysakhov, Omar Hasan, Edward Whatley Team 2: Timothy S. Souder, Eric D. Pancoast, Ed Burger Team 3: Donovan Artz, Christopher J Flynn, Michael R. DeLaurentis Team 4: Kang Chen, Umesh Kumar, Brian J. Summers Team 5: Lisa P. Anthony, Matthew A Curran, Andrea J. Glenbockie Team 6: Daryl L Falco, Andrew R. Mroczkowski, Chris Cera Robot Building Lab: Wheel Encoders and Odometry

Lab 5 Wheel Encoders and Odometry http://plan.mcs.drexel.edu/courses/robotlab/labs/lab05.pdf Robot Building Lab: Wheel Encoders and Odometry

Lab 5 Wheel encoders Odometry Servo motors Robot Building Lab: Wheel Encoders and Odometry

Break-Beam Sensors Pairs of light-emitting and light- detecting components used in the break-beam configuration Light-emitting component aimed at a light-detecting component When opaque object comes between emitter and detector, the beam of light is occluded, and the output of the detector changes Any pair of compatible emitter– detector devices may be used. Discrete infrared LED, phototransistor and various commercial break-beam optosensors (copyright Prentice Hall 2001) Robot Building Lab: Wheel Encoders and Odometry

Break-Beam Sensors Building For sensing objects between larger gaps, use discrete emitters and detectors Interface to HB the same as for the reflective optosensors Emitter LED powered from HB +5v supply through dropping resistor Detector phototransistor connected between sensor signal line and ground Polarity is not indicated by length of device leads; look for + marking (copyright Prentice Hall 2001) Robot Building Lab: Wheel Encoders and Odometry

Use of Break Beams for Shaft Encoding Measures the angular rotation of an axle, reporting position and/or velocity information Example: speedometer, which reports how fast the wheels are turning; odometer, which keeps track of the number of total rotations Single-Disk Shaft Encoder A perforated disk is mounted on the shaft and placed between the emitter–detector pair. As the shaft rotates, the holes in the disk chop the light beam. Hardware and software connected to the detector keeps track of these light pulses, thereby monitoring the rotation of the shaft. (copyright Prentice Hall 2001) Robot Building Lab: Wheel Encoders and Odometry

Our Wheel Encoders Optical encoder to measure wheel rotation of each drive wheel Slotted disk attached to wheel or motor shaft “Break-beam” IR counts number of slots that pass in given time (ports 7,8 ) Enable_encode, disable_encoder, read_encoder (number of on/offs since last reset), reset_encoder Max 32,767 counts (16 bit) Encoder library must be loaded Robot Building Lab: Wheel Encoders and Odometry

Counting Encoder Clicks To make sense of data from a shaft encoder, install a routine that repeatedly checks the sensor value. If the encoder wheel turns faster than the routine checks the sensor state, it will start missing transitions and lose track of the shaft’s rotation Variables for algorithm: encoder_state - Keeps track of last encoder reading:1 if high (above 128), 0 if low (below 128) encoder_counter - Keeps running total of encoder “clicks” (copyright Prentice Hall 2001) Robot Building Lab: Wheel Encoders and Odometry

Library Drivers to do the Counting Machine language routine loaded into IC’s underlying layer of direct 68HC11 code, with user interface - IC binary (ICB) files installed in interrupt structure of 68HC11 Monitors shaft encoder values and calculates encoder steps and velocity needs quickly and at regular intervals HB’s software libraries include set of routines for supporting shaft encoders for both position- counting and velocity measurement. For each analog input on HB, a pair of shaft encoder routines is provided. Once loaded into IC, the encoder routines are automatically active; no additional commands are needed to turn them on. Each encoder0_counts variable (running total of transitions on encoder sensor) will automatically increment every time it senses a transition on its corresponding encoder sensor The encoder0_velocity value (velocity measurement) is continuously updated Robot Building Lab: Wheel Encoders and Odometry (copyright Prentice Hall 2001)

Driver Software Hysteresis Library routines use two thresholds to track changes in the raw encoder reading Reading must rise above a high threshold value to be considered high, and then fall below a low threshold to be considered low Square wave changes state either when encoder reading rises above 200, or falls below 50 When encoder value is between these two thresholds, square wave “waits” for value to reach threshold before changing state The sine wave represents the raw encoder value. The dashed square wave represents the encoder state of the driver routine — each transition on the square wave corresponds to an encoder count. (copyright Prentice Hall 2001) Robot Building Lab: Wheel Encoders and Odometry

Measuring Velocity Driver routines measure rotational velocity as well as position Subtract difference in the position readings after an interval of time has elapsed Velocity readings can be useful for a variety of purposes Robot that has an un-powered trailer wheel with a shaft encoder can easily tell whether it is moving or not by looking at encoder activity on the trailer wheel. If the robot is moving, the trailer wheel will be dragged along and will have a non-zero velocity. If the robot is stuck, whether or not its main drive wheels are turning, the trailer wheel will be still. Velocity information can be combined with position information to perform tasks like causing a robot to drive in the straight line, or rotate a certain number of degrees. These tasks are inherently unreliable because of mechanical factors like slippage of robot wheels on the floor and backlash in geartrains, but to a limited extent they can be performed with appropriate feedback from shaft encoders. (copyright Prentice Hall 2001) Robot Building Lab: Wheel Encoders and Odometry

Programming Encoders ao(); } /* Normal encoders, on ports 7 and 8. Must load encoders.lis to use this, more info in the HB manual. */ void main(void) { enable_encoder(0); /* Turn on encoder on port 7 */ motor(0, 20); while (read_encoder(0) < 130) ; reset_encoder(0); motor(0, -20); ao(); } /* Using encoders on analog ports 0 through 5 Must load the relevant file, sendr0.icb in this case. Consult the readme in the libs directory for info. */ void main(void) { motor(0, 20); while (encoder0_counts < 130) ; encoder0_counts = 0; motor(0, -20); ao(); /* Note that these analog functions also provide velocity information */ } Robot Building Lab: Wheel Encoders and Odometry

Lab 5 Wheel encoders Odometry Servo motors Robot Building Lab: Wheel Encoders and Odometry

Dead Reckoning (deductive reckoning) Integration of incremental motion over time Given known start position/orientation (pose) Given relationship between motor commands and robot displacement (linear and rotational) Compute current robot pose with simple geometric equations Provides good short-term relative position accuracy Accumulation of errors in long-term – wheel slippage, bumps, etc., Robot Building Lab: Wheel Encoders and Odometry

Problems with Dead Reckoning Calibration, uncertain robot geometry Friction, wheel slippage Errors grow without bound unless periodic absolute position corrections from other sensors used Robot Building Lab: Wheel Encoders and Odometry

Odometry Errors Systematic Errors Non-systematic Errors Asymmetries, uncertainties in robot dimensions Kinematic imperfections* Can be measured and adjusted for – vehicle-specific calibration Non-systematic Errors Bumps, uneven floors, slippage More difficult to handle but not as dominant as systematic errors on smooth indoor surfaces Frequent absolute position adjustments needed in any case *kinematics: given starting point and motor commands, specify ending point Robot Building Lab: Wheel Encoders and Odometry

Systematic Errors Two primary sources: Unequal wheel diameters (Ed) – lead to curved trajectory Uncertainty about wheel base (Eb) – lead to errors in turn angle Errors may also be affected by load distribution Vehicle-specific calibration needed – for error correction in software Careful experiments needed to measure errors accurately Periodic absolute pose updates cannot be avoided but the frequency can be reduced Robot Building Lab: Wheel Encoders and Odometry

Reducing Odometry Error with Absolute Measurements Uncertainty Ellipses Change shape based on other sensor information Artificial/natural landmarks Active beacons Model matching – compare sensor-induced features to features of known map – geometric or topological (Labs 8 and 9) Robot Building Lab: Wheel Encoders and Odometry

Systematic Errors Unequal wheel diameters – curved trajectory, or Uncertainty about wheel base – errors in turn angle Same resulting pose Try to correct errors in software But need to be careful about experiments to ensure that errors are corrected and not just hidden in specific tests (lab 6) Periodic absolute pose updates cannot be avoided Robot Building Lab: Wheel Encoders and Odometry

Odometry Design Considerations Smaller wheelbases are more prone to orientation errors Castor wheels that bear significant weight induce slippage Limit speed during turning to reduce slippage Limit accelerations Error changes with wear and load distribution changes (as well as surface differences) Battery charge effects motor power Robot Building Lab: Wheel Encoders and Odometry

Lab 5 Wheel encoders Odometry Servo motors Robot Building Lab: Wheel Encoders and Odometry

Servo Motors Package includes: Dc motor Gear reduction Shaft positioning sensor and control circuit Command output shaft to move to a certain angular position Three wires: power, ground and control Use digital port number 9 Robot Building Lab: Wheel Encoders and Odometry

Attaching Sonar and Circuit Board Attach forward-facing servo motor to robot Can use to mount various sensors that can actively scan a scene In particular, sonar and light sensor Robot Building Lab: Wheel Encoders and Odometry

Wiring Sonar and Circuit Board 3 connections SPI expansion header (2 pin cable) Digital port 7 (3 pin cable) Power expansion header (4 pin cable) Robot Building Lab: Wheel Encoders and Odometry

Next Week Take-home part of Lab Build differential drive robot that includes wheel encoders, room for all previous sensors, room for servo turret Same as lab 2: Program to move in a pattern of forward, backward, left, right, movements, in a small area. Include both straight lines, standing turns, and curves --- without using wheel encoders for now Demo at start of next class Read on-line documents and answer questions specified at http://plan.mcs.drexel.edu/robotlab/questions/Week5.html Lab 6: Localization, odometry, virtual path following, and proportional control Robot Building Lab: Wheel Encoders and Odometry

Review: Lab 4 Programs Global variables for: calibration variables light-state, ground-state, bumper state, IR state Function to calibrate ground sensor using buttons (done) Function to determine light-state (done) Function to determine ground state (done) Function to move toward light (done) Function to move away from ground obstacle (done) Function to detect bumper state (in-class/home) Function to react to bumper collision (in-class) Function to calibrate IR sensors (in-class) Function to determine IR state (in-class) Function to avoid and track IR-detected obstacles (at home) void main(void) { calibrate start processes to keep track of: light, ground, bumper, IR states (with good use of defer) behavior/priority based control program to switch between: light following, collision reaction, ground reaction, obstacle avoidance – according to priority scheme (at home) } Robot Building Lab: Wheel Encoders and Odometry

References http://plan.mcs.drexel.edu/projects/legorobots/handyboard.html http://plan.mcs.drexel.edu/courses/robotlab/readings/hbmanual.pdf http://plan.mcs.drexel.edu/courses/readings Robot Building Lab: Wheel Encoders and Odometry

New Teams Team 1: Max D Peysakhov, Omar Hasan, Edward Whatley Team 2: Timothy S. Souder, Eric D. Pancoast, Ed Burger Team 3: Donovan Artz, Christopher J Flynn, Michael R. DeLaurentis Team 4: Kang Chen, Umesh Kumar, Brian J. Summers Team 5: Lisa P. Anthony, Matthew A Curran, Andrea J. Glenbockie Team 6: Daryl L Falco, Andrew R. Mroczkowski, Chris Cera Robot Building Lab: Wheel Encoders and Odometry