Introduction to Embedded System Design Using Field ... - IEEE Xplore

0 downloads 0 Views 128KB Size Report
Dec 6, 2013 - (FPGAs) are powerful embedded devices. They are mainly used ... Introduction to Embedded System .... The book is broken down into three.
ON THE SHELF

Embedded FPGAs and Optimization

Introduction to Embedded System Design Using Field Programmable Gate Arrays Rahul Dubey, London, United Kingdom, 2009, 154 pages. ield-programmable gate arrays (FPGAs) are powerful embedded devices. They are mainly used today for flexible and powerful rapid-prototyping purposes. However, due to the lack of awareness, both of their advantages and the flexible operating systems, they are underutilized in many robotic systems being developed today. Introduction to Embedded System Design Using Field Programmable Gate Arrays presents an introduction, comparison to microcontrollers, discussion of tools, many examples, and a case study of a simulated industrial robotic system implementation. Chapter 1 discusses embedded system design, methodologies, and a comparison between microcontrollers and FPGAs. The power of a parallel implementation that uses standardized libraries is immediately evident and clearly presented here. The author describes the simulated industrial robotic system in this chapter as well. FPGAs essentially are made up of large numbers of programmable switches, which are discussed in Chapter 2. This chapter covers different historical aspects of the development of hardware description languages (HDLs), and two main languages, Verilog and

F

Digital Object Identifier 10.1109/MRA.2013.2283188 Date of publication: 6 December 2013

Very High-Speed Integrated Circuit HDL (VHDL). The author presents specific examples from the perspective of Verilog, as space is limited, and the main principles are the same. A variety of small examples, as well as the simulated robot system, are presented. Chapter 3 covers specific on-chip resources and primitives of FPGA devices. It discusses an overview of the basic architecture [such as the interconnect technology, logic cell, memory, clock distribution, input/output (I/O) multipliers, and more], floor plan and routing, timing models, and power usage. FPGAs are so flexible that they can, in fact, instantiate an entire embedded processor as a hard or soft resource (a hard resource is dedicated, while a soft resource is not). This is discussed briefly in Chapter 4. The author describes how the designer must derive the nature of the task requirements and decide what resources and processor must be instantiated. Several of the common processor types available include PowerPC, AVR, NIOS, CoreMP7, ARM, and Cortex-M1. The processor must be interfaced to memory and peripherals (typically entirely within the FPGA) through any of a variety of means. Due to the “tabula rasa” style of FPGAs, many standard components [encoder interfaces, communications, motor controllers, timers, random access memory (RAM) etc.] can be designed once and reused for many projects or found in the public domain. The design of custom peripherals is also presented, including the

not-so-significant (but easy to perform) task of developing a customized microcontroller that can be programmed in high-level languages. To paraphrase a great piece of literature, no digital device is an island, entire unto itself and thus, interfacing FPGAs to the outside world is the main topic of Chapter 5. Typically, information is exchanged using some form of serial communication, and the author describes several standard approaches and interfaces (Universal Asynchronous Serial Receiver Transmitters, RS-485, RS-232, and the Serial Peripheral interface). No interface to the outside world would be complete without a method to address noise via signal conditioning, and FPGAs can instantiate filtering devices such as moving average low pass filters. Chapter 6 presents methods of motor control using an FPGA. The basic approach is discussed, followed by case studies for stepper, dc, permanent magnet rotor synchronous, and other motors. Chapter 7 comprises prototyping with FPGAs. When an embedded methodology is designed, it is occasionally imperfect. If the circuit pathways are hardwired onto a printed circuit board (PCB), there is little recourse but to spin again over the entire board, often at great expense. During high-volume production, a redesign/respin can be disastrous, but using an FPGA, it is simple to simulate, test, and redesign the system. This chapter presents a methodology and the epitome of a simulated robotic system.

december 2013



IEEE ROBOTICS & AUTOMATION MAGAZINE



163

The customizability and power of FPGAs, as well as the ability to reuse components in other designs, makes them a powerful tool in the arsenal of any roboticist. The prevalence and

