Open-Source Robotics and Process Control Cookbook
eBook - ePub

Open-Source Robotics and Process Control Cookbook

Designing and Building Robust, Dependable Real-time Systems

  1. 256 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Open-Source Robotics and Process Control Cookbook

Designing and Building Robust, Dependable Real-time Systems

Book details
Book preview
Table of contents
Citations

About This Book

In this practical reference, popular author Lewin Edwards shows how to develop robust, dependable real-time systems for robotics and other control applications, using open-source tools. It demonstrates efficient and low-cost embedded hardware and software design techniques, based on Linux as the development platform and operating system and the Atmel AVR as the primary microcontroller. The book provides comprehensive examples of sensor, actuator and control applications and circuits, along with source code for a number of projects. It walks the reader through the process of setting up the Linux-based controller, from creating a custom kernel to customizing the BIOS, to implementing graphical control interfaces. Including detailed design information on: · ESBUS PC-host interface· Host-module communications protocol· A speed-controlled DC motor with tach feedback and thermal cut-off· A stepper motor controller· A two-axis attitude sensor using a MEMS accelerometer· Infrared remote control in Linux using LIRC· Machine vision using Video4Linux

  • The first-ever book on using open source technology for robotics design!
  • Covers hot topics such as GPS navigation, 3-D sensing, and machine vision, all using a Linux platform!

Frequently asked questions

Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes, you can access Open-Source Robotics and Process Control Cookbook by Lewin Edwards in PDF and/or ePUB format, as well as other popular books in Diseño & Diseño industrial. We have over one million books available in our catalogue for you to explore.

Information

Publisher
Newnes
Year
2011
ISBN
9780080479811
CHAPTER 1

Introduction

1.1 History of this Book and What You’ll Get From Reading It

