Is There a Way to Measure Position Accurately Without GPS Sensor

I want to be able to measure the robots position in the field accurately but I don’t think my mentor is going to buy a $200 GPS sensor. Is there a way to measure field position without it?

There are a few ways.
1: PID. It’s accurate enough for most purposes, and there are plenty of community resources on the subject.
2: Using alternative sensors. Distance and ultrasound sensors can find field walls and game elements to determine relative position. For something like a pre-auton routine, it’s fine, but measuring at long distances gets tricky

2 Likes

You can also do odometry to get the robot’s position using wheel movements. I’d recommend doing a search here to find a good explanation of it.

5 Likes

Watch this video. It’s a little wordy at the beginning, but hearing the theory is a GOOD thing before seeing the code. I’m posting this because it’s a way to build an auton routine very QUICKLY and ACCURATELY.

Usually just find a starting spot at a position on the wall. Fields vary though.

You probably have a vision sensor. It’s more powerful than you realize.

2 Likes

honestly, I’m not sure this is what op is asking for.

7 Likes

As iseau said, odometry is your best bet.

You’ll need three unpowered tracking wheels for classical odometry. Check out the document by the Pilons for the math needed. Alternatively if you use PROS, you can get plug-and-play odometry with Okapilib - I don’t recommend going that route, however.

Two unpowered tracking wheels (one facing forwards/backwards, one side to side) plus an inertial sensor is another viable solution. This is much easier to implement yourself than the classic Pilons way; you don’t need any weird arc geometry modeling and can just find your displacement using the tracking wheels, IMU and some basic 2D vector math.

I’ve been using this method and it’s worked well, in spite of the builder’s claims that our tracking wheels “aren’t that good.” If you want to look at my code, you can find it on Github under the same username!

Financially speaking - classical odometry just needs three small wheels with corresponding encoders and some mounting hardware, so you’re probably looking at $50-$60 off the top of my head. IMU odometry is more like $75-$85, since the inertial sensor alone is $50.

Edit: Also note that odometry is just position tracking; you need to implement one or more motion algorithms on top for it to be useful.

PID is a good place to start - you need at minimum a turning PID (ideally with multiple target options, like turning to a certain angle, facing towards/away from a point, etc) and one to drive in a straight line towards a point. Some people have also implemented hybrid PID that combines turning and driving.

More advanced than PID would be a path following controller like Pure Pursuit (popular in VRC) or RAMSETE. Implementation difficulty takes a big leap with these, especially if you aren’t familiar with tools like object orientation, but they’re highly adaptable and can handle stuff like complex curvilinear motion. (In my experience, Pure Pursuit is also nice because it can do double-duty for straight movement, eliminating the need for driving PID.)

2 Likes

Could odometry work for a whole match or would it be unreliable at that rate? We wanted to be able to measure our position during the whole match if possible.

My Idea in case odometery got off was to go into a corner and press a button to recalibrate. But I wouldn’t want to do that more than once in a match because of time

I haven’t done enough research into odometry to know how reliable it is. Is it very reliable? How often do you think we would need to recalibrate it? If it’s more than once we might have to take a different route.

I haven’t been able to use odometry yet, but I plan to do it this year. From what I’ve heard it’s pretty accurate and I’ve heard a lot of people say good things about it, but again I haven’t been able to test it myself.