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.
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.
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)
- 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.
- 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}
}