Greetings to whomever is reading this post!
I am a programmer for team FYRE 5480. I am trying to get our autonomous working, but i realized that pathweaver requires encoder values for each side of the robot for turning and such. In one way or another, we ended up with no encoders on our drivetrain, but we still want to use a PID loop for our autonomous function. I have done some research and I was curious if we could use a navX2 board to figure out how many rotations we have on each side of the drivetrain. I.E. we use get our forward velocity and our turning radius and do some fancy math and physics with the circumference of our wheels to get rotations of the wheel like an encoder? Obviously it wouldn’t be exact, but its something, and something is always better than nothing. I am also looking into ramsete controllers to see if that would be a viable option. In any case, if anyone could provide any insight on whether or not this can be implemented, and how to do it if so. Additionally, if anyone has any insight as to how this could be done differently or even better, that would also be appreciated.
Thanks a lot!
With a gyro (for rotation) and accelerometer, you could theoretically do what you’re trying to do, though there will be a TON of error introduced through that calculation, so it’s unlikely to be very accurate.
What does your drivetrain look like? What motors are you using?
What motors are you using on your drivetrain?
We are using a 20x28in drivetrain with 3 minicims powering each side of the drivetrain.
Have you looked at the NavX2 FAQ related to displacement estimates?
I just looked at it. It based on that, I know it seems like an implausible fix to our problem, but not impossible.
The main issue is that I have no idea how to implement it. Because as far as I know, pathweaver and ramsete both require encoder values.
This will not work well for anything other than angular displacement. Accelerometers are too noisy to use for position odometry in FRC.
You’re absolutely correct, as I have been doing more research, I have found more answers just like this one. However, I have been looking at using a feedforward controller instead of a feedback loop, because it sounds like that will work better in the situation we are in. Any thoughts on how that might work out?
Feedforward control is always a good idea, but without some form of feedback you can’t reject disturbances.
That makes sense, thanks.