2016 code overview + looking forward to 2017

Slides:



Advertisements
Similar presentations
SATHUNTER Satellite pointing made easy DVB-S2 DVB-S.
Advertisements

Project Title Here IEEE UCSD Overview Robo-Magellan is a robotics competition emphasizing autonomous navigation and obstacle avoidance over varied, outdoor.
Networking By: Matt Motl… Programmer Brent Everson… Programming Mentor.
Sensors For Robotics Robotics Academy All Rights Reserved.
Programming Requirements Last updated Jan 30, 2015, 8:00PM.
Jordan Hodge Jordan Lyford Wilson Schreiber.  Background  Problem Statement  Solution  Software 2.
Pet Bot Overview Design Pitch. Pet Bot Overview Overview of Use Cases Laser / LED Pointer Speaker Sound Play Ball Treat Dispenser.
Wireless Surveillance Vehicle Lance P. Riegert Rodrigo A. Urra Steve C. Wilson September 18, 2007Wireless Surveillance Vehicle1 of 20 Senior Design Project.
I-SOBOT SOCCER Padmashri Gargesa Intelligent Robotics I I (Winter 2011)
1 ©2006 INSciTE Lab Two Task: Make the program from Lab One (Move forward 5 rotations and turn right 90 degrees) into a MyBlock.
Introduction to the Flip Camera Created by Xaras Collins-Brown Wallingford-Swarthmore School District Department of Instructional and Informational Technology.
2012 Beta Seminar 694 Software Engineering. Overview WPILib ▫Command-based programming ▫NetworkTables ▫SmartDashboard ▫Preferences ▫Laptop-based vision.
Trimble GCS900 Dual Antenna System Why Trimble uses a Dual Antenna Solution and why it is the better solution?
An Objective and Component View (Not included Drive: Balance and Turret: Axis Camera)
Juan David Rios IMDL FALL 2012 Dr. Eric M. Schwartz – A. Antonio Arroyo September 18/2012.
Technical Writing for Robotic Coding!.  du/products/teaching_robotc_cort ex/fundamentals/introtoprogramm ing/thinking/videos/fundamentals.
Mecanum Omnidrive: What is it, how we did it and how well it worked
Session 11 Intro to FRC API.
Electronics and Controls
Cr yptonite robotics labview beta findings December 19, 2015.
Team 5282 Durand, MI - Railroaders. Field Layout Field Dimensions: 26 ft 7in * 54ft 1in Courtyard: 16 ft 2 in Alignment line measured 11 ft from castle.
Team 1617: Autonomous Firefighting Robot Katherine Drogalis, Electrical Engineering Zachariah Sutton, Electrical Engineering Chutian Zhang, Engineering.
Team 1617: Autonomous Firefighting Robot Katherine Drogalis, Electrical Engineering Zachariah Sutton, Electrical Engineering Chutian Zhang, Engineering.
This information is confidential and is not to be provided to any third party without Vicon Industries Inc.’s prior written consent. 1 Plug and Play NVR.
What is TETRIX? If you can dream up a robot design, you can build it with the TETRIX Robotics Design System.
LEYARD DIRECTLIGHT LED VIDEO WALL SYSTEM
Robotics Education & Competition Foundation
iPhones and iPads and iTunes, Oh My!
OpModes in FTC Eric Golde.
VEX IQ Curriculum Smart Machines Lesson 09 Lesson Materials:
What’s new and What’s coming Guy Arazi: Director of Products
ELECTRONIC THROTTLE CONTROL SYSTEM
Computer Simulation with Flight Simulator X
ROBOTC for VEX On-Site Professional Development
Module 2 Controlling a Lego EV3 Robot
Pulse Width Modulation (PWM) Motor Feedback - Shaft Encoder
ADVANCED BRAIN Training
Review and Ideas for future Projects
Programming Design ROBOTC Software Computer Integrated Manufacturing
Programming Part 2 Mod Kit
Capture your life like a movie!
Robotics Getting Started with
CS 7455 Term Project Robot control by Machine learning
Salevich Alex & Frenkel Eduard Wizard Hunting
CIS 488/588 Bruce R. Maxim UM-Dearborn
Trainings 10/28 Woooooo!!.
Machine Vision in FIRST Robotics
SIMPLE & OPTIMIZED ULTRASONIC WALL FOLLOW
SIMPLE & OPTIMIZED ULTRASONIC WALL FOLLOW
Burning Skies 2d Game by Nick Rebain.
Learning Outcomes List all Edison’s Sensors and actions
Filming with two cameras
SATHUNTER Satellite pointing made easy DVB-S2 DVB-S.
Yucaipa Photography Camera Club Workshop #1.
AdQ is Azure-Powered Pre-Roll Ad Management Software That Improves Pre-Roll Ad Performance, Increases Profits, and Optimizes User Experience MICROSOFT.
Training 11/11/16 Robot Code (WPILib).
Automation and Programming
Field Management System
Your code is not just…your code
Secretary of State Machines
20 camera parts of the Canon Rebel T3i
In the land of the blind, the one eyed man is king
Which way does the robot have to turn to get to the charger?
Advanced LabVIEW
Programming Design ROBOTC Software Principles of Engineering
Exploring Computer Science Lesson 6-11
Maker Education Manipulator
The Weekly Roar Edition 6 Weekly Focus Robot Status
Your code is not just…your code
AN INEXPENSIVE ROBOTIC KIT FOR CHILDREN EDUCATION
Presentation transcript:

