Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010315272 | TJ211 B85 2013 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
Publisher's Note: Products purchased from Third Party sellers are not guaranteed by the publisher for quality, authenticity, or access to any online entitlements included with the product.
CREATE YOUR OWN SYNCHRONIZED ROBOT ARMY!
PLAN, DESIGN, ASSEMBLE, AND PROGRAM ROBOT SQUADS THAT COMMUNICATE and cooperate with each other to accomplish together what they can't do individually. Build Your Own Teams of Robots with LEGO MINDSTORMS NXT and Bluetooth shows you how to construct a team capability matrix (TCM) and use the Bluetooth Robotic-Oriented Network (BRON) so your robot teams can share sensors, actuators, end effectors, motor power, and programs.
Find out how the Bluetooth communications protocol works and how to program Bluetooth in NXT-G, NXC, LabVIEW, and Java. Learn how to send and receive Bluetoothmessages, data, and commands among robots, between a robot and a computer, and between an Android smart phone and a robot. Through teamwork, your robots will be able to accomplish amazing feats!
THE STEP-BY-STEP ROBOT TEAM PROJECTS IN THE BOOK INCLUDE:
* Crime Scene Investigation Robot Team * Robot Convoy * Rubik's Cube Solver
LEARN HOW TO:
Coordinate multiple robots to work together as a team to perform tasks Combine two or more microcontrollers to make a single, multicontroller/multi-agent robot Take advantage of sensor and actuator capabilities in a team environment Establish goals and teamwork strategies for your robots Control your robot teams with NXT-G Bluetooth bricks and LabVIEW for NXT Bluetooth VI Activate your team using a smart phone Give your team of robots Java power with leJOS Use Java on the Linux and Darwin operating systemsWatch video demonstrations of the projects and download code and examples in multiple languages (NXT-G, Java, LabVIEW, and NXC) from the book's companion websiteat www.robotteams.org.
Downloads are also available at mhprofessional.com/robotteams.
Author Notes
Cameron Hughes is a professional software developer with over fifteen years of experience. He is a staff programmer/analyst at Youngstown State University and a software epistemologist for Ctest Laboratories. Tracey Hughes is a senior software and graphics programmer at Ctest Laboratories where she develops information and epistemic visualization software. Both Cameron and Tracey Hughes are long time robot enthusiasts with a collection of over 100 robots. They have sponsored and participated in local robot competitions and robot programming workshops for the Lego NXT and RS Media platforms through their local ACM chapter. Cameron and Tracey are the authors of seven books on software development, multithreaded programming, and parallel programming in C++.
Bob Kramer has been a full-time Computer Science Professor at Youngstown State University. Bob's research interests include using Lego robotics as a tool to teach computer science concepts, as well as the development and extension of programming tools for Lego robots. He has helped extend the nxtOSEK environment to enable C++ programs to execute on the NXT platform, and has developed an interface for a third-party sensor in the LeJOS environment. Bob Kramer has used Lego robotics to teach basic programming concepts in summer enrichment programs for high school students. He has spoken at numerous workshops about robot design and pedagogical uses of robots.
Trevor Watkins is a network communications and system integrations specialist. He is currently the Technology Manager at the Wadsworth Public Library, where he designs, integrates, and administers all aspects of the library's network and information systems. Trevor is an adjunct professor in the Computer Science and Information Systems Department at Youngstown State University, where he teaches high level programing languages and computer networks. He has been a robot hobbyist for over 20 years with the past 5 years dedicated to NXT-Mindstorms, Vex and Arduino-based robot kits, and consults with local high school robotics teams.
Table of Contents
Introduction | p. xi |
Acknowledgments | p. xvii |
Chapter 1 It Takes Two to Tango | p. 1 |
When the Robot We Have Is Not the Robot We Need | p. 2 |
Special-Purpose Robots Can Be Flexible | p. 2 |
General-Purpose Robots: Fact or Fiction? | p. 4 |
Reprogrammable Robots | p. 6 |
Flexible Special-Purpose Robots and Reprogrammable Multipurpose Robots | p. 7 |
Two Microcontrollers Are Sometimes Better Than One | p. 7 |
Possible learns, Possible Players | p. 8 |
Do Networked Robots Equal Robot Teamwork? | p. 12 |
Coordinating Robots Based on Time or Chronology | p. 12 |
Event-Based Robot Coordination | p. 18 |
Message-Based Coordination | p. 26 |
The Basic BRON Approach | p. 29 |
The World of Bluetooth Devices | p. 30 |
BRON'S Believe It or Not | p. 31 |
Chapter 2 Bluetooth for MINDSTORMS NXT: A Closer Look | p. 33 |
So Exactly What Is Bluetooth? | p. 33 |
The Myth of NXT's Bluetooth Problem | p. 34 |
What Does Bluetooth Mean for NXT-Based Robots? | p. 35 |
Is NXT-Bluetooth Capability Software or Hardware? | p. 35 |
A Pause for Some Bluetooth-NXT Brick Preliminaries | p. 36 |
What's in a Name? | p. 37 |
A Little Security, (or at Least Privacy), Please! | p. 39 |
Visibility vs. Invisibility | p. 40 |
Who Is the Initiator (Team Leader)? | p. 42 |
Physical Architecture vs. Logical Architectures | p. 43 |
After the Connection Is Made | p. 43 |
Bluetooth Functions Don't Wait | p. 44 |
Talk to Initiators on Line 0 | p. 45 |
Introducing the Scout Bots | p. 46 |
Setting Up the Initial Bluetooth Connection | p. 50 |
Waiting for and Sending a Bluetooth Response | p. 51 |
Teamwork: A Simple Bluetooth LabVIEW Application | p. 52 |
The Team Leader Program (D1R2) | p. 53 |
The Team Member Program (D1R1) | p. 54 |
Team Mode and Bluetooth in LabVIEW | p. 55 |
Chapter 3 One for All and All for One | p. 57 |
What Are Sensors? | p. 57 |
Sensors: The Input Transducers | p. 59 |
Sensor Types | p. 60 |
Classifying MINDSTORMS NXT Sensors | p. 68 |
Sensors in the NXT World | p. 72 |
Some Are Strong, Some Are Mobile, Some Are Smart | p. 72 |
What the Sensors Can Do and Cannot Do | p. 73 |
Special Sensors Give That Extra Something | p. 79 |
Third-Party Sensors Used in Our CSI BRON | p. 81 |
leJOS (Java) Support for Third-Party Sensors | p. 84 |
LabVIEW Support for Third-Party Sensors | p. 86 |
NXT-G Support for Third-Party Sensors | p. 88 |
Chapter 4 Creating a Team of Movers and Shakers | p. 91 |
Motors: The Output Transducer | p. 91 |
Indoor and Outdoor Robots | p. 92 |
Direct-Current Motors vs. Servo Motors | p. 94 |
Controlling Speed and Torque | p. 95 |
Here Come the Regulators: Encoders In and Out | p. 103 |
Using Torque and Speed to Determine Selection of Team Members | p. 107 |
Summarizing DC and Servos Motors | p. 107 |
Controlling the Motors: Tetrix Controller and NXT Brick | p. 108 |
Using the Motors | p. 111 |
NXT-G PID Block | p. 116 |
Robotic Arms and End Effectors | p. 119 |
Robot Arms of Different Types | p. 119 |
End Effectors of Different Types | p. 124 |
Software Support of the Robot Arm | p. 124 |
BRON'S Believe It or Not | p. 127 |
Chapter 5 Bluetooth Programming in NXT-G and LabVIEW | p. 129 |
A Little Background Block by Block | p. 129 |
Establishing a Connection with the BRON | p. 132 |
Connecting a PC to NXT Bricks from NXT-G and LabVIEW | p. 133 |
Connecting to the BRON | p. 134 |
NXT-G Connection Block | p. 135 |
LabVIEW On/Off and Connection Bluetooth Blocks | p. 138 |
Establishing a Connection to the BRON Using LabVIEW | p. 138 |
Communicating a Message to the BRON | p. 140 |
Sending/Receiving Messages in NXT-G | p. 140 |
Dynamically Setting Values for the Send Message Block | p. 141 |
Writing/Reading a Message Using LabVIEW | p. 144 |
Chapter 6 Robot Environments, Teamwork Strategies, and Goals | p. 147 |
The Robot's World | p. 147 |
The Robot READ Set | p. 149 |
Robot Application Architecture | p. 153 |
A Simple Team-Based RAA Example | p. 153 |
The Multipurpose Capability Matrix | p. 155 |
A Basic READ Set for D1R1, D1R2, and D3C1 | p. 159 |
Teamwork Strategies and Goals | p. 162 |
Simple Rule-Based Autonomy and READ Set + Robot Program Autonomy | p. 165 |
Environment, READ Sets, and the Team Challenge | p. 168 |
Let's Not Fool Ourselves, It's Slow! | p. 170 |
A Closer Look at a Level 2 Autonomous MINDSTORMS/Tetrix-Based Team | p. 171 |
How Do We Know When the Task Is Done? | p. 172 |
BRON'S Believe It or Not | p. 182 |
Chapter 7 Give Your Team of Robots Java Power with leJOS | p. 185 |
Brief History of Java Virtual Machine for MINDSTORMS | p. 185 |
The Power of leJOS Java for MINDSTORMS NXT | p. 186 |
A Closer Look at the leJOS Utilities | p. 188 |
Power of Java for Building Teams | p. 192 |
Bluetooth Communications | p. 192 |
The Java Classes | p. 196 |
The Robot Class | p. 198 |
Chapter 8 Got Linux and Darwin on Your Team of Robots? | p. 211 |
The Operating System as the Gatekeeper | p. 211 |
Operating System as Silent Partner | p. 214 |
Computer-Aided Design (CAD) Software for Your Robot Designs Using Digital Designer | p. 215 |
Development Languages for Programming Your Robots | p. 217 |
The Simple NXC (Almost C) Tool Chains | p. 217 |
Using Eclipse in the Linux/Darwin Environments | p. 218 |
What About My Files? (Where Do They Go?) | p. 220 |
Linux and Darwin as Runtime Environments | p. 221 |
Runtime Capability When the Computer Is the Team Leader | p. 222 |
The BlueZ Protocol Can Handle NXT Bricks | p. 224 |
Chapter 9 Advanced Teamwork: One for All! | p. 231 |
If It Works for Me, It'll Work for You | p. 232 |
From Team to Collective and Back | p. 232 |
The Collective | p. 232 |
Dividing Up the Labor | p. 233 |
Communicating with Flippy and Twisty | p. 234 |
Solving a Rubik's Cube | p. 237 |
Remember the Cube: Parts of the Cube | p. 237 |
Solving the Cube | p. 242 |
Cube Solver Design | p. 250 |
Design Issues | p. 251 |
Cube Solver Hardware: The Frame | p. 252 |
Flipper: Flip It Well and Good! | p. 254 |
Cube Solver Software | p. 256 |
Setting Up Programming | p. 265 |
Running the Robot | p. 266 |
What to Do Next Time | p. 267 |
BRON'S Believe It or Not | p. 268 |
Chapter 10 Together We Stand: The Robot Convoy | p. 271 |
Sometimes It Does Take a Team | p. 272 |
Using the Bluetooth Robotic-Oriented Network (BRON) for the Robot Convoy | p. 273 |
Challenges in Robot Convoys | p. 275 |
Planning for the Convoy | p. 279 |
Limitations of Robot Vehicles | p. 279 |
Understanding Bluetooth Limitations | p. 284 |
The Robot Convoy NXT-G Program | p. 286 |
Improvement of the Robot Convoy | p. 286 |
BRON'S Believe It or Not | p. 288 |
Chapter 11 The CSI Project. | p. 291 |
Overview of the CSI Project | p. 291 |
The Tasks and Problems Encountered in Warehouse X | p. 292 |
The Capability Matrix of the CSI Project | p. 293 |
The READ Set of Warehouse X | p. 293 |
An Approach to Solving the CSI Warehouse X | p. 300 |
Summary of the CSI Project | p. 314 |
BRON'S Believe It or Not | p. 314 |
Appendix A Standard Java Classes for leJOS Bluetooth | p. 317 |
Standard Java Classes | p. 317 |
Class DeviceClass | p. 317 |
Class DiscoveryAgent | p. 318 |
Class LocalDevice | p. 320 |
Class RemoteDevice | p. 322 |
leJOS Bluetooth API | p. 325 |
Class NXTCommDevice | p. 325 |
Class Bluetooth | p. 327 |
Class NXTConnection | p. 337 |
Class BTConnection | p. 339 |
Appendix B Bluetooth Robotic-Oriented Network (BRON) Team Members | p. 341 |
BRON Cube Solver Team | p. 341 |
BRON Convoy Team | p. 342 |
BRON Crime Scene Investigation (CSI) Team | p. 343 |
Index | p. 347 |