Here is an archive of all the blog posts by category.
You may see some empty categories. They are displayed to give you a general idea of posts to come, and to hopefully help you think of what you want to see in the future.
You can also find all posts in order, from latest to earliest, on this page.
General Robotics
Robots are complex systems that require a breadth of technical domains. Sometimes it’s worth not digging too deep into any one technical topic, but rather discussing robots at the system level.
- Anatomy of a Robotic System
- 2020 in Review: Home Service Robotics at MIT CSAIL
- 2021 in Review, Part 1: Research Projects at MIT CSAIL
Task and Motion Planning
My personal favorite aspect of robotics engineering. How do you go from a high-level task specification to something modular, robust, and executable?
- Introduction to Behavior Trees
- 2020 in Review: Home Service Robotics at MIT CSAIL
- 2021 in Review, Part 1: Research Projects at MIT CSAIL
- Building a Python Toolbox for Robot Behavior
- Task Planning in Robotics
- Integrated Task and Motion Planning in Robotics
Motion Planning and Navigation
Humans and animals can unconsciously control the low-level motion of their bodies once they’re old enough to learn basic motor skills. Robots… not so much. How does a high-level behavior then get resolved to a motion plan or trajectory for its actuators?
Control Systems
Motion plans need to be executed on hardware. This is often a challenging controls problem, especially with systems that are inherently unstable, have nonlinear dynamics, and/or whose actuators are highly coupled.
- Nothing yet 🙁
Computer Vision
Vision sensors, such as cameras and lidar, contain rich information about the environment. How can a robot extract this information to help it accomplish tasks?
Human-Robot Interaction and Language
How can humans and robots interact more naturally using speech, text, gestures, or other cues typically used in human-to-human communication?
Machine Learning
Instead of hand-coding rules on a robot, can a system automatically extract patterns and/or learn from data, demonstrations, and/or trial-and-error?
- Introduction to Natural Language Processing
- Reinforcement Learning Series
Software Development
Best practices and resources for programming and software development, with an obvious bias towards the robotics and artificial intelligence areas.
- The Best Programming Languages for Robotics
- Managing your Python Environment
- Testing Python Code
- Continuous Integration with GitHub, Docker, and Jenkins
- A Guide to Docker and ROS
- An Updated Guide to Docker Compose and ROS 2
- Building a Python Toolbox for Robot Behavior
Career / Personal
Occasionally it’s nice to take a break from deeply technical topics and talk about more personal topics. This of this as the “other” category of the blog.
- Advice to Young Engineers
- 2021 in Review, Part 2: A Career Stretch
- 2022 in Review: The Year of ROS 2
- 2023 in Review: Senior Engineer
- ROSCon 2024: Highlights from Odense
Contact me if you have post ideas, questions, or other feedback.