Localization -- Identify specific positions in the VIQC Virtual Skills Field (2022-2023)

2022-2023 VEX IQ Competition (VIQC) is coming. Are you ready to play the exciting VIQC Virtual Skills game?

To complete the challenge tasks effectively, localization and efficient navigation are two of the key components. This post will focus on the localization.

When we start to do a task, we need to drive the robot to a specific position. (Image 1) To perform successful navigation, it is important for us to figure out the robot’s current position and target position.

Image 1

VEX IQ Virtual Skills Field provides us with precise dimensions and setup information. We can create a coordinate system on this map with the robot’s initial position as the origin(0,0). (Image 2)

Image 2

We can implement the relative localization, evaluating the robot’s position and heading using the information provided by the drivetrain sensing.

The robot’s X and Y displacement can be calculated utilizing its moving distance and heading angle. (Image 3, Image 4) With the robot’s previous position, we can figure out its current X, and Y coordinates after the movement. (Please see the Example Formula)

Image 31

Image41

formula1

Hence, we can design an algorithm and remix the example code to find out the coordinates of the positions for the robot to complete each task. (Image 5, 6, 7)Remember, the angle used in the algorithm is the heading angle not the quadrantal angles.

Image 51

Image 61

Image 71

Here are the example positions and heading value for the robot to complete the tasks.

The positions and heading data in Table 1 are recorded from the VCIQ Visual Skills Example codes. When using different solutions, the value will change. We can always record the data of various solutions for future use.

Image 81

Table11

After identifying the specific positions for the game(Image 8), we can start to plan the necessary steps to complete the tasks and score the points as much as possible, and utilize the position and heading value to drive the robot from its current position to a specific position. (Image 9) Please let us know if you have any questions, comments, or feedback. Thank you!

Image 9

3 Likes

@Ling_Zhang this is amazing! :slight_smile: Thank you so much for sharing. This is so helpful to see, because this explanation shows concepts and formulas that can be applied to many other projects.

1 Like

@Lauren_Harter Thank you :slightly_smiling_face:

This is great information presented very well. I think we should have a discussion about how this translates to a real robot. Recommend that robots always have Omni Wheels to eliminate wheel scrub. Explain about how wheel slip on a real field can cause differences in movement. Suggest that having the robot bump into a know object can allow calculated locations to be corrected in the real world.

@Bob_Mimlitch Thank you so much for this suggestion! While exploring the process of localization and navigation, I kept thinking about how to reduce the cumulative errors due to the differences in movement and the calculations. Using a known object as a reference location to correct the deviations is very helpful! Thank you.