Changes between Version 11 and Version 12 of ControlSystems/SoftwareTeam/Training/GettingStarted/Targeting


Ignore:
Timestamp:
Dec 1, 2019, 3:41:41 PM (6 years ago)
Author:
David Albert
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ControlSystems/SoftwareTeam/Training/GettingStarted/Targeting

    v11 v12  
     1FRC competitions almost always allow for and encourage automated identification of targets.  The field pieces usually have [https://wpilib.screenstepslive.com/s/currentCS/m/vision/l/288983-target-info-and-retroreflection retro-reflective tape] around the target in some pattern that makes it easier to identify.  Robots illuminate the targets with bright colored LEDs and then look for the glowing target tape using a camera and software that processes the video from the camera to find the target pattern.  The processing usually involves filtering the video frames (a frame is an individual picture from the video stream) to find just the target tape (e.g. by eliminating all colors but the color of the LEDs that is being reflected back by the tape), using edge detection algorithms to find the edges and corners of the target tape, and then calculating how to adjust the robot's position to line up with the target.  For example, if the camera is in the center of the robot but the image of the target is left of center, the robot must turn left to properly face the target.
     2
    13[https://first.wpi.edu/FRC/roborio/release/docs/java/ OpenCV] allows you to do sophisticated processing of the received frames using various algorithms to filter the images, detect edges, and more.  Unfortunately, image processing is very CPU intensive and the RoboRIO is not really up to the task.  The $435 [https://forums.ni.com/t5/FIRST-Robotics-Competition/roboRIO-Details-and-Specifications/ta-p/3494658?profile.language=en RoboRIO] has a 667MHz dual-core processor with 256MB of RAM.  For comparison, a $40 [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ Raspberry Pi 3B] has a 1.2GHz quad-core processor with 1GB of RAM or nearly 4x the computing power.  If you try to do much video processing using the RoboRIO, it slows to a crawl and can't perform its other robot-control duties well.
    24
     
    57* [https://www.amazon.com/Raspberry-Pi-MS-004-00000024-Model-Board/dp/B01LPLPBS8/ Raspberry Pi 3B] ([https://www.amazon.com/Raspberry-Pi-MS-004-00000024-Model-Board/dp/B01LPLPBS8 $38]) or 3B+ (note: Raspberry PI 4 is faster, but requires active cooling)
    68* [https://pixycam.com/ PixyCam] ([https://www.amazon.com/gp/product/B07D1CLYD2 $60])
    7 * [https://developer.nvidia.com/embedded/jetson-nano-developer-kit nVidia Jetson Nano] ($100) - which can use [https://www.jetsonhacks.com/2019/04/02/jetson-nano-raspberry-pi-camera/ RPi camera] and has same GPIO pinout as Pi (but w/low-drive capability).
    8 * [https://limelightvision.io/ Limelight 2] ($400)
     9* [https://developer.nvidia.com/embedded/jetson-nano-developer-kit nVidia Jetson Nano] ($100) - which can use [https://www.jetsonhacks.com/2019/04/02/jetson-nano-raspberry-pi-camera/ RPi camera] and has [https://www.jetsonhacks.com/2019/06/07/jetson-nano-gpio/ Pi compatible-ish GPIO connector].  See this [https://www.maketecheasier.com/nvidia-jetson-nano-vs-raspberry-pi/ comparison]
     10* [https://limelightvision.io/ Limelight 2] ($400) - not better than RPi / Jetson Nano, but available off-the-shelf
    911
    10122537 has traditionally used a Raspberry Pi running custom C++ OpenCV software because Java adds enough overhead that it significantly reduces processing resolution/framerates.  The system is described in detail [VisionFramework here].