Over the course of roughly a year, after completing my first book, I resurrected an old pet project of building an autonomous submarine (referred to as the E-2 project) with certain fairly challenging functionality requirements. In the course of developing this idea, I spent many hours on the Internet and elsewhere, researching techniques for rapid development of various electromechanical control systems and platforms to run fairly complex signal-processing algorithms. Although there are, of course, thousands of useful projects and snippets of information to be obtained from the Internet and books on hobbyist robotics, I found that nobody else seemed to have my exact priorities. In particular, there is apparently no single reference that gathers together at least introductory solutions to all the embedded design issues that affected my project: a need to use low-cost (open-source) tools and operating systems, a requirement for several features with fairly hard real-time requirements, and a desire to use cheap, off-the-shelf consumer grade components wherever possible. Available resources on many topics concentrate either on very expensive off-the-shelf industrial components, or on tightly constrained systems built around a single microcontroller, with delicately optimized, nonportable code to control peripherals—and a very limited range of peripheral support, at that. These latter system design restrictions are unavoidable when you’re working to tight power requirements, space constraints, or a rock-bottom bill of material (BOM) cost, but it’s an inordinate amount of effort to build and tune such systems for a one-off project or a prototype. Furthermore, learning all the details required to assemble such a system is an enormous task; it’s easy to get lost in fine-tuning details without ever managing to field a complete, working system. Irritatingly, many of the tweaks and most of the careful planning you do to get that system operational will have to be thrown away if you move into actual production, or if you need to build some more units with slightly different components.
What I was searching for while developing the E-2 project was a way to build various hard real-time modules (sensors and actuators) that could easily and cheaply be interfaced to a general-purpose computer running Linux. The Linux box served as a testbed for algorithms which would later be ported down into a smaller, cooler, more power-efficient processing module of some kind. I needed a solid basis of known-good code and techniques so that I could strike out from that point and build my own customized system. I also wanted a simple up-and-running guide to building embedded Linux distributions. For the initial, nonfieldable prototype of my submarine, I didn’t have an exact idea of how much CPU horsepower I would need in the final version—so I didn’t want to get tied to a specific microcontroller architecture, nor did I want to get bogged down in trying to tweak and tune many real-time tasks on a single microcontroller. I also wanted to use a few peripherals—such as cameras—which are easiest interfaced through a general-purpose operating system.
These requirements may sound a chord with your own working life. Chances are you’ve encountered situations where it would be useful to automate some long-term data-gathering experiment or create a simple automated controller for a programming, manufacturing or other task. In this vein, three other instances where I have applied the techniques in this book are:
image
The development of a range of successful (commercially-fielded) networked multimedia appliances, designed for unattended advertising and art-gallery applications.
image
The development of specialized, almost wholly automatic mechanical failure testing apparatus for certain consumer electronics articles.
image
Construction of an automatic high-speed datalogger that monitors a radio link and extracts DTMF messages targeted at specific receivers.
The second item above is of particular interest, because it demonstrates nicely how this book can be of practical value in process control and testing applications. During 2002, I briefly worked for a small division of a multinational company whose major focus was household and office plasticware. It was most instructive to examine their automated test fixtures—proprietary systems—and compare the cost and setup complexity of these fixtures with the relatively low cost and setup time of a simple Linux-based SBC controlling the same pneumatic actuators and sensors. Clearly, there is an under-exploited market for low-cost test systems of this type. The proprietary systems in use at this particular facility cost almost $20,000 for a half-dozen actuators and the associated PLCs, plus uncounted hours of setup time1. The control software for these devices was specialized and not well-understood; in fact, most of this equipment was standing idle because the people who originally configured it had left the company. By way of contrast, the same tasks could easily be accomplished with a regular PC costing a mere few hundred dollars, plus perhaps $200 per actuator for the associated pneumatics. More importantly, the control software for such a system is a simple C program easily understood and adaptable by any competent computer science or electronic engineering major; there were several candidates readily available in the company lab.
Due to the nature of the research which led to this book’s inception, I have included a sprinkling of naval details within the text, not all of which are directly relevant to the embedded engineer. If this material is not of interest, you can safely ignore it without compromising your understanding of the remaining text in any way. The reason this information is included alongside the “pure” embedded development discussion is principally to illustrate the real-world requirements and thinking that led to various design decisions in the E-2 project. Engineering is not theoretical science; it is an applied discipline, and it is with this in mind that I use specific examples to illustrate theoretical points.
You should also note that some of the opinions expressed in this book, if not exactly controversial (except by Usenet standards—everything on Usenet is controversial!), are at least arguable; for example, the choice of AVR as my real-time control platform. For this reason, I have provided additional justification for the decisions I have made in this text. This additional explanation should demonstrate the reasons I had for choosing specific paths, but it’s expressly not designed to proselytize the AVR to people who have experience with, and prefer, another architecture. Again, this “bonus material” is not critical to your understanding of the basic concepts presented here, and you can safely skip it if you wish.
Also keep in mind that this book is intentionally not a “bible.” It is not an exhaustive coverage of every single nuance of the topics covered; such a work would span several shelves. The primary goal of this book is to describe and illustrate a simple, modular, inexpensive methodology for implementing complex embedded systems, and to present some ready-to-use modules for the reader to adapt to his or her own projects. The particular emphasis is on realizing end-to-end solutions using low-cost development hardware and free software tools. By the time you reach the last few pages, hopefully you should have the following:
image
A functional understanding of the critical “under-the-hood” details required to bootstrap Linux on x86 plat...

Table of contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. Dedication
  6. About the Author
  7. What’s on the CD-ROM?
  8. Chapter 1: Introduction
  9. Chapter 2: Microcontrollers, Single-Board Computers and Development Tools
  10. Chapter 3: Some Example Sensor, Actuator and Control Applications and Circuits (Hard Tasks)
  11. Chapter 4: The Linux-Based Controller (A Soft Task)
  12. Chapter 5: Encryption and Data Security Primer
  13. Chapter 6: Expecting the Unexpected
  14. Chapter 7: Contents of the Enclosed CD-ROM
  15. Index