did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780071444842

Linux Robotics Programming Smarter Robots

by
  • ISBN13:

    9780071444842

  • ISBN10:

    007144484X

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2006-01-11
  • Publisher: McGraw-Hill Education TAB
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $41.00 Save up to $1.23
  • Buy New
    $39.77
    Add to Cart Free Shipping Icon Free Shipping

    THIS IS A HARD-TO-FIND TITLE. WE ARE MAKING EVERY EFFORT TO OBTAIN THIS ITEM, BUT DO NOT GUARANTEE STOCK.

Supplemental Materials

What is included with this book?

Summary

When used as a robotic "brain," single-board computers such as Linux offer speed and capacity advantages over microcontrollers. This resource combines essential aspects of robotics and programming to show hobbyists how to incorporate the power of Linux into their robot creations. An original sample robot is used to illustrate all examples throughout the book Coverage includes sensors, controllers, communications, behavioral programming, navigation and piloting, neural Networks The accompanying website includes: a Linux distribution created specifically for robotics applications; downloadable software; circuit examples, solderless breadboard designs, and a complete set of behavioral programming and neural network classes (in Java, C, and C++)

Author Biography

D. Jay Newman is a Sr. Research Programmer at Penn State, helping faculty use technology. He has been interested in robots and computers his entire life. This is his first foray into writing.

Table of Contents