2016 code overview + looking forward to 2017 Software 2016 code overview + looking forward to 2017

Overview Misc. 2016 code 2016 auto 2016 vision Vision in 2017

Miscellaneous - 2016 code We program with command based C++ We used navX-MXP for heading 8 motors 16 DIO ports https://github.com/4917EDSS/2016Repo

Auto A LOT of options in auton Could cross low bar, rough terrain, rock wall, ramparts, moat in auto Could shoot from position 1, position 2 (left or center shot), position 3 (center or right shot), position 4, and position 5 35 valid options Separated into 2 parts

Auto Code for crossing each defense Each defense crossing ends with back bumper aligned with defense From there, your shooting code can depend only on your position (not the defense crossed)

Auto - code autoDefenceOptions = new SendableChooser(); autoDefenceOptions->AddDefault("Do Nothing", new AutoDefaultGrp()); autoDefenceOptions->AddObject("Low Bar Defence", new AutoLowBarGrp()); autoDefenceOptions->AddObject("Ramparts Defence", new AutoRampartsGrp()); autoDefenceOptions->AddObject("Moat Defence", new AutoMoatGrp()); autoDefenceOptions->AddObject("Rock Wall Defence", new AutoRockWallGrp()); autoDefenceOptions->AddObject("Rough Terrain Defence", new AutoRoughTerrainGrp()); autoLocationOptions = new SendableChooser(); autoLocationOptions->AddDefault("Do Nothing", new AutoDefaultGrp()); autoLocationOptions->AddObject("Position 1 (Low Bar)", new AutoPosition1ShootGrp()); autoLocationOptions->AddObject("Position 2", new AutoPosition2ShootGrp()); autoLocationOptions->AddObject("Position 2 SHOOT LEFT", new AutoPosition2ShootLeftGrp()); autoLocationOptions->AddObject("Position 3", new AutoPosition3ShootGrp()); autoLocationOptions->AddObject("Position 3 SHOOT RIGHT", new AutoPosition3ShootRightGrp()); autoLocationOptions->AddObject("Position 4", new AutoPosition4ShootGrp()); autoLocationOptions->AddObject("Position 5", new AutoPosition5ShootGrp());

Vision - what we used it for Based on the position we saw the goal at, we could Adjust our turret left or right based on how far left/right we saw the goal Adjust our hood up or down to change release angle based on how high/low we saw the goal

Vision - what we wish we knew First time doing vision, basic tips Need ultra low exposure in addition to LEDs around camera (do this first, simplifies a LOT) Create a portable vision replica to tune with at competitions - Windsor Best to have second form of feedback on what vision controls (us: turret encoders) Camera needs to be on a mount that is impossible to warp (includes what mount itself mounts to) Mount camera to center if at all possible Reduce number of things you control with vision (up/down was unnecessary)

Vision - camera selection Started with standard Microsoft Lifecam HD-3000 Issues with autofocusing - solution required surgery Issues with keeping exposure low Ended up going with Axis M1011 camera Fixed focus Exposure settings worked Harder to mount Requires network config (much more painful than USB in FRC)

Vision - processing Decided on using a new program designed for FRC called GRIP Super simple way of creating vision pipeline

Vision - pipeline

Vision - on roboRIO First, we installed Java on the roboRIO GRIP then had a “deploy” option Takes current pipeline, turns it into Java process Automatically starts Java process on boot of roboRIO As seen in previous pipeline, GRIP pushes data to NetworkTables NetworkTables can be accessed within robot code std::shared_ptr<NetworkTable> gripTable = NetworkTable::GetTable("GRIP/myContoursReport"); std::vector<double> WidthArray = gripTable->GetNumberArray("width", llvm::ArrayRef<double>());

Vision - evaluating For the most part, we are quite happy with it Scored a good number of goals, did really well in auto Controlled on 2 axis GRIP was relatively simple, worked well without coprocessor Large delay from camera to robot reaction (0.5-1s) = slow shot Vision was very susceptible to being thrown off Vision was a separate program we needed to wait to start up Switching from practice bot -> real bot require many hours of recalibration

Vision in 2017 GRIP was a pilot project in 2016 GRIP has been a major focus of 2017 updates Deploy as a Java app now deprecated Replaced by “generate code” - will generate C++, Java, or Python OpenCV code This code will be directly callable by your robot program Gets around pain of installing Java, ensuring the NetworkTables are being published before the game starts Will be a lot more lightweight, most likely faster If we decide to use vision in 2017, we will be most likely be using this https://wpilib.screenstepslive.com/s/4485/m/24194/l/674733-using- generated-code-in-a-robot-program

Questions