Changes between Version 37 and Version 38 of VisionFramework
- Timestamp:
- Nov 25, 2017, 12:19:31 PM (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
VisionFramework
v37 v38 6 6 7 7 == Background == 8 In 2015-2017, team 2537 developed a machine vision platform for autonomous targeting and navigation. It was first used successfully during the 2016-2017 season and helped the team reach the finals at the world championship. The vision platform is based on the [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ Raspberry Pi 3] with [https://www.raspberrypi.org/products/camera-module-v2/ camera module] in a [https://www.amazon.com/Distributed-MCM-83-17540-Enclosure-Raspberry/dp/B01KGTD3I0 clear case]. The 2016-2017 version used an [https://www.amazon.com/eBoot-MP1584EN-Converter-Adjustable-Module/dp/B01MQGMOKI MP1584EN power supply] to convert the 12v battery voltage to the 5v required for the machine vision hardware. It also included a transistor switch to allow the Pi to control power to a [http://www.andymark.com/product-p/am-3597.htm green 12v LED light ring]. Communication between the Pi and roboRIO was uni-directional using PWM. 9 10 == Objective == 11 Extend the vision module to make it more accessible to other teams and more user friendly generally. Changes planned for the 2017-2018 season include: 8 From 2015-2017, team 2537 developed a machine vision platform for autonomous targeting and navigation. It was first used successfully during the 2016-2017 season and helped the team reach the finals at the world championship. The vision platform is based on the [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ Raspberry Pi 3] with [https://www.raspberrypi.org/products/camera-module-v2/ camera module] in a [https://www.amazon.com/Distributed-MCM-83-17540-Enclosure-Raspberry/dp/B01KGTD3I0 clear case]. The 2016-2017 version used an [https://www.amazon.com/eBoot-MP1584EN-Converter-Adjustable-Module/dp/B01MQGMOKI MP1584EN power supply] to convert the 12v battery voltage to the 5v required for the machine vision hardware. It also included a transistor switch to allow the Pi to control power to a [http://www.andymark.com/product-p/am-3597.htm green 12v LED light ring]. Communication between the Pi and roboRIO was uni-directional using PWM; the PWM duty cycle represented the angle for the robot to rotate to be perfectly aligned with the target (the gear peg in Steamworks). Many lessons were learned including: 9 * Mount the vision system securely, the more it moves relative to the robot, the less accuracy it will deliver 10 * Don't try to use vision while the robot is driving, the vibration makes the images move too much 11 * Protect your vision module from collisions: we used a custom polycarbonate shield 12 13 == 2017-2018 Objectives == 14 Extend the vision module software to make it more accessible to other teams and more user friendly generally. Changes planned include: 12 15 * Execute a base program on startup that continuously reads the camera feed (subscribes to camera) and publishes corresponding data via the Pi's serial output (located on the Pi's GPIO connector). This data can then be fairly simply read by the RoboRIO. 13 * Replace the 12v monochrome LED ring with a smart Neopixel-compatible 12x RGB LED light ring based on the WS2812 controller. This will allow the module to run entirely from 5vdc and provide teams with the ability to select their light-ring color and even make some fancy light shows. Smart light rings are available from [https://www.adafruit.com/product/1643 adafruit] and [https://www.ebay.com/itm/12Bit-WS2812-5050-RGB-LED-Ring-Strip-Integrated-Drivers-for-Arduino-Module/391717334432 eBay] among other sources. You can read about the neopixels [https://learn.adafruit.com/neopixels-on-raspberry-pi/overview here]. Neopixel control can be achieved using many libraries including [http://diozero.readthedocs.io/en/stable/ diozero]; see also [http://rtd.diozero.com/en/latest/LEDStrips/ here] 16 * Improve processing speed to yield better resolution/frame rate 17 * Replace the 12v monochrome LED ring with a smart Neopixel-compatible 12x RGB LED light ring based on the WS2812 controller. This will allow the module to run entirely from 5v, allow teams to select their light-ring color, and even make fancy light shows. Smart light rings are available from [https://www.adafruit.com/product/1643 adafruit] and [https://www.ebay.com/itm/12Bit-WS2812-5050-RGB-LED-Ring-Strip-Integrated-Drivers-for-Arduino-Module/391717334432 eBay] among other sources. You can read about the neopixel [https://learn.adafruit.com/neopixels-on-raspberry-pi/overview here]. Neopixel control can be achieved using many libraries including [http://diozero.readthedocs.io/en/stable/ diozero]; see also [http://rtd.diozero.com/en/latest/LEDStrips/ here] 14 18 15 19 == Materials == 20 21 === Vision Module === 16 22 * [https://www.amazon.com/Distributed-MCM-83-17540-Enclosure-Raspberry/dp/B01KGTD3I0 Clear plastic case] 17 23 * [https://www.raspberrypi.org/products/raspberry-pi-3-model-b/ Raspberry Pi 3] 18 24 * [https://www.raspberrypi.org/products/camera-module-v2/ Pi camera module w/cable] 19 25 * [https://www.adafruit.com/product/1643 NeoPixel Light Ring] 26 * Qty 3 M-F and qty 3 F-F [https://www.amazon.com/gp/product/B017NEGTXC jumper wires] 20 27 * 8GB or larger Micro SD card 28 === Additional materials needed during development === 21 29 * Usb Keyboard and Mouse (for developing on the Pi) 22 30 * HDMI cable or [https://www.amazon.com/gp/product/B016HL49OS HDMI-to-VGA adapter] (for developing on the Pi) 23 31 * Monitor (that accepts HDMI or VGA input) 24 32 * Micro USB Cable 25 * Qty 3 M-F and qty 3 F-F [https://www.amazon.com/gp/product/B017NEGTXC jumper wires]33 * USB charger capable of supplying 5v at 2A or greater 26 34 27 35 == Raspberry Pi Setup ==