Autonomous robot behaviors are mechanisms constructed from carefully designed algorithms and representations
State machines; event-based architectures
How do robots see the world?
Robots use sophisticated but imperfect computer vision algorithms to deduce real world object representations from arrays of pixels
Hough transforms; AprilTags; object recognition algorithms such as SIFT and SURF; face detection algorithms; etc.
How do robots know where they are?
Robots estimate their position in the world using a combination of odometry, visual landmarks, and other types of sensor information
Particle filters; SLAM (Simultaneous Localization and Mapping) algorithms
How do robots know where to go?
Robots navigate through the world using a path planner to search for routes around obstacles
Path planning algorithms such as RRTs (Rapidly-exploring Random Trees)
How do robots control their bodies?
Robots describe their bodies as kinematic trees and use kinematics solvers to translate between joint angles and body coordinates
Kinematic description files; Denavit-Hartenberg conventions; forward and inverse kinematics solvers
What can we do when a robot becomes too complex for one person to fully understand it?
Robots are complex software systems that employ standard abstraction and software engineering techniques to manage complexity
Modular design; coding standards; class libraries; documentation generators
How do we calculate the quantities needed to make a robot function?
Geometry, trigonometry, and linear algebra are the mathematical underpinnings of much of robotics
Software libraries for linear algebra, angular arithmetic, quaternions, etc
How can robots solve complex problems?
Robots use task planning to search a space of world states to find a path to a goal state
Task planners; domain description languages; plan execution and monitoring architectures
How should robots behave around people?
Successful human–robot interaction requires awareness of humans in the environment and adherence to social conventions such as not following too closely
Human-tracking tools such as the Microsoft Kinect; face and gesture recognition software; speech recognition systems; natural language dialog systems
How can robots work together?
Inter-robot communication and multi-robot coordination algorithms allow robots to collaborate