Robotics - gusenov/kb GitHub Wiki

  • Learn Robotics Programming. Build and control AI-enabled autonomous robots using the Raspberry Pi and Python by Danny Staple - 602 pages
  • TikTok
  • IEEE Spectrum / Awesomely Bad Ideas: Teaching a Robot to Sword Fight Georgia Tech has given a robot a sword and told it that humans are out to get it, all in the name of safety
  • Robotics for computer scientists: what’s the big idea?
    • Ten Big Ideas in Robotics
    • How do robots know what to do?
      • 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
        • Communication primitives; multi-robot planners

Courses

See also