Welcome to the official webpage for Principles of Robot Autonomy

Robotics and Physical AI are among the most exciting frontiers in science and engineering today. The pace of progress is extraordinary, with new ideas emerging and being deployed at an unprecedented rate. This book is our attempt to capture the state of the art in robot autonomy, and to provide a principled foundation for the next generation of researchers and engineers.

After nearly a decade of teaching robot autonomy at Stanford, we realized that the robotics community needed a textbook that presents the modern autonomy stack as a coherent whole, bridging the classical foundations of robotics with the latest advances in Physical AI. We are delighted to make this book freely available online and hope it serves as a valuable resource for students, researchers, engineers, and practitioners alike.

The book is published by Cambridge University Press and will soon be available in print. We’ll share ordering information here as soon as it becomes available. In the meantime, this website brings everything together in one place, including the complete text, interactive exercises, and lecture recordings.

Want to build your own course around PoRA? If you’re a professor, lecturer, or instructor at any level, the For Instructors page gathers all the resources you need.

Cover of Principles of Robot Autonomy

Who we are

We are active researchers and engineers whose work spans self-driving cars, aerospace robotics, robotic systems, and Physical AI broadly. The book grew out of the Principles of Robot Autonomy course series, which has been taught at Stanford since 2017 and refined each year through feedback from hundreds of students and course assistants, as well as through our own experience designing, building, and deploying autonomous systems in the real world. We are deeply grateful to the many students, teaching assistants, and collaborators whose ideas, questions, and contributions have shaped both the course and this book.

Daniele Gammelli
Stanford University · Italian Institute of Artificial Intelligence (AI4I)

Dr. Daniele Gammelli is a Research Director at the Italian Institute of Artificial Intelligence (AI4I) and a Researcher in the Department of Aeronautics and Astronautics at Stanford University. He holds a Ph.D. from the Technical University of Denmark. His research develops the algorithmic foundations of Physical AI for safe, efficient, and reliable robotic systems, with particular emphasis on aerospace autonomy and next-generation mobility systems.

Joseph Lorenzetti
Zoox

Joseph Lorenzetti received a Ph.D. in Aeronautics and Astronautics from Stanford University, where they were supported by the National Defense Science and Engineering Graduate Fellowship. They currently work at Zoox on the Autonomy Behaviors team, developing decision-making algorithms for autonomous vehicles deployed in the real world.

Katie Luo
Stanford University

Katie Luo received her PhD from Cornell University's Ann S. Bowers College of Computing and Information Science, where she was an NVIDIA Fellow and an AAUW American Doctoral Fellow, and subsequently held a postdoctoral position at Stanford University's Department of Aeronautics and Astronautics. Her research focuses on the visual understanding of the world, including 3D perception and multi-modal learning, combining visual data with other sensory inputs to enhance environmental understanding. She has published widely across these areas, and notably authored several pioneering works in 3D object discovery.

Gioele Zardini
MIT

Gioele Zardini is the Rudge (1948) and Nancy Allen Career Development Professor at MIT, with affiliations in LIDS, CEE, and IDSS. His research develops computational and algorithmic tools for designing complex interconnected systems and autonomous decision-making, spanning robot autonomy, mobility, control, game theory, and compositional engineering. He created Autonomy Talks series.

Marco Pavone
Stanford University · NVIDIA

Dr. Marco Pavone is an Associate Professor of Aeronautics and Astronautics at Stanford University and a Senior Director of Autonomous Vehicle Research at NVIDIA. He earned his Ph.D. from the Massachusetts Institute of Technology in 2010. His research focuses on Physical AI, and he has received numerous honors, including the Presidential Early Career Award for Scientists and Engineers.

Why we wrote this book

In less than a decade, autonomous systems have evolved from technologies confined largely to research labs into systems operating in everyday environments. Self-driving cars now share city streets with human drivers, delivery robots navigate sidewalks, drones autonomously inspect infrastructure, and humanoid and quadruped robots are beginning to enter warehouses and homes. The field has crossed an important threshold. Robot autonomy is no longer solely an academic pursuit, but a collection of mature, field-tested methods and tools that practitioners rely on in real-world deployments.

This transition changes what students and engineers need to learn. It is no longer enough to understand an algorithm in isolation; one must understand how it fits into a complete autonomy stack and how it interacts with the other components. We wrote this book to reflect that reality by providing both a principled foundation in the methods that have proven themselves in practice and a systems-level perspective on how those methods work together to build capable autonomous systems.

Moreover, the existing literature largely reflects the historical divisions of the field rather than the integrated nature of modern autonomy stacks. Classical robotics textbooks provide excellent treatments of modeling, control, motion planning, and state estimation, but many were written before deep learning became a central component of perception and decision-making. Conversely, recent books on machine learning and embodied AI cover modern learning techniques in depth, yet often devote comparatively little attention to the dynamics, control theory, and state estimation methods that ultimately determine whether a learned policy can operate reliably on real hardware. Practitioners building autonomous systems cannot afford this separation. A self-driving car depends on both geometric perception and learned object detection, as well as model-based trajectory optimization and learned behavior prediction. Our goal is to present these ideas within a single, coherent framework, rather than forcing readers to assemble them from disparate sources that often employ inconsistent notation, assumptions, and perspectives.

