Robot design
The robot has:
2 Large motors
2 Medium motors
2 color sensors are used to follow the line or calibrate the robot.
Robot completes 2 missions by it self.
Also launches 2 self-propelled constructions, which complete 2 missions and collects an expert. The self-propelled constructions save around 15-20 seconds.
Scores 95 points
The robot completes 2 missions
Places 2 audience members and an expert in the correct positions.
Picks up 2 experts to bolster their expertise.
Scores 90 points
Completes 4 missions. Launches the third self-propelled construction
Multiplexer turns 2 outputs into 4 controllable outputs.
Scores 130 points
Completes 4 missions.
Multiplexer turns 2 outputs into 4 controllable outputs.
Scores 165 points
Programming
This year, we made the switch from utilizing EV3 block-based coding to Python coding. Our preferred platform for coding is Visual Studio Code.
Purpose
Our robot encountered challenges in maintaining a consistent straight trajectory, often due to slipping or imbalance in weight distribution. To address this, we decided to use a built-in sensor called gyro. This sensor not only helps the robot stay on track but also makes its movements smoother and more precise. With the gyro sensor, we can make the robot move faster while still being accurate. Now, our robot can go straight for a long time and complete tasks very precisely, thanks to this advanced sensor technology.
How it works
The main objective of the proportional controller is to bring the gyro's current position to the chosen angle that the robot needs to follow. This is achieved by adjusting the speed ratio of the robot's motors while it is in motion. The proportional controller ensures that the robot aligns with the desired angle accurately by modulating motor speeds accordingly.
The program first checks the gyro sensor's reading. Next, it determines the power for the left motor by subtracting the gyro sensor reading from the speed, and it adds the same value to determine the power for the right motor. These power levels are adjusted using something called "proportional gain," which controls how much the robot turns when it's off course. Finally, it makes both motors move based on these adjusted power levels. So, the bigger the difference between where the robot is and where it should be, the more it turns to get back on track.
We made some more changes, like making the ability to turn the medium motor while using the gyro drive function. We also added some variables to decide if the gyro sensor should be reset. Then, we introduced a new variable called "Bool" so the robot can move in both directions using the same function while still keeping track of the degrees. We also added features like acceleration and deceleration to help the robot start smoothly and move faster with better accuracy in measuring distance and angle.
We also wanted to make a proportional line follower, but decided that it just takes too much time and the gyroscope is accurate enough for the robot to drive precisely.
We wanted to make our coding simpler and avoid repeating ourselves, so we started using functions. Functions help us save time and space because we don't have to write the same code over and over. Instead, we can create a function for a task and use it whenever we need it. This makes our code easier to understand and manage. We found this really useful when working on features like Proportional gyro and proportional line follower, as it made our coding process smoother and more organized.
During the programming process we found out that the robot can not only drive with the gyro drive. So we’ve made some other functions like Gyro turn and move tank.Gyro drive is to make the turning process faster and more precise because turning with gyro drive is too fast and can lead to very big errors in the runs. Move tank is used to make the robot drive in a curved line. It is not precise but it helps the robot to drive faster back to the base and save time. There is also a function for the robot to drive like with the move tank function but drive not for degrees but for seconds. it is being used for the robot to squeeze into a mission without getting stuck.
More information