Ten Big Ideas in Robotics - touretzkyds/cozmopedia GitHub Wiki
This list of 10 big ideas was first published in:
- Robotics for Computer Scientists: What's the Big Idea? David S. Touretzky. Computer Science Education 23(4), 349-367, 2013.
Essential Question | Big Idea | Underlying Technologies |
---|---|---|
1. How do robots know what to do? | Autonomous robot behaviors are mechanisms constructed from carefully designed algorithms and representations. | State machines; event-based architectures. |
2. 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. |
3. 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 |
4. 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) |
5. 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 |
6. 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 |
7. 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. |
8. 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 |
9. 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 |
10. How can robots work together? | Inter-robot communication and multi-robot coordination algorithms allow robots to collaborate | Communication primitives; multi-robot planners |