Skip to content

Software Reading List

Tianshu Huang edited this page Oct 13, 2018 · 13 revisions

RAS Region V Robotics Software Reading List

Languages

  • Python 3, for vision and control
  • C++ / Arduino
    • May also be used to implement computations used in vision or decision making algorithms, and called as Python modules
  • Rust?

Frameworks

  • OpenCV (See below)
  • Numpy (with emphasis on linear algebra)
  • Possible web server run using flask or django; this server would be used for controlling multiple robots or providing a debug output.

OpenCV

OpenCV will be used to identify obstacles, cubes, the mothership, etc.

  • Good general tutorials on OpenCV for Python

  • Relevant algorithms:

    • SIFT: Scale Invariant Feature Transform

      • a feature detector specializing in edges
      • old-ish (2004) but still quite effective
      • good tutorial here
    • SURF: Speeded Up Robust Features

      • feature detector specializing in regions of colors (a blob detector)
      • faster than SIFT, and better in many circumstances
      • tutorial here
    • NOTE: in order to use SIFT / SURF, you will need to build OpenCV with the opencv_contrib package; also in the tutorial, instead of creating a SIFT/SURF detector with cv2.SIFT() or cv2.SURF, these detectors have been moved to xfeatures2d:

     sift = cv2.xfeatures2d.SIFT_create()	# Returns SIFT object
     surf = cv2.xfeatures2d.SURF_create()	# Returns SURF object
    • Hough line transform / circle transform

    • QR Code scanning with ZBar (an external library)

      • Tutorial
      • If we use QR codes as identification, version 1 QR codes or Micro QR codes will be used

General Vision techniques

Miscallaneous Algorithms

Control Algorithms

Clone this wiki locally