Skip to main content
Skip to Main Content
Skip to main content
Navigation

Preparing for Autonomous Challenges with VEX EXP

Watch this video from our VEX EXP STEM Lab, Ring Leader, to learn more about autonomous challenges and strategies you can use as you prepare for an autonomous challenge. 

(upbeat music)

Hi, everyone. Welcome back to the VEX Classroom. My name is Audra, and today we're gonna talk about preparing for Autonomous Challenges, and what are some strategies and best practices that you can use in order to have the most successful autonomous run that you can.

To start off, what does autonomous mean? Autonomous means that the movements of our robot are entirely controlled by our code. So there's no driver control involved at all. There's no controller; there's no one controlling the movement. Once the project starts, the project runs, and that is your autonomous challenge. This means that things like project planning, testing, debugging frequently, and careful setup are really, really important in an autonomous challenge. Unlike in driver control, if you drive a little bit too far or you turn a little bit too much, you can correct for that. But in an autonomous project, you can't. As soon as that robot starts moving, you are hands-off, and your project is entirely controlled by what you have coded in VEXcode EXP.

Let's talk a little bit more about each of these three things that I just mentioned. To start with, project planning in an autonomous challenge is all about precision, especially in things like measurements or motor positions and things of that nature. You want to make sure that you're measuring really, really carefully. There's an old adage for building things that says to measure twice and cut once. Well, we kind of want the same attitude here, right? We want to measure twice and code once.

You might be thinking, okay, that's really easy, but I want my robot, in this example, to move the ball from one side of the field to the other. So I want my robot to drive forward and turn left. All right, so I'm gonna measure where I want my wheels to go, but wait, where are you measuring from on your robot? It's important to pay attention to where the driving wheels are of your robot. On this Clawbot, the driving wheels are in the back. So if we measure from the front wheels or we measure from the claw, we're not gonna get an accurate measurement or a correct measurement. If we look at it a little more closely, we can see that the motor's aligning with these wheels; that's our driving wheel. So when we measure, we want to measure from the center of the driving wheel, right from where that shaft comes out, to wherever we want our robot to drive. That will be the distance that we want to code.

Things like measuring carefully. You also have some other tools at your disposal built into your robot. On the VEX EXP brain, you have things like the devices window that can give you some really great information about motor position values, to know what position is open on your motor. What position is closed around a buckyball? What position is gonna be closed too much so that I can't grasp it? You can also use things like the sensor dashboard on your brain, if you're using sensors, to be able to get some of that sensor values and sensor data. This way, you know that you're coding your project to be as successful as possible.

Now, something else that will help with that and ties hand in hand with project planning is building your project in small stages so that you can test and debug your project frequently. You might think, okay, this is an easy task. I just need to drive forward, grab this ball, move it to the other side. I can code that whole thing at one time. Well, if you do that, but your very first measurement was just a little bit off, the entire rest of your project is likely going to be affected, and your autonomous challenge is probably not gonna go the way that you want it to. So something you can do to help avoid that frustration is to build and code your project in small pieces.

Thank you for joining us today. We hope these tips help you in your autonomous challenges. See you next time!

Think about what the first steps are and use your pseudocode that you've broken down to be able to code bit by bit. Test each of those elements of your project one at a time. For example, if you need your robot to drive forward and turn left, just code those two behaviors: drive forward for 300 millimeters and turn left for 90 degrees. Then test that project, run it, and make sure your robot goes exactly where you want it to go.

If you drive it forward for 300 millimeters and then turn left 90 degrees, check if your claw is lined up with the ball where you need it to be. If it's off a little bit, determine how much further you need to go next. Now you're not flying blind. You can use your ruler and precise measurements to measure that next piece, code it, and test it again. This approach makes identifying and fixing bugs a lot easier because bugs are a natural part of your coding process.

By working in smaller chunks, you know that if there's a problem, it's likely with just a small piece of code rather than having to figure out all the bugs in a large project. Another thing to consider as you're testing and debugging is any modifications to your robot. If you adapt the claw design or the arm design, make sure to test that with your autonomous project. The goal is for the design of your robot and your code to work together to accomplish the task at hand.

If you create a great autonomous project and then change your claw design without testing, your claw might be too big, or the motor position values might differ with the new design. Keep all of that iteration alive in both your design and coding process. Now that we've planned our path, built our project in stages, tested, and debugged it, we're ready to practice our full autonomous run.

At this stage, precision is crucial because careful setup is key. If your robot is not in the exact same spot that you practiced in when it comes time for the challenge, your project might not run as intended. Ensure that your robot and game elements are in the exact same starting position every time. If your project works once, test it a few more times to ensure repetitive success.

There are some things you can do to help with setup, like marking on the field with a dry erase marker where exactly your game elements are. For example, mark where the ball is on the field tiles and where the robot starts. You might want to mark on the back of the field tile where the wheels need to be. This way, during your autonomous run, you can quickly and easily set it up the same way each time.

If you are practicing, ensure that your practice setup is exactly the same as the challenge or competition setup. You don't want to design an autonomous project and then realize that in the real challenge, the ball starts in a different position. This would mean starting over.

Let's look at what this looks like in an actual autonomous project. As mentioned before, the goal of this autonomous project is to drive the robot to pick up a buckyball and move it from one side of the field to the other. I've already created my autonomous project, tested it, and debugged it.

Thank you for your attention and dedication to this process. Remember, practice and precision are key to success. Good luck with your project!

I think that it is going to work. So now I have it loaded onto my robot, and I'm going to run it because my robot is in the right position. The ball is in the right position. And we're going to see if our robot accomplishes the goal of our project. We'll drive forward, grab the ball, turn around, and drop the ball on the other side of the field.

So now let's see what happens if our setup is not as precise as we were talking about. In the first time around, we had our ball here and we have our robot exactly set up in the back. But what if the ball is not exactly in the same place? Now you can see here's my X, here's where the ball is. It's only about an inch difference. It's just a little bit. And what if my robot is mostly in that square but not entirely in that square?

These are tiny little changes. It's a small difference in where the robot is and the position of the ball, but look at what happens to my autonomous project. Without driver control, I can't correct for those little changes once the project starts, and now my autonomous run was not successful.

As you're preparing for your autonomous challenge and preparing for this setup, we talked about marking things on the field. You can also make those same markings in your engineering notebook. You can document things like the exact starting position of your robot, because even if your robot is at an angle, just a slight angle, that will set off everything in a little bit different way. So if it drives forward and then it turns 90 degrees, one little change in angle can have a really strong effect on the rest of your project.

I hope that this helps you get ready to prepare for your autonomous challenges, and I can't wait to see how successful you are with your autonomous run.

(upbeat music)

Share

Like this video? Share it with others!

Additional Resources

View the following resources related to the concepts covered in the video as you continue your learning. 

Like this video? Discuss it in the VEX Professional Learning Community.