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 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-expertrobots.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 • Things to try a robot to drive straight – Check balance of – Makes testing a nightmare – Use the field to squareoff – Return to base so error doesn’t accumulate – See http://www.youtube.com/watch?v=O lAO9Ho-N58 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! 1. Hit paper target 2. 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