Skip to content

Commit

Permalink
Merge pull request #67 from gtbook/frank_feb15
Browse files Browse the repository at this point in the history
New intro
  • Loading branch information
dellaert authored Mar 3, 2024
2 parents 91fd4a2 + 4cfed2b commit ebb1054
Show file tree
Hide file tree
Showing 12 changed files with 721 additions and 116 deletions.
104 changes: 30 additions & 74 deletions S10_introduction.ipynb
Original file line number Diff line number Diff line change
@@ -1,33 +1,5 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "2ca949af",
"metadata": {
"colab_type": "text",
"id": "view-in-github",
"tags": [
"no-tex"
]
},
"source": [
"<a href=\"https://colab.research.google.com/github/gtbook/robotics/blob/main/S10_introduction.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c80a45e5",
"metadata": {
"tags": [
"remove-cell"
]
},
"outputs": [],
"source": [
"%pip install -q -U gtbook\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
Expand All @@ -48,60 +20,44 @@
"<img src=\"Figures1/S10-Robot_menagerie-08.jpg\" alt=\"Splash image with cute robot\" width=\"60%\" align=center style=\"vertical-align:middle;margin:10px 0px\">"
]
},
{
"cell_type": "markdown",
"id": "566064b1",
"metadata": {},
"source": [
"Robotics is a fascinating field in which we study how to make sense of the world and how to reason about acting purposefully in the physical world. Robotics is more relevant than ever, as robots populate our factories, streets, skies, and even work inside our homes. How do these systems work? What sensors do they have and how do they perceive our world through these senses? What are the mechanisms by which they can move and act in their environment? And how do they choose how to act at any given moment? These questions are an incredibly broad and rich subject, and given the recent advances in artificial intelligence the field of robotics is bound to see many breakthroughs over the next few years.\n",
"\n",
"This introductory text is designed to guide the reader through the *foundations* of modern robotics, while at the same time showing how practical systems can be implemented. The theoretical concepts in each chapter are explained informally without sacrificing rigor, but balance this with a unique hands-on approach. Theory is immediately put into practice, as every section in the book is interspersed with example code and can be executed as a python notebook, allowing students to experiment with implementations that are representative of many robotics systems. No experience is needed beyond a good basis in math, especially linear algebra and notions of statistics, and some knowledge of the python programming language. The code itself is based on popular open source libraries, most notably GTSAM and PyTorch, which provide a good starting point for those who want to further explore robotics as a career choice."
]
},
{
"cell_type": "markdown",
"id": "Ow_ar2AAFHi0",
"metadata": {
"id": "Ow_ar2AAFHi0"
},
"source": [
"When you are given a task to perform, for example, place the chairs in\n",
"the room into a circular pattern, you might proceed as follows. First,\n",
"look around the room and assess the situation. How many chairs are\n",
"there? Where are they located? Second, you might make a plan for putting\n",
"the chairs into the desired pattern: Go to the first chair, pick it up,\n",
"and move it to its desired location; then, repeat this for the second\n",
"chair, and so on. Finally, execute the plan, and arrange the chairs as\n",
"desired. This basic strategy is often referred to as the Sense-Think-Act\n",
"paradigm, and it forms the basis for the behavior of most all robotic\n",
"systems.\n",
"\n",
"In robotic systems, *sensing* might be performed using computer vision,\n",
"touch sensors, laser range scanners, or any number of currently\n",
"available sensing modalities. *Thinking* corresponds to the process of\n",
"manipulating an internal model of the world, reasoning about which\n",
"actions the robot could perform, and how these actions would change the\n",
"state of the world. Finally, *acting* is the moment when the robot moves\n",
"in, and interacts with, its environment.\n",
"In this book, we proceed through a sequence of increasingly complex robotic systems. Each chapter is laid out in the same pattern, delving into how to represent the robot's state, how to describe its actuators and sensors, the corresponding perception and planning methods and algorithms, and ending with a section on learning from data. The expressiveness of the state space, which is tied to how much we do or do not abstract away from reality, determines to a large degree the complexity of the corresponding algorithms. By gradually building up this richness, we ensure that each chapter builds upon the previous one, guiding the reader along a series of achievable steps. A key tool we use in each chapter is the use of graphical models to help explain how state, actions, and sensing share many commonalities across a diverse set of autonomous robots.\n",
"\n",
"For real robotic systems, it is almost never the case that a robot\n",
"succeeds at performing a task by using a single instance of this\n",
"sense-think-act process. Rather, these steps are typically performed\n",
"iteratively. At each iteration, sensing updates the robot’s\n",
"understanding of the current situation; thinking is used to update or\n",
"refine the current plan; actions are then executed to bring things a bit\n",
"closer to the desired outcome. For this reason, one typically refers to\n",
"the *sense-think-act loop*. The speed at which this loop is executed\n",
"varies based on the task to be performed. For a chess playing robot, a\n",
"single iteration could take seconds or minutes (each iteration\n",
"corresponding to a single move). For a self-driving car, a single\n",
"iteration of sense-think-act might take milliseconds (or less). In the\n",
"limit, as the time associated to a single iteration decreases to zero,\n",
"we obtain continuous time systems. While the specific behavior of these\n",
"various systems can be quite different, they are all nicely described in\n",
"terms of the sense-think-act loop, and for this reason, we use this\n",
"paradigm as the organizing structure for our development.\n",
"We begin, in Chapter 2, by considering a simple trash sorting robot. Pieces of trash arrive on a conveyor, and the robot’s task is to place these in an appropriate bin. For this first robotic system, we abstract away most all details that would confront a real trash sorting robot, focusing our attention on fundamental concepts from probability theory, both to solve a simple perception problem (categorizing pieces of trash) and to solve a planning problem (which bin to select). From there, in each chapter we incrementally add complexity to the system models and the mathematical methods for manipulating them, developing increasingly sophisticated algorithms to implement these methods. We consider a simple vacuum cleaning robot in Chapter 3, a mobile robot that navigates in a warehouse in Chapter 4, a two-wheeled, differential drive robot (DDR) in Chapter 5, self-driving cars in Chapter 6, and quadrotor drones in Chapter 7."
]
},
{
"cell_type": "markdown",
"id": "d8a9d268",
"metadata": {},
"source": [
"In the state, action, and sensing sections of each chapter we focus on the mathematical *models*. To model robots, we move from discrete state spaces and fairly abstract action and sensing, to continuous state spaces and real-world sensing in later sections. We introduce the special Euclidean group of order two, $SE(2)$ for differential drive robots, and extend it to $SE(3)$ for the case of drones. We develop the differential kinematics for wheeled mobile robots, both for omnidirectional robots (our logistics robot), and for robots with non-holonomic constraints. In the case of drones, we derive a model for the dynamics which includes propellor thrust, and aerodynamic properties such as drag. We take a similar approach with sensors. In Chapter 2, we introduce simple sensors that measure physical properties of a piece of trash. Then, in subsequent chapters, we consider an increasing array of sensors, including proximity sensors, RFID beacons, GPS, cameras, LIDAR, and Inertial Measurement Units (IMUs)."
]
},
{
"cell_type": "markdown",
"id": "180cbd5d",
"metadata": {},
"source": [
"In other places, we focus on probabilistic methods for representing and reasoning about uncertainty. We introduce discrete probability distributions for simple classification problems, and develop maximum likelihood and maximum posteriori estimation methods for these using our trash sorting robot. We introduce continuous distributions, and specifically the uniform and Gaussian distributions, to model the motion of mobile robots and the effects of sensor noise. To reason about the effects of uncertainty, we introduce sampling-based methods, such as particle filtering and Markov localization, Kalman filters, Bayes nets, and Markov decision processes. In each case, we begin by formulating the appropriate mathematical models, and then proceed to describe algorithmic solutions (often illustrated with code).\n",
"\n",
"In this chapter, we introduce concepts that are fundamental to the study\n",
"of intelligent robots, particularly those that rely on the\n",
"sense-think-act paradigm. We introduce the concept of world state, and\n",
"describe various possible methods that can be used to represent the\n",
"world state. We then introduce the notion of the robot’s state, which is\n",
"subtly different from the state of objects in the world, due mainly to\n",
"the fact that the robot can directly change its own state. The robots\n",
"actions and how to represent them are the topic of the subsequent\n",
"section. Finally, we give a brief overview of sensing methodologies that\n",
"are currently of interest to intelligent robotic systems."
"In the remainder of this chapter, we give a slightly more detailed overview of the topics covered in this book."
]
}
],
Expand All @@ -126,7 +82,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
"version": "3.11.7"
},
"latex_metadata": {
"affiliation": "Georgia Institute of Technology",
Expand Down
Loading

0 comments on commit ebb1054

Please sign in to comment.