-
Notifications
You must be signed in to change notification settings - Fork 54
Pure Pursuit #127
Comments
This is also a good resource for Pure Pursuit: https://github.com/AtsushiSakai/PythonRobotics/tree/master/PathTracking/pure_pursuit |
Update: Since #143 is merged, the architecture is in place for this. A pure pursuit controller should subclass |
Blocked by #213. |
I"d like to take a stab at this. I think I may have seen @theol0403 have a reference to lib7842 which may have a Pure Pursuit implementation. How suitable/worthwhile would adapting that implementation be? |
I am not familiar with that implementation but I know that Theo"s controls generally work well, so I have no reason to doubt their implementation. |
Unfortunately, I am opposed to adding my (unreleased) pure pursuit implementation to okapilib. I am of the opinion that including advanced motion controls in a black box (like pathfinder) is detrimental to VRC. Given the fact that the large majority of programmers in VEX cannot implement or understand such algorithms, it creates an unfair and non-educational situation where programmers are forced to use libraries and code they do not understand to stay competitive, and the teams who do make their own code lose their competitive edge. Instead of taking the small gradual steps motivated by increased competitiveness that eventually bring the capacity to write advanced code, programmers skip the effort of learning, yet still achieve the desired result, demotivating them to write anything themselves. The teams that wish to make everything themselves are punished as it takes years of experience to write anything that rivals a well-built robot running pathfinder (or pure pursuit). Teams cannot learn the fundamentals of motion algorithms by studying okapilib source code, written in modern (and to their eyes arcane) C++. Teams are not motivated to learn the fundamentals through research if they can use okapilib and move on. I believe Salmon disagrees with me on this topic, so I will also say that the other reason I don"t want to include pure pursuit is that it will take significant development effort to include, write documentation, and support all the teams who see it as a shortcut to success while not having the knowledge to tune and debug - ultimately taking their time away from making something else, which may perform worse but grants them experience and a competitive edge proportional to their skill. |
I would really like to have pure pursuit available for the initial release. It"s a flashy and useful feature that should attract attention to the project. There is an excellent paper here which describes the algorithm: https://www.ri.cmu.edu/pub_files/pub3/coulter_r_craig_1992_1/coulter_r_craig_1992_1.pdf
Additionally, this introduction to differential drive kinematics will be helpful: http://rossum.sourceforge.net/papers/DiffSteer/DiffSteer.html
I am not sure if the appropriate controller architecture is in place for this, but I think it"s time to start trying to implement it.
The text was updated successfully, but these errors were encountered: