More About
This Textbook

Overview

LEGO Mindstorms robots can do more than you ever imagined! The secret: go beyond the built-in tools and leverage the power of Java. In Core LEGO Mindstorms, author Brian Bagnall shows you how, step by step. Working from beautifully rendered 3-D plans and photographs, you'll construct five unique robots. You'll master advanced proximity and compass sensors, even master MIT's new breakthrough in robotics: behavior control programming.

Editorial Reviews

From The Critics

Shows how to program Lego Mindstorms robots with Java. Bagnall, who helped develop the leJOS Java SDK, provides instructions for installing leJOS as a development environment, and code example for accessing motors, sensors, and other components of the RCX brick. Two sample projects demonstrate how to assemble a proximity detector and a compass sensor. Annotation c. Book News, Inc., Portland, OR (booknews.com)

Meet the Author

BRIAN BAGNALL is a Sun Certified Java Programmer and Developer and co-author of the Sun Certified Programmer for Java 2 Study Guide. He is a key programmer of leJOS, a Java SDK for Lego Mindstorms. Bagnall also develops distributed processing solutions for businesses with supercomputing requirements and has worked for IBM and other leading computer companies.

Read an Excerpt

Preface

There are 718 LEGO pieces in the latest version of the Robotics Invention System. Depending on how you look at it, 718 can either seem like a large number or a small number. In the grand scheme of things, 718 seems like a small number to me. Of those pieces, 129 are unique LEGO parts (not including color differences). Looking around me, I'd say the Robotics Invention System can build a decent representation of just about everything in this room. It can build a desk, a chair, a primitive speaker, a spinning globe, a blender, a clock (digital or analog), or probably even a simulation of a CD player. Outside my domain, the kit could produce models of automobiles, subway cars, boats, or almost any man-made machine. Looking to nature, it could create simulations of spiders, ants, scorpions, dogs, cats, and whales. True, the kit by itself can't reproduce everything in the world. It can't reproduce the envelope of a helium balloon or a complete BMW assembly line, but the things it can't do are far outweighed by the things it can. And there are probably things it can build that no one has ever thought of! I'm going to go out on a limb and estimate that 718 pieces can create an infinite number of models. From this logic, it's easy to see that 718 equals infinity.

It's no exaggeration to say that LEGO MINDSTORMS has done for robots what Henry Ford did for automobiles. LEGO has managed to put robots in the hands of ordinary people. The standardized parts and common languages means sharing of ideas in robotics is happening on a scale that has never occurred before. A brief search of the web to shows just how much MINDSTORMS has permeated through cyberspace.

If you already own the Robotics Invention System, congratulations! You have almost everything you need to create some amazing robots. The only remaining tool you need is a truly powerful programming language, and that is what this book will present to you. The language is Java, one of the most universally accepted programming languages in computers today, and this book will show how to use Java to push MINDSTORMS to the limit.

This book is not a compilation of projects, (of which there are several good ones on the market). The aim of this book it to give you the knowledge and tools you need to turn your ideas into reality, not someone elses. All the projects in this book are presented because they have some sort of lasting value. If this book has done its job, hopefully you will be surprised by what you didn't know MINDSTORMS could do.

This book will also solve the greatest mystery of the MINDSTORMS kit-what the grey foot-pedal looking part is for (see Figure below). To my know-ledge, no one has yet discovered what this part does or how it is used. Not even the actual LEGO MINDSTORMS engineers who designed the part understand what it is for. Chapter 5 will answer this age old mystery.

About this Book

Chapter 1 is an introduction to the Robotics Invention System. This chapter covers just the main components of the kit, including software, the RCX brick, and the IR tower. It also introduces other kits and products that can expand your MINDSTORMS universe.

Chapter 2 is a basic introduction to leJOS, the Java platform for the RCX brick. It covers a bit of background on leJOS, the basic features that distinguish it from other RCX development tools, and instructions on how to install leJOS as well as a powerful IDE.

Chapter 3 is a high-speed introduction to Java. Those who are familiar with Java may opt to just skim the Notes and Warnings, which point out differences between leJOS Java and Sun's Java.

Chapter 4 demonstrates, through code examples, how to access motors, sensors, and other components of the RCX brick using Java.

Chapter 5 is an encyclopedia of the Robotics Invention System parts. It goes through each of the 129 unique parts of the kit so you can put a name to the part and identify all the uses. If you ever wondered what the other versions of the kit contained, this is where you can find out. There is also a section on common LEGO structures that will help you to rapidly build key structures.

Chapter 6 introduces the concept of Behavior Control programming, a technique of programming insect level, behavior based intelligence. The leJOS API contains several classes for programming your own behavior control, making this an easy and powerful addition to robotics programming.

Chapter 7 begins the concept of navigation. The first part of the chapter lays out the fundamental concepts of navigation and tries to impress upon the reader a true understanding of just what it is about navigation that makes it so difficult for robots. It then moves on to real world examples of navigation programming using leJOS.

Chapter 8 continues the topic of navigation, but this time using a pair of rotation sensors to achieve even more accurate navigation than possible with timing methods.

Chapter 9 presents unique ways of detecting objects before the robot collides with them. The first part of the chapter shows how to build a simple proximity detector using only the pieces contained in the kit. More ambitious MINDSTORMS users can build an accurate distance sensor from raw electronic components. I have endeavored to make the instructions for assembly as clear, simple and precise as possible so even those completely unfamiliar with electronics will be able build this powerful sensor. The last part of this chapter shows how to build a classic robot project, the wall follower.

Chapter 10 is the third and final chapter dealing with navigation. This chapter shows how to assemble a compass sensor, which is useful for determining the orientation of the robot using the earths magnetic field. Though more difficult than the proximity sensor, this sensor worked the very first time I plugged the components into the bread board, so most readers shouldn't encounter any problems with this project.

Chapter 11 introduces the topic of communications. The RCX is capable of communicating with other devices that use Infrared signals. This includes the PC, the LEGO Remote Control, and other RCX bricks. The powerful java.io API is available on the leJOS platform, making communications with a PC that much easier. This chapter also shows how to control the RCX brick from a PC across the Internet using a remote program, an embedded applet, or from a plain old web page.

Chapter 12, the final chapter of the book, covers advanced topics. Here you can learn everything you never wanted to know about leJOS. Since memory is always on the mind of an RCX programmer, this chapter describes memory saving strategies that can help you squeeze that last little bit of code on board the RCX. Another interesting aspect of the leJOS JVM is that Java is not the only language that it can execute! The leJOS JVM is also capable of running other languages, such as Forth, NetRexx, and dozens of others. There is also a writeup on how to port leJOS to other processors, something for only the most advanced users.

The appendices will give you some valuable information on leJOS and the RCX. There is a section on ordering sensors, kits, and other parts you may not even have known existed. Ordering electronics parts can be such an art-form that an entire Appendix is dedicated to this topic. There is also a section on the burgeoning utilities available for leJOS. Finally, no book on LEGO MINDSTORMS would be complete without a section of web resources.

Companion Web Site

This book has a companion Web site to provide you with updates and other material. It is located at www.phptr.com/bagnall

Preface

Preface

There are 718 LEGO pieces in the latest version of the Robotics Invention System. Depending on how you look at it, 718 can either seem like a large number or a small number. In the grand scheme of things, 718 seems like a small number to me. Of those pieces, 129 are unique LEGO parts (not including color differences). Looking around me, I'd say the Robotics Invention System can build a decent representation of just about everything in this room. It can build a desk, a chair, a primitive speaker, a spinning globe, a blender, a clock (digital or analog), or probably even a simulation of a CD player. Outside my domain, the kit could produce models of automobiles, subway cars, boats, or almost any man-made machine. Looking to nature, it could create simulations of spiders, ants, scorpions, dogs, cats, and whales. True, the kit by itself can't reproduce everything in the world. It can't reproduce the envelope of a helium balloon or a complete BMW assembly line, but the things it can't do are far outweighed by the things it can. And there are probably things it can build that no one has ever thought of! I'm going to go out on a limb and estimate that 718 pieces can create an infinite number of models. From this logic, it's easy to see that 718 equals infinity.