Introduction xv
Starting Out
1(26)
What Is a Robot?
4(2)
Types of robots
5(1)
Linux Controllers
6(2)
Why Linux?
7(1)
Robot Design 101
8(2)
Building Robots
10(5)
Building Groucho
10(5)
Building a Robot Base
15(1)
Modifying a toy
15(1)
The Power Supply
16(2)
Sensors
18(1)
Controlling Your Robot: The Software
19(3)
The motor interface
20(1)
The sensor interface
21(1)
Linux and the Mini-ITX Board
22(1)
Storage
23(1)
Putting Gentoo Linux on the Mini-ITX
24(1)
Additional software
24(1)
Summary
24(3)
Electronics and Such
27(20)
Electricity
28(3)
Ground (Vss)
28(1)
Voltage In (Vin)
28(1)
Positive/negative
29(1)
Current
29(1)
Resistance
29(1)
Voltage drop
30(1)
Power spikes and transients
30(1)
Motors
31(4)
Permanent magnet DC motors
32(1)
Pulse width modulation
33(1)
R/C servo motors (servos)
34(1)
Batteries
35(2)
Basic Components
37(3)
Resistors
37(1)
Capacitors
38(1)
Voltage regulators
39(1)
Schematic Diagrams
40(1)
Breadboards, Printed Circuit Boards, and Soldering Irons
40(3)
Soldering
40(2)
Printed circuit boards
42(1)
Breadboards
43(1)
Connectors
43(3)
Pin headers
44(1)
Barrier strips
44(1)
Screw connectors
44(2)
Summary
46(1)
Internal Communication: The Control Network
47(16)
Hardware Layer
50(1)
Ethernet
51(1)
USB
52(1)
Asynchronous Serial Protocol
53(2)
RS232
54(1)
RS485
54(1)
12C
55(1)
SPI
55(1)
ROBIN
56(1)
MojoBus
56(5)
General MojoBus commands
57(1)
RX50 MojoBus commands
57(1)
Groucho's sensor controller
58(1)
MojoBus master code
58(3)
Summary
61(2)
Sensors
63(16)
Connecting Sensors
65(4)
The separate I/O processor
66(2)
Smart sensors
68(1)
RS485
68(1)
Modules and pods
69(1)
Example Sensors
69(7)
The switch
69(2)
Photoresister (CdS cell, photocell, or light-sensitive resistor)
71(1)
Infrared detection
72(1)
Passive infrared detector (PID)
72(1)
The sharp IR ranger
72(1)
Sonar
73(1)
Accelerometers
74(1)
Gyroscopes
75(1)
Compass
75(1)
Capacitance sensors
75(1)
Odometers
76(1)
Code
76(1)
Groucho's Sensor Architecture
77(1)
Summary
78(1)
Behavioral Programming
79(14)
Behavioral Programming History
82(1)
Behavioral Programming Basics
83(4)
Simple subsumption architecture
86(1)
The Code
87(2)
Limitation
89(2)
Learning
89(1)
State
90(1)
Timing
90(1)
Intuitive programming
90(1)
Summary
91(2)
Audio: Speaking and Listening
93(10)
Text to Speech
94(3)
Sable
96(1)
Alternate sound output
97(1)
Speech to Text
97(5)
Simple grammars (JSGF)
97(2)
Doing it the hard way: Training Sphinx
99(1)
From Sphinx to Groucho
100(2)
Sphinx wrap-up
102(1)
Summary
102(1)
Vision: Seeing the World
103(16)
Theory
104(4)
Color mapping
105(1)
Thresholding
105(2)
Convolution
107(1)
Hardware
108(1)
Software
109(2)
Driver software
109(1)
High-level software
110(1)
Feature Extraction
111(2)
Edge detection
111(1)
Histograms
112(1)
Optical Flow
113(1)
Possible algorithms
114(1)
Color Blobs
114(1)
Signs and Beacons
115(2)
Plain text
116(1)
Bar codes
116(1)
Bicycle reflectors
116(1)
Existing signs
117(1)
Summary
117(2)
Mapping and Planning: Where Is Here? and How Do We Get from Here to There?
119(12)
Mapping Algorithms
121(5)
Topological maps
121(1)
Occupancy maps
122(3)
Polar maps
125(1)
Well-known locations
126(1)
Programming the Maps
126(3)
OccupancyMap and MapCell
126(2)
Mapper
128(1)
Locator
129(1)
Navigator
129(1)
Summary
129(2)
Artificial Neural Networks
131(8)
The Artificial Neuron
132(2)
The McCulloch-Pitts neuron
132(1)
The generic neural network artificial neuron
133(1)
Layers in an Artificial Neural Network
134(2)
Single-layer artificial neural networks
135(1)
Multilayer artificial neural networks
135(1)
Neural Network Software
136(1)
Sound and neurons
136(1)
Joone
137(1)
Summary
137(2)
Working without a Wire
139(18)
WiFi
140(1)
Radio Modems
141(1)
It's Connected: Now What?
142(10)
Tomcat
144(3)
Apache
147(1)
NFS
148(1)
Camsource
149(2)
PostgreSQL
151(1)
Code
152(3)
SocketSensorImpl
152(2)
ServerSocketSensorImpl
154(1)
Summary
155(2)
Appendix A. ENerd Robotics Framework Code
157(120)
Main Interfaces
157(10)
ws.enerd.robots.Motor.java
157(2)
ws.enerd.robots.Sensor.java
159(1)
ws.enerd.robots.Robot.java
160(5)
ws.enerd.robots.DriveSystem.java
165(2)
Utility
167(2)
ws.enerd.util.StoppableThread.java
167(2)
MojoBus
169(9)
ws.enerd.robots.mojo.MojoConstants.java
169(2)
ws.enerd.robots.mojo.MojoDevice.java
171(1)
ws.enerd.robots.mojo.MojoCommand.java
172(1)
ws.enerd.robots.mojo.MojoConnection.java
173(3)
ws.enerd.robots.mojo.TestMotors.java
176(2)
Motors
178(16)
ws.enerd.robots.motor.AbstractMotor.java
178(4)
ws.enerd.robots.motor.MojoMotor.java
182(6)
ws.enerd.robots.motor.AbstractServoMotor.java
188(1)
ws.enerd.robots.motor.AbstractDriveSystem.java
189(2)
ws.enerd.robots.motor.DifferentialDriveSystem.java
191(3)
Sensors
194(34)
ws.enerd.robots.sensor.SensorThread.java
195(1)
ws.enerd.robots.sensor.AbstractSensor.java
196(7)
ws.enerd.robots.sensor.BooleanSensor.java
203(1)
ws.enerd.robots.sensor.DistanceSensor.java
204(4)
ws.enerd.robots.sensor.StringSensor.java
208(2)
ws.enerd.robots.sensor.TPAData.java
210(1)
ws.enerd.robots.sensor.TPASensor.java
211(2)
ws.enerd.robots.sensor.SensorFilter.java
213(1)
ws.enerd.robots.sensor.AbstractSensorFilter.java
213(3)
ws.enerd.robots.sensor.AveragingArrayFilter.java
216(1)
ws.enerd.robots.sensor.SensorImpl.java
217(1)
ws.enerd.robots.sensor.AbstractSensorImpl.java
218(1)
ws.enerd.robots.sensor.FileSensorImpl.java
219(2)
ws.enerd.robots.sensor.MojoSensorRingImpl.java
221(1)
ws.enerd.robots.sensor.SocketSensorImpl.java
222(2)
ws.enerd.robots.sensor.SocketServerSensorImpl.java
224(3)
ws.enerd.robots.sensor.SensorEvent.java
227(1)
ws.enerd.robots.sensor.SensorListener.java
228(1)
Behavioral Programming
228(19)
ws.enerd.robots.Behavior.java
229(1)
ws.enerd.robots.AbstractBehavior.java
230(5)
ws.enerd.robots.NullBehavior.java
235(1)
ws.enerd.robots.BehaviorListener.java
235(1)
ws.enerd.robots.Arbitrator.java
236(1)
ws.enerd.robots.AbstractArbitrator.java
237(6)
ws.enerd.robots.ControlArbitrator.java
243(2)
ws.enerd.robots.SimpleSubsumptionArbitrator.java
245(2)
Imaging
247(2)
ws.enerd.robots.image.ImageMinder.java
247(2)
Speech
249(4)
Mapping
253(5)
ws.enerd.robots.mapping.OccupancyMap
253(2)
ws.enerd.robots.mapping.MapCell
255(3)
AVRCam
258(19)
ws.enerd.robots.avrcam.AVRCamConnection.java
258(7)
ws.enerd.robots.avrcam.AVRCamEvent.java
265(1)
ws.enerd.robots.avrcam.AVRCamFrameListener.java
266(1)
ws.enerd.robots.avrcam.AVRCamImageEvent.java
267(1)
ws.enerd.robots.avrcam.AVRCamImageReceiver.java
268(4)
ws.enerd.robots.avrcam.AVRCamListener.java
272(1)
ws.enerd.robots.avrcam.AVRConstants.java
272(1)
ws.enerd.robots.avrcam.ScanLine.java
273(1)
ws.enerd.robots.avrcam.Test.java
274(3)
Appendix B. Resources
277(2)
Index 279

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program