HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This PDF will be accessible from your Account page after purchase and requires PDF reading software, such as Acrobat® Reader®.
The eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Start programming robots NOW!
Learn hands-on, through easy examples, visuals, and code
This is a unique introduction to programming robots to execute tasks autonomously. Drawing on years of experience in artificial intelligence and robot programming, Cameron and Tracey Hughes introduce the reader to basic concepts of programming robots to execute tasks without the use of remote controls.
Robot Programming: A Guide to Controlling Autonomous Robots takes the reader on an adventure through the eyes of Midamba, a lad who has been stranded on a desert island and must find a way to program robots to help him escape. In this guide, you are presented with practical approaches and techniques to program robot sensors, motors, and translate your ideas into tasks a robot can execute autonomously. These techniques can be used on today’s leading robot microcontrollers (ARM9 and ARM7) and robot platforms (including the wildly popular low-cost Arduino platforms, LEGO® Mindstorms EV3, NXT, and Wowee RS Media Robot) for your hardware/Maker/DIY projects. Along the way the reader will learn how to:
Introduction 1
Robot Programming Boot Camp 2
Ready, Set, Go! No Wires or Strings Attached 2
Boot Camp Fundamentals 3
Core Robot Programming Skills Introduced in This Book 4
BURT–Basic Universal Robot Translator 4
BRON–Bluetooth Robot Oriented Network 6
Assumptions About the Reader’s Robot(s) 6
How Midamba Learned to Program a Robot 7
1 What Is a Robot Anyway? 9
The Seven Criteria of Defining a Robot 10
Criterion #1: Sensing the Environment 11
Criterion #2: Programmable Actions and Behavior 11
Criterion #3: Change, Interact with, or Operate on Environment 11
Criterion #4: Power Source Required 11
Criterion #5: A Language Suitable for Representing Instructions and Data 12
Criterion #6: Autonomy Without External Intervention 12
Criterion #7: A Nonliving Machine 13
Robot Categories 13
What Is a Sensor? 16
What Is an Actuator? 17
What Is an End-Effector? 18
What Is a Controller? 19
What Scenario Is the Robot In? 23
Giving the Robot Instructions 25
Every Robot Has a Language 25
Meeting the Robot’s Language Halfway 27
How Is the Robot Scenario Represented in Visual Programming Environments? 30
Midamba’s Predicament 30
What’s Ahead? 32
2 Robot Vocabularies 33
Why the Additional Effort? 34
Identify the Actions 38
The Autonomous Robot’s ROLL Model 39
Robot Capabilities 41
Robot Roles in Scenarios and Situations 42
What’s Ahead? 44
3 RSVP: Robot Scenario Visual Planning 47
Mapping the Scenario 48
Creating a Floorplan 49
The Robot’s World 52
RSVP READ SET 53
Pseudocode and Flowcharting RSVP 56
Flow of Control and Control Structures 60
Subroutines 64
Statecharts for Robots and Objects 66
Developing a Statechart 68
What’s Ahead? 72
4 Checking the Actual Capabilities of Your Robot 73
The Reality Check for the Microcontroller 76
Sensor Reality Check 79
Determine Your Robot’s Sensor Limitations 81
Actuators End-Effectors Reality Check 84
REQUIRE Robot Effectiveness 87
What’s Ahead? 89
5 A Close Look at Sensors 91
What Do Sensors Sense? 92
Analog and Digital Sensors 95
Reading Analog and Digital Signals 97
The Output of a Sensor 99
Where Readings Are Stored 100
Active and Passive Sensors 101
Sensor Interfacing with Microcontrollers 103
Attributes of Sensors 107
Range and Resolution 108
Precision and Accuracy 108
Linearity 109
Sensor Calibration 110
Problems with Sensors 111
End User Calibration Process 112
Calibration Methods 112
What’s Ahead? 114
6 Programming the Robot’s Sensors 115
Using the Color Sensor 116
Color Sensor Modes 118
Detection Range 119
Lighting in the Robot’s Environment 119
Calibrating the Color Sensor 119
Programming the Color Sensor 120
Digital Cameras Used to Detect and Track Color Objects 124
Tracking Colored Objects with RS Media 124
Tracking Colored Objects with the Pixy Vision Sensor 128
Training Pixy to Detect Objects 129
Programming the Pixy 130
A Closer Look at the Attributes 134
Ultrasonic Sensor 135
Ultrasonic Sensor Limitations and Accuracy 135
Modes of the Ultrasonic Sensor 139
Sample Readings 140
Data Types for Sensor Reading 141
Calibration of the Ultrasonic Sensor 141
Programming the Ultrasonic Sensor 143
Compass Sensor Calculates Robot’s Heading 153
Programming the Compass 154
What’s Ahead? 157
7 Programming Motors and Servos 159
Actuators Are Output Transducers 159
Motor Characteristics 160
Voltage 160
Current 161
Speed 161
Torque 161
Resistance 161
Different Types of DC Motors 161
Direct Current (DC) Motors 162
Speed and Torque 165
Motors with Gears 167
Motor Configurations: Direct and Indirect Drivetrains 177
Terrain Challenge for Indoor and Outdoor Robots 178
Dealing with Terrain Challenges 179
Torque Challenge for Robot Arm and End-Effectors 182
Calculating Torque and Speed Requirements 182
Motors and REQUIRE 183
Programming the Robot to Move 184
One Motor, Two, Three, More? 185
Making the Moves 186
Programming the Moves 186
Programming Motors to Travel to a Location 191
Programming Motors Using Arduino 198
Robotic Arms and End-Effectors 200
Robot Arms of Different Types 201
Torque of the Robot Arm 203
Different Types of End-Effectors 205
Programming the Robot Arm 208
Calculating Kinematics 212
What’s Ahead? 216
8 Getting Started with Autonomy: Building Your Robot’s Softbot Counterpart 219
Softbots: A First Look 222
Parts Section 224
The Actions Section 224
The Tasks Section 224
The Scenarios/Situations Section 224
The Robot’s ROLL Model and Softbot Frame 225
BURT Translates Softbots Frames into Classes 227
Our First Pass at Autonomous Robot Program Designs 239
What’s Ahead? 240
9 Robot SPACES 241
A Robot Needs Its SPACES 242
The Extended Robot Scenario 242
The REQUIRE Checklist 245
What Happens If Pre/Postconditions Are Not Met? 248
What Action Choices Do I Have If Pre/Postconditions Are Not Met? 248
A Closer Look at Robot Initialization Postconditions 249
Power Up Preconditions and Postconditions 251
Coding Preconditions and Postconditions 252
Where Do the Pre/Postconditions Come From? 257
SPACES Checks and RSVP State Diagrams 262
What’s Ahead? 263
10 An Autonomous Robot Needs STORIES 265
It’s Not Just the Actions! 266
Birthday Robot Take 2 266
Robot STORIES 268
The Extended Robot Scenario 269
Converting Unit1’s Scenario into STORIES 269
A Closer Look at the Scenario’s Ontology 271
Paying Attention to the Robot’s Intention 282
Object-Oriented Robot Code and Efficiency Concerns 304
What’s Ahead? 306
11 Putting It All Together: How Midamba Programmed His First Autonomous Robot 307
Midamba’s Initial Scenario 307
Midamba Becomes a Robot Programmer Overnight! 308
Step 1. Robots in the Warehouse Scenario 310
Step 2. The Robot’s Vocabulary and ROLL Model for Facility Scenario #1 312
Step 3. RSVP for Facility Scenario #1 313
Visual Layouts of a Robot POV Diagram 315
Midamba’s Facility Scenario #1 (Refined) 316
Graphical Flowchart Component of the RSVP 317
State Diagram Component of the RSVP 324
Midamba’s STORIES for Robot Unit1 and Unit2 325
Autonomous Robots to Midamba’s Rescue 338
Endnote 342
What’s Ahead? 342
12 Open Source SARAA Robots for All! 343
Low-Cost, Open-Source, Entry-Level Robots 344
Scenario-Based Programming Supports Robot Safety and Programmer Responsibility 345
SARAA Robots for All 346
Recommendations for First-Time Robot Programmers 348
Complete RSVPs, STORIES, and Source Code for Midamba’s Scenario 349
A BURT’s Gotchas 351
TOC, 9780789755001, 4/19/16