It's no exaggeration to say that LEGO MINDSTORMS has done for robots what Henry Ford did for automobiles. LEGO has managed to put robots in the hands of ordinary people. The standardized parts and common languages means sharing of ideas in robotics is happening on a scale that has never occurred before. A brief search of the web to shows just how much MINDSTORMS has permeated through cyberspace.

If you already own the Robotics Invention System, congratulations! You have almost everything you need to create some amazing robots. The only remaining tool you need is a truly powerful programming language, and that is what this book will present to you. The language is Java, one of the most universally accepted programming languages in computers today, and this book will show how to use Java to push MINDSTORMS to the limit.

This book is not a compilation of projects, (of which there are several good ones on the market). The aim of this book it to give you the knowledge and tools you need to turn your ideas into reality, not someone elses. All the projects in this book are presented because they have some sort of lasting value. If this book has done its job, hopefully you will be surprised by what you didn't know MINDSTORMS could do.

This book will also solve the greatest mystery of the MINDSTORMS kit-what the grey foot-pedal looking part is for (see Figure below). To my know-ledge, no one has yet discovered what this part does or how it is used. Not even the actual LEGO MINDSTORMS engineers who designed the part understand what it is for. Chapter 5 will answer this age old mystery.

About this Book

Chapter 1 is an introduction to the Robotics Invention System. This chapter covers just the main components of the kit, including software, the RCX brick, and the IR tower. It also introduces other kits and products that can expand your MINDSTORMS universe.

Chapter 2 is a basic introduction to leJOS, the Java platform for the RCX brick. It covers a bit of background on leJOS, the basic features that distinguish it from other RCX development tools, and instructions on how to install leJOS as well as a powerful IDE.

Chapter 3 is a high-speed introduction to Java. Those who are familiar with Java may opt to just skim the Notes and Warnings, which point out differences between leJOS Java and Sun's Java.

Chapter 4 demonstrates, through code examples, how to access motors, sensors, and other components of the RCX brick using Java.

Chapter 5 is an encyclopedia of the Robotics Invention System parts. It goes through each of the 129 unique parts of the kit so you can put a name to the part and identify all the uses. If you ever wondered what the other versions of the kit contained, this is where you can find out. There is also a section on common LEGO structures that will help you to rapidly build key structures.

Chapter 6 introduces the concept of Behavior Control programming, a technique of programming insect level, behavior based intelligence. The leJOS API contains several classes for programming your own behavior control, making this an easy and powerful addition to robotics programming.

Chapter 7 begins the concept of navigation. The first part of the chapter lays out the fundamental concepts of navigation and tries to impress upon the reader a true understanding of just what it is about navigation that makes it so difficult for robots. It then moves on to real world examples of navigation programming using leJOS.

Chapter 8 continues the topic of navigation, but this time using a pair of rotation sensors to achieve even more accurate navigation than possible with timing methods.

Chapter 9 presents unique ways of detecting objects before the robot collides with them. The first part of the chapter shows how to build a simple proximity detector using only the pieces contained in the kit. More ambitious MINDSTORMS users can build an accurate distance sensor from raw electronic components. I have endeavored to make the instructions for assembly as clear, simple and precise as possible so even those completely unfamiliar with electronics will be able build this powerful sensor. The last part of this chapter shows how to build a classic robot project, the wall follower.

Chapter 10 is the third and final chapter dealing with navigation. This chapter shows how to assemble a compass sensor, which is useful for determining the orientation of the robot using the earths magnetic field. Though more difficult than the proximity sensor, this sensor worked the very first time I plugged the components into the bread board, so most readers shouldn't encounter any problems with this project.

Chapter 11 introduces the topic of communications. The RCX is capable of communicating with other devices that use Infrared signals. This includes the PC, the LEGO Remote Control, and other RCX bricks. The powerful java.io API is available on the leJOS platform, making communications with a PC that much easier. This chapter also shows how to control the RCX brick from a PC across the Internet using a remote program, an embedded applet, or from a plain old web page.