rapid evolution of these devices in industry make it easy to learn more about FPGAs. This book aids in the process, providing a clear introduction, numerous examples, and an excellent

flow—a balance of technical detail and informative discussion. —Reviewed by Alex Simpkins, Jr. , Ph.D. San Diego, California

Convex Optimization Steven Boyd and Lieven Vandenberghe, Cambridge, United Kingdom, 2014, 716 pages. onvex Optimization by Steven Boyd and Lieven Vandenberghe is a classic text on optimization. Though there have been significant recent developments in the field of optimization, this text still covers the fundamental concepts that any researcher or practitioner needs to know and certainly takes the reader far beyond the basics. As robotic systems gain in complexity, dimensionality, and dynamic task challenges, convex optimization is playing an increasing role in all aspects. It is useful in control systems, circuit and mechanical design, statistics, data analysis and modeling, and more. As such, it is clear that roboticists should study and incorporate convex optimization as part of their knowledge base. The book is broken down into three main sections (“Theory,” “Application,” and “Algorithms”), 11 chapters, and three appendices. It also has a list of references, an index, and a notation list. Each chapter ends with a bibliography and exercises, making it easy to take the chapter further and explore beyond the book. Chapter 1 gives a mathematical overview of optimization, introducing least squares and linear programming, convex and nonlinear optimization, local and global problems, and the role of convex optimization in nonconvex problems. Finally, the rest of the book is outlined, and notation to be used is described.

The “Theory” section is broken down into Chapter 2 on convex sets, Chapter 3 on convex functions, Chapter 4 on convex optimization problems, and Chapter  5 on duality. Chapter 2 is a key chapter, beginning with affine sets and moving to convexity, then covering several relevant examples, convexity in operations, and (perhaps most importantly) separating and supporting hyper planes and dual cones. Chapter 3 discusses how convexity and quasiconvexity as concepts can be extended to functions, and functions of convexity (such as logconvex functions). The authors describe that for many nonconvex functions, a convex hull can be formed using inequalities. Next, Chapter 4 covers convex optimization problems, standard forms, equivalent problems, parameters, local and global criteria, and more. Linear fractional programming is also touched on, a topic particularly relevant to uncertain and complex systems. Of course, quadratic problems are also presented. Chapter 5 shows how convex optimization problems that are difficult to solve in their original formulation can be transformed into Lagrangian dual problems that can be solved. A good book provides not only the what and how but also the why, and here the authors spend time motivating the dual problem, constraints, sensitivity, examples, and criteria for feasibility. The “Applications” section is broken down into Chapter 6 on approximation and fitting, Chapter 7 on statistical estimation, and Chapter 8 on geometric problems. One of the most common uses of optimization is for approximately (or exactly) solving equations. The authors craft Chapter 6 into many sections by first presenting the prob-

lem, then giving several interpretations or applications. For example, the first section begins with norm approximation problems, then presents approximation, estimation, geometric, and design interpretations. Challenging data and functions can be fit using convex optimization, and the authors highlight this well. Caveats and strategies for successful application are discussed. Statistical analysis is a challenging field and often is not taught from the perspective of optimization. Chapter 7 discusses a variety of statistical problems and how they can be framed then solved within the convex optimization framework. Maximum likelihood estimation is a fundamental concept when dealing with parametric distributions, and it is one of many concepts laid out quite clearly here. This chapter, which covers testing hypotheses and making decisions, is useful since robots operating in uncertain environments need these capabilities. When acting in the world, geometric problems abound. Chapter 8 addresses a variety of geometric applications that will be of great interest to roboticists. For example, problems dealing with classification and polynomial discrimination are presented, along with solutions. The third section of the book, “Algorithms,” contains Chapter 9 on unconstrained optimization, Chapter 10 on equality constrained optimization, and Chapter 11 on interior-point methods. Unconstrained minimization problems, summarized in Chapter 9, are difficult to solve analytically, so typically a numerical approach is taken. The authors here present not only various methods and examples but also tests for determining how

C

Digital Object Identifier 10.1109/MRA.2013.2283189 Date of publication: 6 December 2013

164



IEEE ROBOTICS & AUTOMATION MAGAZINE



december 2013