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
Inspire Award By Tycho, Jayesh, Lin, Omar, Max, Darshan, Evan, Ethan, Janavi, and Charlotte
1st Place at North Texas Regional Championship Iron Reign members left to right are Ethan Helfman (Build, Communications), Janavi Chada (Programming, Communications), Tycho Virani (Programming Lead, Main Driver), Jayesh Sharma (Business Lead, Build, Communications), Darshan Patel (Build), Lin Rogers (Communications Lead, Logistics, Business) and Charlotte Leakey (Programming, Logistics), with Evan Daane (from BTW, Build, Photography) in repose. Not shown: Max Virani (Design Lead, Programming), Omar...
Read More
Return to Machine Vision By Tycho
Task: Prepare to reintegrate machine vision A year and a half ago while the new Android-based platform was still in pre-launch, we were the first team to share a machine vision testbed on the FTC Forums . That color-blog tracker was implemented with OpenCV on Android, but with a different low-level control system and robotics framework. Then we integrated OpenCV into our implementation of ftc_app, which was in turn based on the great...
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
Combining TeleOp and Autonomous By Tycho
Task: Combine TeleOp and Autonomous code Today, I combined the autonomous and teleop so that we can demo both more easily. As well, during testing, we now can switch between them seamlessly so that our testing is power. The most important part of this code is that we can configure the autonomous before we launch - telling the robot how many balls we have, how many to shoot, what side the robot is on, and...
Read More
Autonomous Setup Options By Tycho
Task: Create a basic autonomous Autonomous is one of the things that we tend to be weak on every year, and this year, we really want to get to super-regionals. So, to start off this year's autonomous, we first mapped out a potential path for the robot on the field. We then followed up with programming, using our previous methods like driveForward and driveCrab. So now, we have a basic autonomous program in which we can...
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
Making a Ports Map By Omar and Jayesh
Task: Create a list of motors/servos and what ports they're connected to
Very often, when we disconnect a motor or servo (maybe on accident), we forget what port we got it from. This even happened to us today when we unplugged the servo that lifts the trough. Because of this hassle, we decided to write out a list of all the motors and servos on our robot and what...
Read More
A Presentation for the Ages By Ethan, Jayesh, Max, Tycho, Lin, Omar, Evan, Alisa
Task: Work on our presentation to the judges Our main weakness in previous years had been our presentation. This year, we plan to change that. When our team was solely FLL, we practiced our presentations beforehand, so, we're applying that to this year. We've done 2-3 presentations so far and it seems it really helps us. As well, we're making a powerpoint presentation to assist us, giving us information we might forget and providing a visual...
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
Starting Color Blob Detection By Omar, Max, Tycho
Task: Implement color blob detection on the robot for detecting beacons Even though this was very long overdue, we now have a way to turn towards a certain color similar to what Argos does. What we're basically doing is calculating the angle that the robot is off-center of the blob it's tracking, and letting it correct for the error and straighten up with our PID code that's already in place. Right now, it doesn't actually move backwards and forwards, only turn on its axis,...
Read More
Scrimmage at Greenhill By Darshan, Alisa, Omar, Lin, Max, Tycho, Evan
Task: Practice with other teams and see This past Friday, the team tried to get the robot working in a small scrimmage with seven or so other teams. At the scrimmage, we managed to get our cow-catcher working, even though we nearly burned out our servo. During the process of finding the right positioning and testing it while driving we managed to tear up quite a few rubber inserts on our treads. Even though the scrim was scheduled to...
Read More
Autonomous Coding By Dylan and Tycho
Task: Updating and Working on Autonomous Code Today we continued working on the code involved for the first ten seconds of motion in the tournament known as autonomous. In this period we hope to reach the other side of the field towards the Res-Q beacon to dump our figures from the beginning and then trying to go as high as we can up the mountain. We coded this using our IronDem and the Pose classes to calculate the range and angle of our current...
Read More
Driving That Robot By Evan, Darshan
Task: To try out the robot in a competition setting VIDEO Last weekend Darshan and I tried to drive the robot in a small scrimmage with eight other teams. Even though we hit a few bumps along the competition we were able see how the robot drove and handled. We also saw what we could do easily and what was hard for us. Among the bumps was an incident involving a tread falling off the track because we hit...
Read More
Meeting other Teams at the Scrimmage By Lin, Omar, Darshan, Jayesh, Tycho, Max, Evan
Task: Get a feel for where we are and the progress of other teams Whether or not we were allowed to compete, we felt that it would be worthwhile to go to the scrimmage, if only to see how we compared to other teams. Climbing the mountain is the hardest mechanical design challenge so far, and we were able to see their solutions.
Reflections Many teams had treads like ours, with different arrangements of idlers, while...
Read More
Starting up our Autonomous Code by Jayesh, Tycho, Max
Task: Get started on autonomous coding We spent some of the time at the scrimmage today starting up our autonomous code in android studio. The main basis of our coding was put around climbing the ramp, which is our main function of our robot without the rest of the hardware in place. The main point of the code was put around PID and Pose, as PID helped give us our position on the field and Pose helped in giving our heading.
Reflections ...
Read More
Writing Pose By Max and Eliot
Task: Create a rough draft of the code for the Pose class Starting just a few weeks into the competition year, we thought up ideas for a system of classes to allow the robot to navigate to a location on the field on its own, including the Pose class, which we would use to keep tabs on where the robot was on the field at any particular time. With this, it would be possible to...
Read More
Coding for Autonomous Pilot Program By Tycho and Dylan
Task: Program Pilot Code Our task was to begin programming for our first version of the Pilot class of the robot using other classes for our angle, position, and controller that we created. The controller class known as PID controller used part of the controller set given to us from the repository but was recalibrated to be in terms of time and independent of all else. This we need to integrate in our pilot class which we will use to tie all programs...
Read More
Before Scrimmage basic tests By Lin, Tycho, Omar, Max, Darshan
Task: make sure the robot can run There's a scrimmage next Saturday that we may or may not be going to based on Dallasisd technicalities with our team. Our goals for today were to get a basic autonomous going to dump climbers and maybe some mountain climbing tests. However, the controller apps needed to be updated and we got a lot of errors when connecting.
Reflections If the controller gives an error mentioning "USB UART" apparently the only fix is to...
Read More
Labor Day Meeting By Lin, Jayesh, Darshan, Alisa, Omar, Max, Tycho
Task: Learn about OpModes Today, we reviewed opmodes in the FTC API and how to register new opmodes. We also learned about the differences between regular, linear and synchronous (from SwerveRobotics) opmodes.
Task: Review Blogs/Journal Our Blog == our Journal. What we also did today was quickly review how to create blog entries so we can do that more frequently this year. We also tried to catch up on our lengthy backlog of journal articles. We were very busy...
Read More
Field Navigation Speculation By Max
Task: Determine necessities of this year's field navigation code Today was our very first meet of the year, and as such, not too much got done other than planning and experimentation. For the greater part of the meeting, I worked on concepts for an overhauled field navigation system (Mostly for autonomous, but possibly for tele-op as well). This would include the robot knowing where it is on the field when it starts, the field's and its own dimensions, the locations...
Read More
Overview of new hardware and software By Max,Tycho,Lin,Alisa,Ethan,Trace
Task: Getting a first glimpse at the new motors and controllers with Imperial robotics We continued our meeting at the Dallas Makerspace after the GitHub tutorial. We unpackaged the new motors and motor controllers for the first time and took out the phones to scan the hardware configuration. We added Anderson Power poles to some of the motors. Lin taught Alisa and Ethan how to crimp wires and attach the power poles.
Reflections Scanning the hardware configuration was very troublesome...
Read More
PID By Tycho
Task: What is PID? PID is useful in many ways, such as setting an arm to a certain position, going straight based on a gyro or following a line. There are three parts to a PID control program : Proportional, Integral and Derivative.
Proportional : How much error is there? The proportional part of PID is useful because it tells you how far away you are from your target value, so you know how fast you should go to correct it.
...
Read More