Chapter 12, the final chapter of the book, covers advanced topics. Here you can learn everything you never wanted to know about leJOS. Since memory is always on the mind of an RCX programmer, this chapter describes memory saving strategies that can help you squeeze that last little bit of code on board the RCX. Another interesting aspect of the leJOS JVM is that Java is not the only language that it can execute! The leJOS JVM is also capable of running other languages, such as Forth, NetRexx, and dozens of others. There is also a writeup on how to port leJOS to other processors, something for only the most advanced users.

The appendices will give you some valuable information on leJOS and the RCX. There is a section on ordering sensors, kits, and other parts you may not even have known existed. Ordering electronics parts can be such an art-form that an entire Appendix is dedicated to this topic. There is also a section on the burgeoning utilities available for leJOS. Finally, no book on LEGO MINDSTORMS would be complete without a section of web resources.

Companion Web Site

This book has a companion Web site to provide you with updates and other material. It is located at www.phptr.com/bagnall

Introduction

Preface

There are 718 LEGO pieces in the latest version of the Robotics Invention System. Depending on how you look at it, 718 can either seem like a large number or a small number. In the grand scheme of things, 718 seems like a small number to me. Of those pieces, 129 are unique LEGO parts (not including color differences). Looking around me, I'd say the Robotics Invention System can build a decent representation of just about everything in this room. It can build a desk, a chair, a primitive speaker, a spinning globe, a blender, a clock (digital or analog), or probably even a simulation of a CD player. Outside my domain, the kit could produce models of automobiles, subway cars, boats, or almost any man-made machine. Looking to nature, it could create simulations of spiders, ants, scorpions, dogs, cats, and whales. True, the kit by itself can't reproduce everything in the world. It can't reproduce the envelope of a helium balloon or a complete BMW assembly line, but the things it can't do are far outweighed by the things it can. And there are probably things it can build that no one has ever thought of! I'm going to go out on a limb and estimate that 718 pieces can create an infinite number of models. From this logic, it's easy to see that 718 equals infinity.

It's no exaggeration to say that LEGO MINDSTORMS has done for robots what Henry Ford did for automobiles. LEGO has managed to put robots in the hands of ordinary people. The standardized parts and common languages means sharing of ideas in robotics is happening on a scale that has never occurred before. A brief search of the web to shows just how much MINDSTORMS has permeated through cyberspace.

Ifyou already own the Robotics Invention System, congratulations! You have almost everything you need to create some amazing robots. The only remaining tool you need is a truly powerful programming language, and that is what this book will present to you. The language is Java, one of the most universally accepted programming languages in computers today, and this book will show how to use Java to push MINDSTORMS to the limit.

This book is not a compilation of projects, (of which there are several good ones on the market). The aim of this book it to give you the knowledge and tools you need to turn your ideas into reality, not someone elses. All the projects in this book are presented because they have some sort of lasting value. If this book has done its job, hopefully you will be surprised by what you didn't know MINDSTORMS could do.

This book will also solve the greatest mystery of the MINDSTORMS kit-what the grey foot-pedal looking part is for (see Figure below). To my know-ledge, no one has yet discovered what this part does or how it is used. Not even the actual LEGO MINDSTORMS engineers who designed the part understand what it is for. Chapter 5 will answer this age old mystery.

About this Book

Chapter 1 is an introduction to the Robotics Invention System. This chapter covers just the main components of the kit, including software, the RCX brick, and the IR tower. It also introduces other kits and products that can expand your MINDSTORMS universe.

Chapter 2 is a basic introduction to leJOS, the Java platform for the RCX brick. It covers a bit of background on leJOS, the basic features that distinguish it from other RCX development tools, and instructions on how to install leJOS as well as a powerful IDE.

Chapter 3 is a high-speed introduction to Java. Those who are familiar with Java may opt to just skim the Notes and Warnings, which point out differences between leJOS Java and Sun's Java.

Chapter 4 demonstrates, through code examples, how to access motors, sensors, and other components of the RCX brick using Java.

Chapter 5 is an encyclopedia of the Robotics Invention System parts. It goes through each of the 129 unique parts of the kit so you can put a name to the part and identify all the uses. If you ever wondered what the other versions of the kit contained, this is where you can find out. There is also a section on common LEGO structures that will help you to rapidly build key structures.

