Advanced Robot Control - PowerPoint PPT Presentation

About This Presentation
Title:

Advanced Robot Control

Description:

Do until container is set to 2 which means both sensors made it to the dark line ... Made with container forks for branching for different response to each ... – PowerPoint PPT presentation

Number of Views:33
Avg rating:3.0/5.0
Slides: 35
Provided by: marque60
Learn more at: https://first.wpi.edu
Category:

less

Transcript and Presenter's Notes

Title: Advanced Robot Control


1
Advanced Robot Control
  • Programming for Robustness with RoboLab

2
Positioning
  • Absolute
  • Uses features or landmarks of the course
  • Relative
  • Robot keeps track of its moves
  • Relies on Odometry

3
Positioning Problems
  • Absolute
  • May have difficult time finding small landmarks
  • Some landmarks robots are easily damaged
  • Relative
  • Error accumulates with every move
  • If too many errors, robot maybe too far off
    course to find landmark later

4
Common Sources of Error
  • Rotation Sensor Resolution
  • Gear Backlash
  • Program Execution Speed
  • Wheel Spin/Skidding
  • Inside Turn Wheel

5
Rotation Sensor Resolution
  • Robot only knows position with plus or minus one
    count (at best)
  • Gear backlash increases error beyond one count
  • Use finer resolution to reduce error (Minimize
    Distance per Count)
  • Rotation sensor should be at same speed as motor
    (or up to 1-1/2 times higher)

6
Program Execution Speed
  • Rotation sensor not read continuously
  • RCX may not see a target
  • RCX will not react instantly

7
Wheel Spin at Startup
  • Caused by sudden application of motor torque, not
    enough weight on drive wheels
  • Wheels and rotation sensor turn before robot
    starts
  • Skip or changes direction due to jump from
    start

8
Skidding
  • Caused by rapid application of motor braking and
    not enough weight on drive wheels
  • Robot told to stop but continues to move
  • Rotation sensor doesnt see move
  • Sends robot off position, affecting next move by
    robot

9
Turns
  • Errors are magnified in turns
  • Any slight direction error can cause larger
    side-to-side error
  • Braking of inside wheel
  • Any movement of the inside wheel lessens the
    overall turn true angle is shorter than with a
    locked wheel
  • Turns made with two counter-rotating wheels
    doubles rotation sensor resolution errors
  • Additional errors if wheels dont turn at same
    speeds

10
Non-Programming Solutions
  • Set a reasonable speed-Try gearing robot for 10
    to 15 inches per second
  • Allows one wheel to be locked in turn
  • Gear rotation sensor for 1/8 of travel per count
    or less
  • Measures position as precisely as practical
  • Minimize backlash by avoiding multi-stage gearing
  • Avoid loose gear meshes
  • Keep weight on driving wheels
  • Gain traction
  • Minimize slipping and skidding
  • Weight shifts with accel/decel
  • Match motors use two motors with same output
    speeds
  • Use motor test jig

11
Motor Test Jig
  • Build a motor test jig using
  • Load motor with worm geartrain
  • Test and record motor data
  • Run for turn, record counts
  • Forward and reverse
  • Different power levels

Picture of Motor Test Jig
12
Programming Solutions
  • Creeping
  • Precise Forward/Reverse/Turns
  • Square Up to Lines
  • Line Following using shades of gray
  • Experimentation

13
Creeping
  • Moves Robot Slowly by providing a series of taps
    to the robot
  • Overcome static friction
  • Provides braking and speed control
  • Offers these Advantages
  • Go slowly to minimize wheel slippage
  • Minimize distance error due to polling error
  • Better chance of sensing narrow lines
  • Bump up against landmark with much less force

14
Why Not Use Low Power Levels?
  • Often dont provide enough power to overcome
    static friction
  • Robot still rolls easily enough that speed is
    still too high

15
How to Creep
  • Create a loop to wait for rotation (or time,
    light level or button press)
  • Start motors at medium power level
  • Wait for a very small time (1/100 sec)
  • Stop the motors
  • Wait for a very small time (1/100 sec)
  • End loop

16
Creep Example
17
Precise Turns/Forward/Reverse
  • Power applied gradually
  • Reduce power before target
  • Creep forward/backward until reach target

18
Precise Startup
  • Uses subroutine (to save memory)
  • Position target passed from main task via
    container
  • Sets up intial target
  • Try using 10 to 20 counts short of actual target
  • Loops until initial rotation target
  • Branches to different power levels based on timer
    to provide smoother acceleration
  • Avoids wheel slip at startup

19
(No Transcript)
20
At Initial Target
  • Coast or Creep
  • If coasting, coast until time
  • Could possibly coast past target
  • Creeping applies pulsed braking
  • No skidding
  • Self correcting using closed loop positioning
  • Moves forward or reverse to final target count
  • Too far creeps in reverse
  • Too short creeps forward

21
(No Transcript)
22
Routine Details
  • One subroutine can be used for left turns and
    forward
  • Container 7 is set to 0 or 1 to choose left or
    forward
  • Reverse or right turns are done similarly
  • Stored as subroutines to save memory
  • Target counts are passed using blue container
  • Set container for forward/reverse or left/right

23
Square Up
  • Line up robot to edge of line
  • Uses two Light Sensors
  • Moves robot so each sensor seeks dark/light edge
  • Know exact spot when parked
  • Accuracy in direction
  • Accuracy in position (1 axis)

24
Square Up Setup
  • Square up to dark line
  • Each sensor is different
  • Needs to be set before running
  • Separate sub-vi that calibrates light levels
  • Grabs light values
  • Calculates and stores threshold values

25
How it works
  • For each sensor
  • If sensor sees
  • Light Creep one pulse forward, Reset Container
    to 0
  • Dark Add 1 to container
  • Do until container is set to 2 which means both
    sensors made it to the dark line
  • Robot waddles to the line
  • Repeat process with motors set for reverse and
    looking for light instead of dark
  • Repeat loop two times to assure exact placement

26
(No Transcript)
27
Line Following
  • Follow line edge using light sensor
  • Reads average value of light within a circle
  • Seeking halfway between light and dark
  • Based upon Light level sensed Motor Behavior
    will set motors to creep to steer robot toward
    line edge
  • Can be separated into the 7 zones (shades of
    grey)
  • Can go straight or turn depending on value
  • Go faster and straighter near middle zones
  • Go slower and turn sharper in zones away from
    middle

28
(No Transcript)
29
Program Example
  • Create an outer loop
  • rotation sensor target
  • Create a decision tree within the loop
  • Made with container forks for branching for
    different response to each light level range
  • Use Creeping within each branch
  • Each of the 7 conditions can be setup and tested
    individually

30
Experimentation is Key
  • Alter creep speed and turn radius
  • Watch robot to see how it behaves
  • Adjusting height of light sensor
  • Changes size of circle being read
  • Changes sensitivity
  • Adjust location of light sensor
  • Change weight distribution

31
Memory Management
  • Use Subroutines(Subs) for routines called
    repeatedly
  • Pass parameters to Subs using Containers
  • Use Containers as flags (for program forks) to
    get multiple functions per Sub.
  • Use utility programs to show memory usage and
    clear out slots.
  • Get to know memory usage of program elements

32
Show Memory vi example
33
Erase Slot vi example
34
One Final Thought
  • The lesson is in the struggle and not in the
    victory
Write a Comment
User Comments (0)
About PowerShow.com