Odometry requires some form of rotary encoder on two parallel wheels (and a perpendicular wheel if your robot can move sideways). The V5 smart motors have built in encoders which can be used for odometry (the OkapiLib library included with PROS supports this natively.) However, when the encoders are mounted to the drive wheels, any slippage caused by too much acceleration or bumping into obstacles will cause significant errors with odometry. To overcome that, many teams use separate free-spinning tracking wheels with external encoders, so there is little to no slippage.
What is typically done (and what I did) in FLL and VEX IQ is not true odometry. Most of the time teams will just tell the motors to move the robot straight until the encoders in the motors have turned the wheels enough to have traveled the desired distance, and then turn a certain amount, and then drive straight in some other direction, etc. That does not keep track of the actual position of the robot between movements. Small tweaks of the robot between movements can add up to cause significant errors over a whole routine, primarily in heading. True odometry constantly calculates the exact position of the robot on the field from all previous movements of the robot, regardless of what movements are made (it’s a bit more complicated, but that’s the idea.) True odometry does still incur some error over time, but it’s far less than tracking the robot only in the direction the move is supposed to go in.
If you could fit separate tracking wheels in your robot with rotation sensors attached (the old style of encoders are only $11, the new style is $40), you could use true odometry without worrying about slippage. I have found that the V5 Inertial sensor (IMU) (when not miscallibrated from the factory) can be more accurate than tracking wheels at sensing the rotation of the robot. You can get a long ways through just the built in motor encoders for distance, and a gyro for rotation.
If you want a programming challenge, you could try using the IMU to measure distance (which tends to drift slowly over time) and the robots wheels. Most of the time you would rely on the wheels unless the readings from the wheels significantly disagree with IMU (indicating the wheels slipped), in which case the data from the IMU can fill in the gap)