Chapter 6 introduces the concept of Behavior Control programming, a technique of programming insect level, behavior based intelligence. The leJOS API contains several classes for programming your own behavior control, making this an easy and powerful addition to robotics programming.

Chapter 7 begins the concept of navigation. The first part of the chapter lays out the fundamental concepts of navigation and tries to impress upon the reader a true understanding of just what it is about navigation that makes it so difficult for robots. It then moves on to real world examples of navigation programming using leJOS.

Chapter 8 continues the topic of navigation, but this time using a pair of rotation sensors to achieve even more accurate navigation than possible with timing methods.

Chapter 9 presents unique ways of detecting objects before the robot collides with them. The first part of the chapter shows how to build a simple proximity detector using only the pieces contained in the kit. More ambitious MINDSTORMS users can build an accurate distance sensor from raw electronic components. I have endeavored to make the instructions for assembly as clear, simple and precise as possible so even those completely unfamiliar with electronics will be able build this powerful sensor. The last part of this chapter shows how to build a classic robot project, the wall follower.

Chapter 10 is the third and final chapter dealing with navigation. This chapter shows how to assemble a compass sensor, which is useful for determining the orientation of the robot using the earths magnetic field. Though more difficult than the proximity sensor, this sensor worked the very first time I plugged the components into the bread board, so most readers shouldn't encounter any problems with this project.

Chapter 11 introduces the topic of communications. The RCX is capable of communicating with other devices that use Infrared signals. This includes the PC, the LEGO Remote Control, and other RCX bricks. The powerful java.io API is available on the leJOS platform, making communications with a PC that much easier. This chapter also shows how to control the RCX brick from a PC across the Internet using a remote program, an embedded applet, or from a plain old web page.

Chapter 12, the final chapter of the book, covers advanced topics. Here you can learn everything you never wanted to know about leJOS. Since memory is always on the mind of an RCX programmer, this chapter describes memory saving strategies that can help you squeeze that last little bit of code on board the RCX. Another interesting aspect of the leJOS JVM is that Java is not the only language that it can execute! The leJOS JVM is also capable of running other languages, such as Forth, NetRexx, and dozens of others. There is also a writeup on how to port leJOS to other processors, something for only the most advanced users.

The appendices will give you some valuable information on leJOS and the RCX. There is a section on ordering sensors, kits, and other parts you may not even have known existed. Ordering electronics parts can be such an art-form that an entire Appendix is dedicated to this topic. There is also a section on the burgeoning utilities available for leJOS. Finally, no book on LEGO MINDSTORMS would be complete without a section of web resources.

Companion Web Site

This book has a companion Web site to provide you with updates and other material. It is located at www.phptr.com/bagnall

Your Rating:

Your Recommendations:

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked,
or didn't, with others. By submitting an online review, you are representing to
Barnes & Noble.com that all information contained in your review is original
and accurate in all respects, and that the submission of such content by you
and the posting of such content by Barnes & Noble.com does not and will not
violate the rights of any third party. Please follow the rules below to help
ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer.
However, we cannot allow persons under the age of 13 to have accounts at BN.com or
to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the
information on the product page, please send us an email.

Reminder:

- By submitting a review, you grant to Barnes & Noble.com and its
sublicensees the royalty-free, perpetual, irrevocable right and license to use the
review in accordance with the Barnes & Noble.com Terms of Use.

- Barnes & Noble.com reserves the right not to post any review -- particularly
those that do not follow the terms and conditions of these Rules. Barnes & Noble.com
also reserves the right to remove any review at any time without notice.

You have successfully created your Pen Name. Start enjoying the benefits of the BN.com Community today.

Sort by:
Showing
1
Customer Reviews

Anonymous

Posted November 12, 2005

Java...the only way to go.

If you are serious about getting into robotics and artificial intelligence, this is the perfect book to be used with the best entry level robotics system currently developed. You can utilize this device and language to make insect-like AI intelligence, perform swarm-like behavior if you have multiple RCX's, and much more. In combination with some home made sensors and some fancy programing you can make scaled down versions of the same kind of robotic and AI developments being done at the University of Minnesota and MIT. Very nice.

Was this review helpful? YesNoThank you for your feedback.Report this reviewThank you, this review has been flagged.