Labelling Minerals - CNN By Arjun and Abhi
Task: Label training images to train a Neural Network
Now that we have software to make labeling the training data easier, we have to actually use it to label the training images. Abhi and I split up our training data into two halves, and we each labeled one half. Then, when we had completed the labeling, we recombined the images. The images we labeled are publicly available at
Read More
CNN Training Program By Arjun and Abhi
Task: Designing a program to label training data for our Convolutional Neural Network
In order to use the captured training data, we need to label it by identifying the location of the gold mineral in it. We also need to normalize it by resizing the training images to a constant size, (320x240 pixels). While we could do this by hand, it would be a pain to do so. We would...
Read More
Autonomous Path Planning By Abhi
Task: Map Autonomous paths With the high point potential available in this year's autonomous it is essential to create autonomous paths right now. This year's auto is more complicated due to potential collisions with alliance partners in addition to an unknown period of time spend delatching from the lander. To address both these concerns, I developed 4 autonomous paths we will investigate with to use during competition.
When making auto...
Read More
CNN Training By Arjun and Abhi
Task: Capture training data for a Convolutional Neural Network
In order to train a Convolutional Neural Network, we need a whole bunch of training images. So we got out into the field, and took 125 photos of the sampling setup in different positions and angles. Our next step is to label the gold minerals in all of these photos, so that we can train a Convolutional Neural Network to label the...
Read More
Vision Discussion By Arjun and Abhi
Task: Consider potential vision approaches for sampling Part of this year’s game requires us to be able to detect the location of minerals on the field. The main use for this is in sampling. During autonomous, we need to move only the gold mineral, without touching the silver minerals in order to earn points for sampling. There are a few ways we could be able to detect the location of the gold mineral.
...
Read More
Rover Ruckus Brainstorming & Initial Thoughts By Ethan, Charlotte, Kenna, Evan, Abhi, Arjun, Karina, and Justin
Task: Come up with ideas for the 2018-19 season So, today was the first meeting in the Rover Ruckus season! On top of that, we had our first round of new recruits (20!). So, it was an extremely hectic session, but we came up with a lot of new ideas.
Building
A One-way Intake System This suggestion uses a...
Read More
Replay Autonomous By Arjun
Task: Design a program to record and replay a driver run
VIDEO
One of the difficulties in writing an autonomous program is the long development cycle. We have to unplug the robot controller, plug it into a computer, make a few changes to the code, recompile and download the code, and then retest our program. All this must be done over and over again, until the...
Read More
Position Tracking By Abhi
Task: Design a way to track the robot's location During Relic Recovery season, we had many problems with our autonomous due to slippage in the mecanum wheels and our need to align to the balancing stone, both of which created high error in our encoder feedback. To address this recurring issue, we searched for an alternative way to identify our position on the field. Upon researching online and discussing with other teams, we discovered an...
Read More
Swerve Drive Prototype By Abhi and Christian
Task: Build a Swerve Drive base Over the past week, I worked with Christian and another member of Imperial to prototype a drive train. Due to the limited resources. we decided to use Tetrix parts since we had an abundance of those. We decided to make the swerve such that a servo would turn a swerve module and the motors would be attached directly to the wheels.
Immediately we noticed it was...
Read More
Swerve Drive Experiment By Abhi
Task: Consider a Swerve Drive base Last season, we saw many robots that utilized a swerve drive rather than the mecanum drive for omnidirectional movement. To further expand Iron Reign's repertoire of drive bases, I wanted to further investigate this chassis. Swerve was considered as an alternative to swerve because of its increased speed in addition to the maneuverability of the drive base to allow for quick scoring due to its use of traction wheels at...
Read More
Autonomous Updates, Multiglyph Part 2 By Abhi, Karina, and Tycho
Task: Develop multiglyph for far Stone We had a functional autonomous for the balacing stone close to the audience. However, chances are that our alliance partner would want that same stone since they could get more glyphs during autonomous. This meant that we needed a multiglyph autonomous for the far balancing stone. We went on an adventure to make this happen.
We programmed the robot to drive...
Read More
Autonomous Updates, Multi-glyph By Abhi
Task: Score extra autonomous glyphs At super regionals, we saw all the good teams having multi glyph autonomi. In fact, Viperbots Hydra, the winning alliance captain, had a 3 glyph autonomous. I believed Iron Reign could get some of this 100 point autonomous action so I sat down to create a 2 glyph autonomous. We now have 3 autonomi, one of which is multiglyph.
I made a new methods called autonomous3(). For...
Read More
Importance of Documentation By Abhi and Tycho
Task: Explain commits As explained in a previous post, we were having many issues with git commits and fixing our errors in it. After a lot of the merging conflicts, we had to fix all the commits without exactly knowing what was being changed in the code. Part of the reason this was so hard was our lack of good naming conventions. Though we always try to make a title and good...
Read More
Controller Mapping By Janavi
Task: Map the controller layout At this point, we are training the next generation of the drivers on our team, and since we have so many buttons with so many different functions it can often become difficult for the new drivers to determine which button does what, so Karina and I created a map of the controller. By doing this, we not only assist others in determining what button they need to press to do...
Read More
Kraken LED Modes By Tycho and Janavi
Task: Attach and Code LEDs We added LED's to Kraken's base. After that, we coded the lights to change color depending on which mode we are in. Though a small addition, it helps take stress off of our drivers. By glancing at the robot, they can immediately tell what mode we're in and can adjust accordingly. It also keeps us from making an crucial mistakes like activating our autonomous for blue...
Read More
Control Award Updates By Janavi
Task: In the past few months we've made a lot of improvements and updates to our robot and code. For example, we changed our gripper system again; it now includes an internal which makes it easier to despite out collected glyphs into the cryptobox. So we have decided to update our control award submission to reflect these changes.
Autonomous Objective: Knock off opponent's Jewel, place glyphs in correct location based on...
Read More
Robot Drive Team By Charlotte, Tycho, Karina, and Evan
Task: Build a solid drive team. One of the leading problems Iron Reign faces is our ability to allot time to effective driving practice. Driving practice is essential for our success in the robot game, but it is sometimes difficult to find time to practice due to other team members working on various robot improvements. We have created two different drive teams, a main team and a backup team, so that despite...
Read More
Control Award By Janavi
Task: Last Saturday, after our qualifier, we had a team meeting where we created a list of what we needed to do before our second qualifier this Saturday. One of the tasks was to create the control award which we were unfortunately unable to complete in time for our last competition.
Autonomous Objective: Knock off opponent's Jewel, place glyphs In correct location based on image, park in safe zone (85 pts) Park...
Read More
Drive Practice By Karina, Charlotte, and Abhi
Task: Become experts at driving the robot and scoring glyphs Iron Reign’s robot drivers Abhi, Charlotte, and I, have been working hard to decrease our team’s glyph-scoring time. The past few meets, we have spent many hours practicing maneuvering on the field and around blocks, something that is crucial if we want to go far this competition season. When we first started driving the robot, we took approximately 4 minutes to complete a single...
Read More
Code Fixes and Readability By Tycho
Task: Make the code more readable
So, we can't include all the code changes we made today, but all of it involved cleaning up our code, removing extra functions we didn't use, refactoring, adding comments, and making it more readable for the tournament. We had almost 80k deletions and 80k additions. This marks a turning point in the readablity of our code so that less experienced team members can read it....
Read More
Driving Struggles By Abhi
Task: Drive the Robot Today we tried to drive the robot on the practice field for the first time since the qualifier last Saturday. However, we couldn't get in very much quality drive practice because the robot kept breaking down. We decided to dig a bit deeper and found some issues.
As seen above, the first thing that was wrong was that the lift was tilted. Due to the cantilever orientation of the...
Read More
Adding Code Fixes to the Robot By Tycho
Task: Add code updates
These commits add said functionality:
Pre-game logic - joystick control Fix PID settings Autonomous resets motor Jewel Arm functionality Autonomous changes Tests servos These commits allow better QoL for our drivers, allow our robot to function more smoothly both in autonomous and during TeleOp, allows us to score the jewels, and lets us test servos.
Jewel Arm ...
Read More
Working on Autonomous By Tycho
Task: Create a temporary autonomous for the bot We attempted to create an autonomous for our first scrimmage. It aimed to make the robot to drive forward and drive into the safe zone. However, we forgot to align the robot and it failed at the scrimmage.
Instead of talking about the code like usual, the code's main functions are well documented so that any person can understand its functions without a prior knowledge of...
Read More
Machine Vision Goals – Part 1 By Tycho
We’ve been using machine vision for a couple of years now and have a plan to use it in Relic Rescue for a number of things. I mostly haven’t gotten to it because college application deadlines have a higher priority for me this year. But since we already have experience with color blob tracking in OpenCV and Vuforia tracking, I hope this won’t be too difficult. We have 5 different things we want to try:
VuMark decode – this is obvious since...
Read More
Testing Materials By Austin, Evan, and and Tycho
Task: Test Materials for V2 Gripper Though our current gripper is working sufficiently, there are some issues we would like to improve in our second version. The mounting system is unstable and easily comes out of alignment because the rev rail keeps bending. Another issue we've encountered is the cervo pulling the grippers so that they begin to cave inwards, releasing any blocks being held at the bottom. By far the biggest problem is...
Read More
PID Calibration and Testing By Tycho
Task: Allow user to change PID coefficients from the controller To allow each user to create their own settings, we're designing a way to allow the user to tune PID to their own liking from the controller. This also enables debugging for our robot.
public void Read More
Balancing and PID By Tycho
Task: Test and improve the PID system and balance code We're currently testing code to give Argos a balancing system so that we can demo it. This is also a test for the PID in the new REV robotics expansion hubs, which we plan on switching to for this season if reliable. Example code is below.
Read More
OpenCV By Ethan and Tycho
Task: Implement OpenCV in autonomous
Last year, we had some experience with OpenCV to press the beacons, and this year we decided to do the same. We use OpenCV to find the color we are looking for on the beacon in conjunction with Vuforia. First, it detects the search pattern in the view with vuforia, then isolates that area and finds the side of the beacon with the correct color. Our code is...
Read More
Vuforia By Janavi and Tycho
Task: Use Vuforia to enhance autonomous
We use Vuforia and Open CV vision to autonomously drive our robot to the beacon and then click the button corresponding to our team's colour. We started this by getting the robot the recognize the image below the beacon and keep it within its line of vision. Vuforia is used by the phone's camera to inspect it's surroundings, and to locate target images. When images are located, Vuforia...
Read More
Robot Drive Team By Charlotte, Tycho, Karina, and Evan
Task: Build a solid drive team.
One of the leading problems Iron Reign faces is our ability to allot time to effective driving practice. Driving practice is essential for our success in the robot game, but it is sometimes difficult to find time to practice due to other team members working on various robot improvements. We have created two different drive teams, a main team and a backup...
Read More
Mapping Out Autonomous By Janavi, Tycho, Omar, Evan, and Darshan
Task: Mapping Out Autonomous
To tell the robot how far to move forward we had to calculate our motors RPM. We did this by telling the robot move to 10 rotations forward and calculating how far it travelled. After he RPM we created a model field upon which we designed a set path for the robot during autonomous. One path for red and then one for blue....
Read More
Fixing Faulty Encoder By Tycho and Jayesh
Task: Fix a faulty encoder on our robot
VIDEO
This shows a test of our encoder issues. It might have been a month ago that we noticed a strange behavior in our autonomous code when the robot was moving forward at low speed. It would curve to the right when we were telling it to go straight. We probably would have noticed the problem...
Read More
Mecanum Driving By Tycho
Task: Code driving under mecanum wheels Today, I wrote the whole code for controlling our mecanum wheels. It is entirely fron scratch, and works perfectly right off the bat. This code allows us to strafe, move backwards and forwards, and rotate, in one method.
Reflections We still have a lot of coding to do, as we're currently working on a particle-launching system. As well, we need to consider autonomous soon.
...
Read More
Programming our New Robot By Tycho, Lin, Ethan, and Jayesh
Task: Program our new mecanum wheel driving platform
VIDEO
Now that our new robot has been built with a mecanum wheel platform, we can start write our drive code and figure out how to make our robot preform three basic motions: forwards and backwards, side-to-side and to rotate. We decided that, in order to get the best understanding of our robot,...
Read More
Hoverboards and PID By Lin, Omar, Darshan, Tycho, and Max
Task: Continue with the Hoverboard and tweak PID After the long weekend last week, today was a reasonably relaxed practice. We decided that we could work on anything, as long we stayed focused. The two main foci were the -Robot on a Hoverboard- and fine tuning our PID for autonomous.
Reflections We experimented with balancing the robot more evenly on the hoverboard to keep it on a straight path...
Read More
The Double-Wide Experiment By Jayesh, Max, Dylan, and Evan
Task: Strengthen our tape-measure climber against folding and sideways forces Our tape measure is constantly under stress, which usually isn't a big problem if the driver is positioned with a straight 90 degree angle, but when twisted can result in cracks.
While our tape-measure design worked decently at our competition last week, with multiple mid zone scores and one high zone score, we are going to need more consistency to be a valuable ally in our matches. At...
Read More
Functions of our controller By Alisa, Ethan, Trace
Task: Listing out the functions of our game controller In order to find a button for our argos mode drive, we made a rough draft of our game controller listing the functions of each button. For example, the 'X' button is for the churo climb, the 'A' button is for our beater to stop, etc. We had about 5 unused buttons so in the end, we decided on using the top left button for argos mode drive. Now that...
Read More
Control Scheme By Darshan, Lin, Tycho, Max, Jayesh, and Omar
Task: Test Autonomous and debugging Today we were refining our ramp autonomous by debugging the gyro code. We found that our "goYonder" and "goBackward" method were affecting each other which was making our robot work incorrectly and just going crazy.
Reflections: Our approach to fixing our autonomous has yielded some promising results. When we started practice the autonomous code only worked every other time, failing when we compiled for the first time per connect and...
Read More
Control Scheme By Jayesh
Task: Assign control scheme to actual competition controller Referencing the earlier article explaining robot functions needing to be assigned buttons, we had a meeting to get the control scheme actually implemented into the controllers. The picture above displays the majority of the control scheme. Some values were changed such as the ski lift values.
Reflections: With our control scheme now advancing to the testable stage, we now have the ability to alter values and fpcus on the controls of possible future attachments...
Read More