With recent powerful developments in processor and sensor technology, robotics and the closely related field of process control systems are experiencing rapid growth and attracting many new hardware and software engineers. There is particular interest in using open source tools for these applications, with many companies, universities and laboratories desiring to build sophisticated systems without having to purchase an expensive real-time operating system (RTOS). Practical, authoritative information on this subject is scattered and difficult to find. In this comprehensive guide, experienced embedded engineer and author Lewin Edwards demonstrates efficient and low-cost open source design techniques, covering end-to-end robotic/process control systems using Linux as the development platform (and also as the embedded operating system), with extensive information on free compilers and other tools. Specifically the book targets development of real-time physical system controls using Atmel AVR microcontrollers communicating with Linux-based PCs for overmonitoring. It also covers open-source tools for other controllers, including MSP430, PIC and 8051.
Code examples are given to provide concrete illustrations of tasks described in the text. The accompanying CD-ROM contains all the code used in the design examples as well as useful open-source tools for robotics and process control system design. The book includes: * schematics, PCB layouts and firmware source code for various sensors and servo/stepper/propulsion motor controllers, with theory of operation text. * discussion of navigation mathematics (GPS) and example code and circuits. * discussion of 3D attitude sensing using MEMS accelerometers. * techniques for designing reliable systems, including watchdogs, avoidance of race conditions, and identifying when it's time to offload functionality onto slave processors * documented sourcecode (with theory-of-operation) for sample overmonitoring applications, both for testing the sensor/controller modules and for complete process monitoring. (To take a trivial example, documenting how to build a system that monitors four thermal sensors with onscreen thermometers, logs the temperature over time, and emails a supervisor's pager if any of the temperatures go out of range.)
* a brief introduction to machine vision, including simple ways to capture images, differentiating the image for edge detection, and simple shape recognition.