*Revised and Updated 2 ^{nd} Edition*

*Series Editor*

*Hisham Abou-Kandil*

First edition published 2015 in Great Britain and the United States by ISTE Press and Elsevier © ISTE Press 2015.

First published 2019 in Great Britain and the United States by ISTE Ltd and John Wiley & Sons, Inc.

Apart from any fair dealing for the purposes of research or private study, or criticism or review, as permitted under the Copyright, Designs and Patents Act 1988, this publication may only be reproduced, stored or transmitted, in any form or by any means, with the prior permission in writing of the publishers, or in the case of reprographic reproduction in accordance with the terms and licenses issued by the CLA. Enquiries concerning reproduction outside these terms should be sent to the publishers at the undermentioned address:

ISTE Ltd

27-37 St George’s Road

London SW19 4EU

UK

www.iste.co.uk

John Wiley & Sons, Inc.

111 River Street

Hoboken, NJ 07030

USA

www.wiley.com

© ISTE Ltd 2019

The rights of Luc Jaulin to be identified as the author of this work have been asserted by him in accordance with the Copyright, Designs and Patents Act 1988.

Library of Congress Control Number: 2019943737

British Library Cataloguing-in-Publication Data

A CIP record for this book is available from the British Library

ISBN 978-1-78630-523-7

A *mobile robot* can be defined as a mechanical system capable of moving in its environment in an autonomous manner. For that purpose, it must be equipped with:

- –
*sensors*, which will collect knowledge of its surroundings (which it is more or less aware of) and determine its location; - –
*actuators*, which will allow it to move; - – an
*intelligence*(or algorithm, regulator), which will allow it to compute, based on the data gathered by the sensors, the commands to send to the actuators in order to perform a given task.

Finally, to this we must add the *surroundings* of the robot, which correspond to the world in which it evolves, and its *mission*, which is the task it has to accomplish. Mobile robots are constantly evolving, mainly from the beginning of the 2000s, in military domains (airborne drones [BEA 12], underwater robots [CRE 14], etc.), and even in medical and agricultural fields. They are in particularly high demand for performing tasks considered to be painful or dangerous to humans. This is the case for instance in mine-clearing operations, the search for black boxes of damaged aircraft on the seabed and planetary exploration. Artificial satellites, launchers (such as Ariane V), driverless subways and elevators are examples of mobile robots. Airliners, trains and cars evolve in a continuous fashion towards more and more autonomous systems and will very probably become mobile robots in the following decades.

*Mobile robotics* is the discipline which looks at the design of mobile robots [LAU 01]. It is based on other disciplines such as automatic control, signal processing, mechanics, computing and electronics. The aim of this book is to give an overview of the tools and methods of robotics which will aid the design of mobile robots. The robots will be modeled by *state equations*, i.e. first-order (mostly nonlinear) differential equations. These state equations can be obtained by using the laws of mechanics. It is not in our objectives to teach, in detail, the methods of robot modeling (refer to [JAU 05] and [JAU 15] for more information on the subject), but merely to recall its principles. By *modeling*, we mean obtaining the state equations. This step is essential for simulating robots as well as designing controllers. We will however illustrate the principle of modeling in Chapter 1 on deliberately three-dimensional examples. This choice was made in order to introduce important concepts in robotics such as Euler angles and rotation matrices. For instance, we will be looking at the dynamics of a wheel and the kinematics of an underwater robot. Mobile robots are strongly nonlinear systems and only a nonlinear approach allows the construction of efficient controllers. This construction is the subject of Chapters 2 and 3. Chapter 2 is mainly based on control methods that rely on the utilization of the robot model. This approach will make use of the concept of *feedback linearization*, which will be introduced and illustrated through numerous examples. Chapter 3 presents more pragmatic methods which do not use the state model of the robot and which will be referred to as *without model* or *mimetic*. This approach uses a more intuitive representation of the robot and is adapted to situations in which the robots are relatively simple to control remotely, such as in the case of cars, sailing boats or airplanes. Chapter 4 looks at *guidance*, which is placed at a higher level than control. In other words, it focuses on guiding and supervising the system which is already under control by the tools presented in Chapters 2 and 3. There will therefore be an emphasis on finding the instruction to give to the controller in order for the robot to accomplish its given task. The guidance will then have to take into account knowledge of the surroundings, the presence of obstacles and the roundness of the Earth. The nonlinear control and guidance methods require good knowledge of the state variables of the system, such as those which define the position of the robot. These position variables are the most difficult to find and Chapter 5 focuses on the problem of *positioning*. It introduces the classical nonlinear approaches that have been used for a very long time by humans for positioning, such as observing beacons and stars, using a compass or counting steps. Although positioning can be viewed as a particular case of state observation, the specific methods derived from it warrant a separate chapter. Chapter 6 on *identification* focuses on estimating, with a certain precision, non-measured quantities (parameters, position) from other, measured ones. In order to perform this identification, we will mainly be looking at the so-called *least squares* approach, which consists of finding the vector of variables that minimizes the sum of the squares of the errors. Chapter 7 presents the *Kalman filter*. This filter can be seen as a state observer for dynamic linear systems with coefficients that vary in time. A generalization of the Kalman filter to the case where the functions are nonlinear and the noise is non-Gaussian is provided in Chapter 8. The resulting observer, which is called the Bayes filter, computes the probability density function of the state vector at specific times.

The MATLAB^{®} and PYTHON code related to some the exercises of this book, together with explanatory videos, can be found at the following address:

```
www.ensta-bretagne.fr/jaulin/isterob.html
```