Title: LEGO Mindstorms NXT
1LEGO Mindstorms NXT
SOURCES
Carnegie Mellon Gabriel J. Ferrer Dacta Lego Timo
thy Friez Miha Štajdohar Anjum Gupta Group
Roanne Manzano Eric Tsai Jacob Robison
2Introductory programming robotics projects
- Developed for a zero-prerequisite course
- Most students are not ECE or CS majors
- 4 hours per week
- 2 meeting times
- 2 hours each
- Students build robot outside class
3Beginning activities
- Bridge
- Tower
- LEGO Man
- Organizing Pieces
- Naming Pieces
- Programming Robot People
- Robots by instructions
4Teaching Ideas
- Teach mini-lessons as necessary
- Gears- Power vs. Speed
- Transmission of energy/motion
- Using fasteners
- Worm Gears
- Building with bricks vs. building machines
These spin
These dont
5Project 1 Motors and Sensors (1)
- Introduce motors
- Drive with both motors forward for a fixed time
- Drive with one motor to turn
- Drive with opposing motors to spin
- Introduce subroutines
- Low-level motor commands get tiresome
- Simple tasks
- Program a path (using time delays) to drive
through the doorway
6First Project (2)
- Introduce the touch sensor
- if statements
- Must touch the sensor at exactly the right time
- while loops
- Sensor is constantly monitored
- Interesting problem
- Students try to put code in the loop body
- e.g. set the motor power on each iteration
- Causes confusion rather than harm
7First Project (3)
- Combine infinite loops with conditionals
- Enables programming of alternating behaviors
- Front touch sensor hit gt go backward
- Back touch sensor hit gt go forward
- Braitenberg vehicles and state-machine based
robots
8Project 2 Mobile robot and rotation sensors (1)
- Physics of rotational motion
- Introduction of the rotation sensors
- Built into the motors
- Balance wheel power
- If left counts lt right counts
- Increase left wheel power
- Race through obstacle course
9Second Project (2)
- if (/ Write a condition to put here /)
-
- nxtDisplayTextLine(2, "Drifting left")
-
- else if (/ Write a condition to put here /)
-
- nxtDisplayTextLine(2, "Drifting right")
-
- else
-
- nxtDisplayTextLine(2, "Not drifting")
-
Complete this code with various conditions and
various motions
10Project 3
11Line Following
- Use light sensors to follow a line in the least
time - Design and programming challenge
- Uses looping or repeating programs
- Robots appear to be thinking
12The line following project
- Objectives
- Build a mobile robot and program it to follow a
line - Make the robot go as fast as possible
- Challenges
- Different lines (large, thin, continuous, with
gaps, sharp turns, line crossings, etc) - Control algorithms for 1, 2 and 3 sensors
- Real time, changing environment
- Learning, adaptation
- Fault tolerance, error recovery
13Different control algorithms for different lines
(large and thin line)
14Different control algorithms for 1 and 3 sensors
15The used techniques and knowledge (1)
- Real time constraints appear when the robot goes
as fast as possible - Sensor reading and information processing speed
- Motor-robot inertia, wheel slipping
- Fault tolerant, error recovery techniques are
used when - Unreliable sensor values
- Inaccurate surface
- Loosing the line
16The used techniques and knowledge (2)
- Initial calibration and adaptation are used in
the changing environment - Changes in the light intensity of the line (room
lamps, robot shade, ) - Batterys charge
- Learning techniques can be used to determine
- How fast the robot can go (acceleration on long
straight lines) - How sharply the robot should turn
- How to avoid endless repetitions
17Educational benefits of the line following
project
- Students confronted, used and learned
- Real time constraints
- Robust, fault tolerant control algorithms
- Error recovery techniques
- Robots learning and adaptation to the changing
environment
18The Challenges
19Project 4 Drawing robot
- Pen-drawer
- First project with an effector
- Builds upon lessons from previous projects
- Limitations of rotation sensors
- Slippage problematic
- Most helpful with a limit switch
- Shapes (Square, Circle)
- Word (LEGO
20Pen-Drawer Robot
21Pen-Drawer Robot
22Project 5 Finding objects (1)
- Finding objects
- Light sensor
- Find a line
- Sonar sensor
- Find an object
- Find free space
23Fourth Project (2)
- Begin with following a line edge
- Robot follows a circular track
- Always turns right when track lost
- Traversal is one-way
- Alternative strategy
- Robot scans both directions when track lost
- Each pair of scans increases in size
24Fourth Project (3)
- Once scanning works, replace light sensor reading
with sonar reading - Scan when distance is short
- Finds freespace
- Scan when distance is long
- Follow a moving object
25Light Sensor/Sonar Robot
26Other Projects with mobile robots
- Theseus
- Store path (from line following) in an array
- Backtrack when array fills
- Robotic forklift
- Finds, retrieves, delivers an object
- Perimeter security robot
- Implemented using RCX
- 2 light sensors, 2 touch sensors
- Wall-following robot
- Build a rotating mount for the sonar
- Quantum Braitenberg Robots of Arushi Raghuvanshi
- Maze Robots of Stefan Gebauer and Fuzzy robots of
Chris Brawn
27Robot Forklift
28Gearing the motors
29Project 6 Fuzzy Logic
- Implement a fuzzy expert system for the robot to
perform a task - Students given code for using fuzzy logic to
balance wheel encoder counts - Students write fuzzy experts that
- Avoid an obstacle while wandering
- Maintain a fixed distance from an object
30Fuzzy Rules for Balancing Rotation Counts
- Inference rules
- biasRight gt leftSlow
- biasLeft gt rightSlow
- biasNone gt leftFast
- biasNone gt rightFast
- Inference is trivial for this case
- Fuzzy membership/defuzzification is more
interesting
31Fuzzy Membership Functions
- Disparity leftCount - rightCount
- biasLeft is
- 1.0 up to -100
- Decreases linearly down to 0.0 at 0
- biasRight is the reverse
- biasNone is
- 0.0 up to -50
- 1.0 at 0
- falls to 0.0 at 50
32Defuzzification
- Use representative values
- Slow 0
- Fast 100
- Left wheel
- (leftSlow repSlow leftFast repFast) /
(leftSlow leftFast) - Right wheel is symmetric
- Defuzzified values are motor power levels
33Project 7. Q-Learning
- Discrete sets of states and actions
- States form an N-dimensional array
- Unfolded into one dimension in practice
- Individual actions selected on each time step
- Q-values
- 2D array (indexed by state and action)
- Expected rewards for performing actions
Q-values
34Q-Learning Main Loop
- Select action
- Change motor speeds
- Inspect sensor values
- Calculate updated state
- Calculate reward
- Update Q values
- Set old state to be the updated state
35Calculating the State (Motors)
- For each motor
- 100 power
- 93.75 power
- 87.5 power
- Six motor states
36Calculating the State (Sensors)
- No disparity STRAIGHT
- Left/Right disparity
- 1-5 LEFT_1, RIGHT_1
- 6-12 LEFT_2, RIGHT_2
- 13 LEFT_3, RIGHT_3
- Seven total sensor states
- 63 states overall
37Action Set for Balancing Rotation Counts
- MAINTAIN
- Both motors unchanged
- UP_LEFT, UP_RIGHT
- Accelerate motor by one motor state
- DOWN_LEFT, DOWN_RIGHT
- Decelerate motor by one motor state
- Five total actions
38Action Selection
- Determine whether action is random
- Determined with probability epsilon
- If random
- Select uniformly from action set
- If not random
- Visit each array entry for the current state
- Select action with maximum Q-value from current
state
39Calculating Reward
- No disparity gt highest value
- Reward decreases with increasing disparity
40Updating Q-values
- QoldStateaction
- QoldStateaction
- learningRate
- (reward discount maxQ(currentState) -
QoldStateaction)
41Student Exercises
- Assess performance of wheel-balancer
- Experiment with different constants
- Learning rate
- Discount
- Epsilon
- Alternative reward function
- Based on change in disparity
42Learning to Avoid Obstacles
- Robot equipped with sonar and touch sensor
- Hitting the touch sensor is penalized
- Most successful formulation
- Reward increases with speed
- Big penalty for touch sensor
43Other classroom possibilities
- Operating systems
- Inspect, document, and modify firmware
- Programming languages
- Develop interpreters/compilers
- NBC an excellent target language
- Supplementary labs for CS1/CS2
44Project 8. Sumo and similar fighting competitions
45The Tug O War
- Robots pull on opposite ends of a 2 foot string
- There are limits on mass,motors, and certain
wheels - Teaches integrity, torque, gearing, friction
- Good challenge for beginners
- Very little programming
46Drag Race
- Least amount of time to cross a set distance
- Straight, light fast designs
- Teaches gearing, efficiency
- Nice contrast to Tug O War
- Little programming
47Sprint Rally
- Cross the table and return, attempting to stay
within the designated path. - Challenging programming
- Possibly uses sensors
- Teaches precision, programming logic, prediction
48Sumo-Autonomous
- Robots push each other out of the ring
- A real competition
- Require light sensors
- Encourages efficient, robust designs
- Power isnt everything
- Designs must predict unknown opponents
49Sumo-Remote
- Uses another RCX or tethered sensors to control
- Do not use Mindstorms remote
- Like BattleBots
- Still requires programming
- Driver skill is a factor
50Other Challenge Possibilities
- Weight lifting, obstacle course, tightrope
walking, soccer, maze navigation, Dancing, golf,
bipedal locomotion, tractor pull, and many more - Cooperative Robots
- Component Design
- Time-limited robot design
- See the website, find more on the internet, or
create your own - Create Specific rules
- Predict loopholes
51Final Notes
- Slides available on-line
- http//ozark.hendrix.edu/ferrer/presentations/
- Make sure to check back with www.robotc.net for
updates and support. - Join the robotc.net forums at www.robotc.net/forum
s - www.chiefdelphi.com useful community website
for getting all other FIRST related questions
answered - Any questions Post to forums, or e-mail me at
frc-support_at_robotc.net