Finally, robot autonomy is fundamentally a practical discipline. Real understanding comes from implementing the algorithms, tuning them, breaking them, and watching how they respond to noisy data and edge cases. For this reason, the book is built around the principle of learning by doing: chapters are accompanied by interactive Python implementations in Jupyter notebooks, with exercises ranging from quick conceptual checks to substantial implementation projects.

We also wanted to lower the barrier to entry for readers coming from adjacent disciplines. A controls engineer interested in reinforcement learning, or an ML researcher wanting to ground their work in physical systems, should be able to jump into the relevant chapters, run the notebooks, and develop practical intuition without assembling a research-grade software stack from scratch. The notebooks are designed to bridge the gap between understanding the mathematics and building autonomous systems that work in practice.

What you'll find on this site

This site is the online home of the book. The full text is here to read, chapter by chapter, as native web pages or in open-access formats. Start with the Preface, or jump anywhere from the table of contents.

Because autonomy is learned by doing, chapters are paired with interactive exercises: Python implementations in Jupyter notebooks that open directly in Google Colab, so you can run and modify every algorithm without installing anything.

We are also progressively releasing the Stanford lecture recordings that accompany the chapters, so you can watch the material taught as well as read it.

Finally, we are excited to introduce what we believe is a new way of reading technical textbooks. Every chapter is paired with Ask the Book, an AI study assistant that can answer questions directly from the chapter you are reading. Rather than searching external resources, readers can ask questions about the material as they read and receive answers grounded in the chapter itself. Set it up once below, and it will be available throughout the book. We hope this combination of a rigorous textbook and an interactive AI tutor makes learning robot autonomy more accessible, engaging, and effective.

Note. Like all large language models, Ask the Book is probabilistic and can occasionally make mistakes or generate inaccurate information (sometimes called hallucinations). While responses are grounded in the textbook whenever possible, the book itself should be treated as the authoritative reference, especially for important technical details.

Ask the Book, an AI study assistant on every page

Ask the Book is an optional AI study assistant available throughout the book. If you prefer to read without it, simply skip this section and continue with the text. If enabled, the assistant can answer questions about the chapter you are reading, explain derivations, unpack notation, render mathematical expressions, and help connect ideas across the material. Its goal is to support understanding, not simply provide answers.

There are two ways to use the assistant:

1. Connect an AI provider.
The quickest way to get started: connect a free OpenRouter account with one click below. OpenRouter offers free access to a wide range of open-source models (and, optionally, paid access to frontier models such as Claude or GPT through the same account). You can also bring your own API key from OpenAI, Anthropic, or any other supported provider. The assistant will use the model you choose to answer your questions.

2. Run a model locally.
If you have a compatible GPU, you can download and run an open-source language model directly on your own machine. This option offers complete privacy and does not require any account or API. Go to any chapter page and choose In your browser in the assistant's ⚙ settings.

Getting started (about a minute)

  1. New to OpenRouter? Create a free account first (opens in a new tab; if it offers you an API key along the way, store it, but you won't need it for this setup), then come back to this page. Already have an account? Skip ahead.
  2. Pick a model and click Connect with OpenRouter below. You'll approve the connection on openrouter.ai with one click and be sent straight back here, ready to go. The connection creates a key scoped to this site, which you can view, limit, or revoke at any time from your OpenRouter dashboard.

Prefer to use your Claude, OpenAI, or other supported provider via API key?

Choose a provider and paste one of its API keys. We want to stress that your key is stored only in your browser (for details, see API key safety). For OpenRouter, create a key at openrouter.ai/settings/keys; if OpenRouter already showed you a key during sign-up, you can paste that one.

The OpenRouter option uses the free model selected above; for other providers you pick the model here. You can change any of this later in the assistant's ⚙ settings on chapter pages.

We recommend NVIDIA Nemotron Nano 3 30B A3B as the default model. In our experience it offers generous free usage limits, although you are free to choose any compatible model.

Note. Free models are shared by many users and are therefore subject to provider-imposed rate limits. During busy periods you may occasionally need to wait before sending another request or temporarily switch to a different model. If you expect to use the assistant extensively, you can also configure it with a paid API key from your preferred provider.

API key safety

Your API keys are stored only in your browser and used only to call the model provider you choose, directly from your device. We cannot receive, store, or log them.

  • No account required on this site, and no server-side storage of any kind.
  • Following our setup guide and connecting with OpenRouter never shows you a key at all: it creates one scoped to this site that you can inspect, cap, or revoke from your provider dashboard at any time.
  • Bringing your own Claude or OpenAI key? For extra safety, create a separate key with a small spending limit, and rotate or delete it any time from your provider dashboard.
  • To see for yourself how we handle your API keys, inspect the source code on GitHub and watch exactly where requests go.

Cite this book

Principles of Robot Autonomy is published by Cambridge University Press. If you use the book or its materials, please cite it as:

@book{pora,
  title     = {Principles of Robot Autonomy},
  author    = {Gammelli, Daniele and Lorenzetti, Joseph and Luo, Katie
               and Zardini, Gioele and Pavone, Marco},
  year      = {2026},
  publisher = {Cambridge University Press}
}