VEX V5 GPS Sensor PID (WIP)

Hello, VEX nation!

Our team is on the journey to find an alternative to complex and bulky tracking wheels for accurate autonomous routine. What caught our eye was the GPS sensor, which provides the absolute location of the robot.

For now, we only used GPS sensor (which provides 25 updates per second) and put as the input for the PID loop. This seems to cause some issue since the reading from the GPS sensor is a bit jittery (around 1 inch (2.54 cm) max).

We look forward to mitigating this jitter issue by smoothing out the reading from the GPS sensor as well as combining the reading from the inertia sensor and motor’s rotation and ultimately sharing the plug-and-play code for the community!

9 Likes

The problem is that gps strips are not required on competition fields except for skills, so probably would not work on head to head matches unless the field is set up with GPS strips.

1 Like

What sort of combining methods have you looked at so far?

1 Like

I didn’t thought this could be a problem.
However, our team is located in South Korea and most of the institution offering VEX robotics program started to offer it quite recently, which means most of them have a portable field (haven’t seen the old field parameter outside of our school) so it won’t be a problem for my region.

2 Likes

Well done! I’m glad to see someone else also moving away from tracking wheels. If you are looking for ways to combine sensor readings, I would recommend looking at kalman filters. Kalman filters are exactly what you are looking for with the combining multiple sensor inputs, especially the drivetrain and gps. I am currently writing a paper on this exact problem and my solution to it in VEX, but here is some of the code I have been working on for monte carlo localization in VEX.

4 Likes

Just curious, why did you decide to go with a Monte Carlo filter over the Kalman filter? I am currently looking at both as potential options.

1 Like

Good to know that there are also teams trying this with the GPS sensor.
I didn’t like giving up the lower part of the chassis due to the tracking wheels because there appears to be the perfect place to put a bulky component like air tank.

Speaking of technical side, we were also trying to smooth out the input from the jittery GPS sensor using Kalman filter, bib did not know we could combine the readings from multiple sensors.

Thanks for the resources and insights again!

1 Like

I chose a Monte Carlo Filter over kalman filter so I could more easily incorporate sensors like distance or line sensors to add more information than gps.

newb here, I’m guessing you folks are talking about using PROS right?

No worries, this is a place to learn!

We are talking about various filters that you can utilize (regardless of the programming environment/language) to estimate the state of the robot.

How would you utilize these filter in VSCode under python? Thanks for being understanding.

We dont use PID as of yet, trying to learn C++ either with JAR template or PROS but my kids are more in python since its simple enough to get a robot moving.