Objective: Improve the intake to grab without the wall
Solutions: Increase frictional force to grab, increase opening to grab
Tasks: Develop a roller with higher traction, apply more rubber bands to squeeze ball, replace Bucky Ball tank tread with chain to allow the ball to settle into the intak
Problems: applying more rubber bands was difficult due to accumulated force
Result: Objective failed. Though we got extremely close, the intake needs the wall to grab a large ball
We agreed that today was the last day we spend on majorly improving the intake. Though we maintained our magic intaking ability, we couldn’t consistently grab the large balls without the field perimeter. We attempted grabbing the large ball around 15 or so times, but in the end, we only grabbed the large ball once without the wall. We first tried replacing the bucky ball tank tread with chain. We noticed that the bucky ball intake’s tread would rub against the large ball, creating a bit of tension on the surface, creating a bit of force to push the ball out. By adding the chain, we realize we could improve on both the bucky ball intake and the large ball grabbing. With this, the magic intake would allow more gaps for the ball to enter the intake, increasing grabbing range, but with the new space, large balls could enter the intake more easily. We inserted the chain onto the robot and noticed that it had little to no effect on the magic intake, however, large balls got a bit deeper into the intake. Because we saw this as progress, we decided to keep the chain. We then tried changing the tower rollers. We looked back to UVM, and noticed that they trimmed their tank tread so less plastic would rub on the large ball. Rather than copying that, we took the more economic approach of applying screws on the sprocket, and using these screws to hold onto the rubberbands. Because of this, we could get a similar tread pattern. With this addition, the ball got even further into the intake, but we still couldn’t grab it. After this, we then tried adding more rubberbands to the large ball hinges. This would increase the grabbing force, increasing the traction. When we did this, the ball went in! However, when we tried it again, it didn’t work. We repeated the tests and eventually gave up. We tried to see if we could widen the intake, but due to the size of the drivetrain, all changes failed. Looking back however, because we didn’t use the tank tread, the rollers are circular, rather than jagged like UVM. If we figure out how to make this more jagged, the design could grab without the wall. Also looking back, we noticed that the magic intake tends to work best when it was slightly lower. Because of this, we could have lowered the bucky ball intake and maintained the large ball intake’s height to improve grabbing.
After making these tweaks, and as the end of the meeting approached, we attached the storage from last competition into the intake. The intake grabbed perfectly well, but sometimes the bucky balls would get stuck on the mounting channel, and we would be forced to shake the robot to drop the buckies.
In addition to this, we changed the gear ratio of the funnels to more torque. We changed the gear ratio to prevent the intake from catching onto the funnels, but also to maintain its position during a match. True, this does make the system slower, but we can now run the motors at full power to make up for some of the loss in speed. We can also start opening the funnels earlier.
Objective: Finish Mechanics
Problem: Turning is bad
Solution: Center the gravity along the turning scrub
Task: Move the back wheels more forward
Result: Completed the objective. Turning is much smoother, and quicker, our lift and funnels perform as expected, and the intake is very powerful
Today, we focused on increasing our turning ability. We noticed from last competition that the robot’s turning was very slow, and strained. Because of this, we looked to our research and found out that turning depends a lot on the center of gravity and turning scrub. Though we were familiar with center of gravity, the turning scrub are the points where the wheels drag to rotate the robot. We learned that optimal turning is when the points of contact are on a concentric circle centered around the center of gravity. Because of this, we picked up the robot starting from the front of the drivetrain. We slowly moved our fingers inward and raised the robot. If the robot tipped in any direction, we would drag our fingers in the direction it tips. By doing this, we eventually reached a point where the robot could be lifted directly up. This was where the wheels needed to be based around. We noticed that the wheels were an inch apart more than they should be, so we had to choose whether to move back the front wheels, or move forward the back wheels. Based on collisions with other objects, we chose to move the back wheels forward. We noticed that by doing this, we would shrink our polygon of support, and thus increase our chances of tipping. Because of this, we plan on adding quick anti tipping pegs to prevent us from falling.
Meanwhile, we upgraded our engineering notebook from a 1 inch binder to a 2 inch binder. However, after transferring the pages, we found out the 2 inch binder was still too small. Because of this, we’re upgrading to a 3 inch binder. In addition to this, we also decorated the notebook. Like the ftc teams with foil, 3d logos, and beautiful pages, we’re armoring the notebook with vex metal and filling it with diagrams, pictures, and colored font.
In addition to this, we changed the wiring to a legal format. Thanks to this, the intake is run using a y splitter in port 9, while the lift is run in port 1. Before, connections were exposed, which probably explains why this format was illegal. Furthermore, we bundled up the rubber bands in our intake to make bumps which may grip large balls. Because of this, we may be able to grab large balls without the wall
Next meeting we need to change the code for the new wires. With this, we can start autonomous tests and driver practice. Looking at the criteria for the excellence award, we need to do well in programming skills, robot skills, qualifiers, and interviews. This year, qualifying rounds and robot skills go hand in hand. So the big emphasis needs to be on driver practice, programming skills, and interviews. Next meeting we should touch a bit on each aspect so we do not neglect any category when time is up. We should probably focus on programming skills first however, since that’s our weakest category.
Objective: Increase the reliability of the robot
Problem: Code needs to be updated to the new wiring. Potential problems includes lift dropping, lift tends to raise when not needed, the large balls could fall off, the driver needs to slowly spin the intake out to stash the large ball, the funnels tend to fold in when pushing 2 large balls. Large balls could fall out
Solution: Update code. Adjust the programming to give low powered values to help the system operate as desired. Attach a foldable barrier to keep large balls in. Practice driving
Task: Update code. Apply ghost power values. Apply Zip tie storage
Result: Objective completed. The driver became more familiar with controls, controls became even easier to use, and thus we could score 4 scattered buckies in under 15 seconds
Today, we worked on a lot of small things to make the robot competitive and reliable for states. First off, we changed our code so our driver could start driving. We changed the names for port 1 and 9 to their corresponding parts. Afterwards, our driver started to practice driving. After he got warmed up, we discussed a possible strategy to counter an efficiency robot that could stash bucky balls, large balls, and hang.
The strategy goes like this, Autonomous runs as usual, and the robot knocks down 2 large balls and pushes 4 bucky balls into the goal zone. Taking advantage of the autonomous break, we can then determine a path to grab bucky balls. We grab 3 bucky balls, then score 2. We then grab the 4th bucky, and score the remaining 2 balls into the opposing column. By doing this, we create an opening for our ally to score their 3 bucky balls for a locked goal. By going to the opposing column, that allows us to steal from their score, and place us into a position to quickly de-score large balls and protect our ally when scoring. Taking advantage of this, we can then move into large ball scoring by de-scoring our opponent’s large balls. After this, We can then move on to scoring our large balls and keeping our opponent’s score low.
Our drive continued to practice bucky ball stashing throughout the hour. After he left, we went onto programmatic tweaks. We applied a concept we called “ghostpower”. Typically, when the robot moves in a direction, it wants to stay in the position it moved to. For example, the lift shouldn’t fall back down when the lift isn’t powered. In the past, we would just maintain lift height by keeping a slight power with an else statement, but the problem with that was that our lift would raise when turning or grabbing a large ball. So, the ghost power concept is used to keep the systems in their desired position. So when the lift is raised, the lift has a slight power to up to maintain height, but when the lift is lowered, the lift has a slight power down to drop the system. To do this, we declared an integer called “GhostLift”, and set it equal to a reasonable value. This value will change shortly into the match. Now, in addition to this, we applied a statement that said “Ghostpower= XX” if the button to lift is pressed. In our Else statement, we then set our robots motors to ghost power. Thanks to this, we can tweak the ghost power values after each command, making the values tuned to each aspect we need. We then added ghost power values to the lift, intake, and funnels. Thanks to this, the lift would maintain its position up and down, the intake would hold balls under intensive play, the intake would release large balls easily in a controlled manner, and the funnels could easily push large balls without bowing back under force.
After applying the ghostpower concept, and learning that we could grab the large balls without the wall, we had a higher need for a more supportive large ball storage. Looking at our research from warren II, we noticed a team in the finals used zipties to support their large balls. We tried this ourselves, and we found out our large balls could tolerate more aggression. So we kept the system. Building off of this, we noticed that our bucky ball storage was 14 inches high. Because of this, we bent back and ziptied the storage to fit in dimension. To further stress test the storage, we tried grabbing 2 balls. Though we couldn’t grab and lift them without them falling off, we could store 2, which is critical for de-scoring in endgame.
Finally, we worked on the autonomous. Unfortunately, not much was done, but we do know that the first stage is messed up. The first stage is supposed to do the following:
back up and expand to the grabbing position while rolling a ball to the middle/ goal zone, grab the 3 bucky balls as fast as possible, and return to the alliance tile. To do the first step, the robot backs up and raises the lift and lowers the lift with a bucky ball resting on the outermost funnel. Due to the weight imbalance, the outermost drive train angles towards the bucky balls. However, it does project the bucky ball deeper into the middle zone. Because of this, the Robot needs to start out with a slight angle towards the bucky balls to balance out. While the robot expands, the funnels system is supposed to open just as the robot passes the last bucky ball and spin the intakes in. This allows for a timely push which may bring bucky balls into the intake. Afterwards, the funnels would open slightly for the third ball, and the robot will drive forward to grab the third bucky ball. While this occurs the intake should keep on spinning to increase the chances of the balls already falling in. After the third bucky ball is pushed, the funnels will close, making room for the human player to pull in the robot, and the robot should drive forward, decreasing the distance the human player needs to reach to control the bot. Once touching the tile, the human player can reorient the robot to easily grab any remaining bucky balls from the bump. The human player then reorients the robot towards the near large ball, ending stage 1. The beauty of this stage is that thanks to the robot’s speed, it’s nearly impossible to disrupt. The problem with this stage is that the timer values are off. The robot doesn’t back up far enough to make the funnels hit 1 or 2 balls.
Because of this, next meeting, we need to place autonomous higher up onto the list. However, we still need to emphasize driver practice and programming skills. For programming skills, we can build off of our autonomous program to minimize confusion. We also should look forward to practicing on a real field. We asked Mrs. M, our mentor if she could run practice scrimmages to improve our scores.
The robot storing 2 large balls. Though the robot cannot dump 2 at the same time, it can store 2 of the opposing color for a de-score
Changes to Intake
Zipties were added around the motor to prevent entanglement from wires. The zipties were added to the storage to act as a storage and make the storage fit under the barrier
Changes to Funnels
Zipties were supposed to sweep balls on the floor towards the intake, but it failed. A spacer was added to stop the funnels from jamming
We added this to the drivetrain to prevent the lift from entangling with the drive train
Objective: Tune the autonomous
Problem: The robot doesn’t backs up too far or too little and misses the bucky balls or hits the bucky balls too early. Sometimes the robot doesn’t return to tile. Didn’t have access to code
Solution: Tweak the movement value length, prevent wheel slip, improve mechanics in the meantime
Task: Add zipties to the funnels, tweak the timer values, add acceleration sequences to reduce wheel slip
Result: Objective failed. Back up values are still off(wasn’t tuned enough), but the robot always returns to the alliance tile. Zip ties on the funnels failed because zip ties weren’t reinforced enough
Today’s meeting was supposed to be focused on programming skills and robot skills, however, we didn’t have the laptop to code. We had a demonstration at the University of South Florida.
At the demonstration, we brought our engineering notebook and robots and explained what the team and our robots do. After the presentations, we let bystanders drive the robot. Because the demonstration was quite large and lengthy, we estimated that we talked to around 100-150 people. Of these people, we were able to convince 8 people to grow the robotics community within their community. We will further contact these people to ensure that the outreach will grow. Because we had the demonstration, we also had the laptops to demonstrate the robot. Because of this, people at the meeting couldn’t program for a lengthy amount of time
While this was going on, part of the team met at school. They took the time to improve the mechanics to the best of their ability. In specific, the funnels. They knew that the funnels could not manipulate buckies on the ground, off the bump. So, they attached zipties to the system in hopes that it would sweep the bucky balls into the intake. Unfortunately, it bent when pushing the ball, making the addition useless. This addition also made it difficult for the funnels to be stored. Because of this, the zipties were dumped.
After we arrived from the demonstration, we spent the 30 minutes tweaking the autonomous, focusing on the first stage. The first stage was when the robot expands to size and funnels in the 3 buckies from the bump. The biggest issue was that we didn’t travel the same distance each time, making it difficult to scoop all 3 buckies. In addition to changing the timer values, we added a slight acceleration at the beginning of the code to avoid wheel slip. But, we couldn’t tune the values enough to work. When working on autonomous, we noticed that our drivetrain was beginning to curve again. We need to check on whether our chaining is weird, or if our motors are beginning to give out again.
In our current scenario, we need to place emphasis on our engineering notebook, autonomous program, programming skills, interviews, and driver practice. Because of this, we need to do the following. We need to touch up on driver practice for about 10 minutes, then we need to split into 2 groups. 1 group needs to focus on interviews and the engineering notebook, and another group needs to focus on the autonomous and programming skills. For the interview and notebook team, we need to look at the rubrics and organize what points we need to emphasize on for 8 minutes. For autonomous and programming skills, we need to emphasize the back-up sequence and the lift in the large ball sequences.
The Engineering Expo was an annual event which occurs at USF. We used this as an opportunity to practice our interview skills, as well as spread STEM throughout the community. We participated in this event on both Friday the 21st, and Saturday the 22nd, from 8 am to 4 pm. During the presentation, we added extra emphasis to the benefits of robotics programs and how to develop one in your local school.