320 likes | 519 Views
Building Mindstorms NXT Robots. Dr. David Johnson School of Computing dejohnso@cs.utah.edu. What Is a Robot?. What Is a Robot?. Sense Update information about the world Plan Modify original plan in response to this sensed information Act Move in the world or make a change in the world.
E N D
Building Mindstorms NXT Robots Dr. David Johnson School of Computing dejohnso@cs.utah.edu
What Is a Robot? • Sense • Update information about the world • Plan • Modify original plan in response to this sensed information • Act • Move in the world or make a change in the world
Some Example Robots • Big Dog • http://www.youtube.com/watch?v=b2bExqhhWRI • Planetary Exploration • http://www.youtube.com/watch?v=nb2GsD7TAjU&feature=related • Home assistance • http://www.youtube.com/watch?v=GTxW3GWZ5hI • Hobby • http://www.youtube.com/watch?v=zX09WnGU6ZY
Resources for Learning About Robots • Web • Wikipedia • http://en.wikipedia.org/wiki/Robot • New Scientist • http://www.newscientist.com/article/dn9973-instant-expert-robots.html • Youtube • MAKE magazine • Boy Scout badge guide is quite nice and cheap • Consider exercising your team’s FLL research skills by having them look at some of these resources
Mindstorms NXT • Is it a robot? Can it • Sense? • Plan? • Act?
Mindstorms NXT • It can • Sense • Light intensity and/or color • Sound intensity • Button presses • Distance to nearby objects • Wheel revolutions • Plan • Act
Mindstorms NXT • It can • Sense • Plan • Small computer brain • “the brick” • Graphical programming language • Act
Mindstorms NXT • It can • Sense • Plan • Act • Three motors that turn • Make sounds • Put words and pictures on its display
Robot Design Judging • Teams demonstrate their robot on a field • Discuss challenges and solutions • Judges have a base rubric plus comments • How are sensors used? • Is the robot solidly built? • Modular design • Programming innovation • Does something stand out? • Reuse an attachment for different purposes • Go over obstacles instead of around • Programs that adapt to different risk levels
Goals For Today • Raise your comfort level with Mindstorms • Building • Programming • There is no substitute for doing it • Try some common tasks • Wheeled robot • Respond to sensors • Maybe a taste of competition…
Testing Equipment • Plug in motors, sensors • A critical thing to know is the view program • Let you read values from sensors without writing a custom program
Building • Not “normal” LEGO pieces • Based on the Lego Technic build system • Pegs and holes • Need to plan to make a solid robot • Stable • One peg makes a rotary joint • Multiple pegs lock two pieces in place • Strong • Keep in close to the main body • The wheel axles must not be wobbly and flex!
Building Resources • There are lots of instructions for building things online • http://www.nxtprograms.com/ • Have the team try some out • Learn things that work • Then modify • 5 minute bot • A quick base • Probably not good to adapt for competition
Programming • Programming teaches • Breaking complex problems into solvable parts • Precise thinking and specification • Creative experimentation to discover and isolate problems • Programs are designed on a base computer • Downloaded by USB cable to the brick
Programming the Brick • LEGO Mindstorms NXT-G • Default language for programming Mindstorms • Designed to be friendly • Nice tutorials • Try them with your team • Not based on traditional programming languages • Easy to do very basic things • More difficult to advance • It does have some subtle actions that can cause confusion
Learning to Use the Tutorial • Each tutorial is structured as • Challenge • Build • Program • The mobile base from the tutorials is not my favorite • Takes too long to build • Difficult to modify
A Quick Programming Tour • Control goes along the path • Each block performs some action • Most blocks are very flexible • Learn the options at the bottom panel • Many actions continue until • A sensor is triggered • Time has passed • A commanded result is finished
A Quick Test • Attach a motor to the brick (ports A) • Attach a touch sensor to the brick (port1) • Write a program • Move block • Set duration to unlimited • Wait until touch • Move block • Set “Direction” to stop • Download to brick • Run it • Let’s do this together
Additional Resources • There is a lot to learn, but you can get started pretty quickly • I recommend • Winning Design! LEGO Mindstorms NXT: Design Patterns for Fun and Competition • Most FLL-centric of the books • Beginning to medium skill level • If you don’t have prior experience, I think you would be foolish not to look at this book.
Some Quick Hints • Light sensors can be tricky • Light changes • Time of day • Clouds • Flash photography • Isolate the sensor from the world
Using the Touch Sensor • Add a bumper
Making Turns • What would this do? • Some help • http://jamesreubenknowles.com/turn-robot-627
Driving Straight • Some teams never get a robot to drive straight • Makes testing a nightmare • Use the field to square-off • Return to base so error doesn’t accumulate • See http://www.youtube.com/watch?v=OlAO9Ho-N58 • Things to try • Check balance of robot • Are the wheels equally spaced? • Axles straight? • Weight balanced? • Check motors • Match up best two • Move block tries to compensate • Check tires
Let’s have a competition! • Hit paper target • Go through maze • Stop before unknown finish “wall” • Development cycle • Build, test, adjust, repeat • Most kids do not understand how to test and modify something until it works • Quit or start new each time • Really work with them on iterative improvement
Teams! • 2 or 3 per kit • Start with the bot • 5 minute bot • Start building and testing the program • Compete! Or, cooperete? • Also, check out the School of Computing technology camps • www.cs.utah.edu/~dejohnso/GREAT