- Tinkerboard Image
- Make sure you use version 2.0.8! v1.8 doesn't work with some USB cameras (nor the Kinect) due to a kernel problem.
- Raspberry Pi
2. Flash the image onto a microsd card using etcher: https://etcher.io/
- You will need to grab the .img file from the zip. The .img file is what you give to etcher.
- After complete, insert the microSD card and startup the coprocessor. It may take a minute or two.
- On Mac/Linux, use
ssh username@hostname - On Windows, download puTTY and use that.
- Tinkerboard:
- Hostname:
tinkerboard, Username:linaro, Password:linaro
- Hostname:
- Raspberry Pi:
- Hostname:
raspberrypi, Username:pi, Password:raspberry
- Hostname:
wget --no-check-certificate -qO - https://github.com/CurtinFRC/2019-DeepSpace/blob/master/vision/bootstrap.sh?raw=1 | bash
6. Run ./gradlew :vision:deploy (./gradlew :vision:deploy -Praspberry for the Raspberry Pi) to deploy your code!
- Variables are passed over via NetworkTables to the roborio and in turn can be accessed via shuffleboard
- These Tables are located in the
VisionTrackingtable, and includeHatchTracking&TapeTracking
-
The
TapeTrackingTable Located inTapeProcessing.cppincludes the following entries: -
Distance,AngleandTarget -
DistanceIncludes the Distance in meters -
AngleProvides the Angle in Degrees -
And
TargetGives the X offset in pixles -
The
HatchTrackingTable Located inHatchProcessing.cppincludes the following entries: -
Hatch X offsetWhich gives the offset from the X axis -
Hatch Y offsetWhich gives the offset from the Y axis -
Distance can be provided as well via the
Hatch DistanceBut is currently unavailable, and realisticly is not requried -
Both cameras work off of the same process, and can be switched between either
Tape Processing/Tape TrackingorHatch Processing/Hatch Tracking, the exposure for both cameras are lowered to extreme mesures while inTape Trackingmode. While inHatch Trackingmode the exposure is increased to a normal level. It is recommended that you provide both camera streams to shuffleboard and leaveHatch Trackingmode on while you drive, giving the drivers extra views. -
To switch which process is wanted at the time, a boolean is given and named
_useTapelocated inProcessController.cpp on line 19. and is sent via NetworkTabled to the roborio. The default state istrue.
- Normal Debug should be done before all else, but to take out the bulk processing of the code, both
Hatch&Tapeprocessing have a debug line inHatchProcessing.cpp/TapeProcessing.cpp on line 67 & 43which when put in should give a threshold output, This gives info if the program is getting images and processing them correctly.
- The Code still technicaly has ball processing which gives an X and Y offset,
- But it's not tested and is Not really a priority. You will need to provide the code in main, and set up NetworkTables for it. It can be done... But it's not recommended
- In extreme emergencies when all SD cards have been used in one day and you don't have access to ethernet or monitors ect. And you need fresh files, you can get them off of this repo:
https://github.com/CJBuchel/CurtinFRC_TinkerBoard_Imageor clone link viahttps://github.com/CJBuchel/CurtinFRC_TinkerBoard_Image.gitFollow the instuctions in the git repo discription and copy those files over to the SD card and deploy your code to it. Jank i know, but it's emergency uses only. i swear :)