Follow a Bezier Curve based off of velocity and acceleration derivatives

I’ve had this idea for a while but started exploring it again after watching the velocity derivative part of this video: The Beauty of Bézier Curves. I was wondering if we could use this derivative data to predefine motor values to follow it. I’m sure tuning will be required for different bots’ weights and center of gravities. I have the idea but I’m not sure I have the mathematical knowledge to understand/search for the answer.

At first, I thought this was exactly the kind of scenario that Pure Pursuit but I didn’t understand why it looks for points with a circle when it can try to stay on the curve from the beginning. The timestamp 7:30 in the video shows that it can calculate offsets for a drivetrain so maybe we can use those arc lengths to calculate the motor power? Am I overcomplicating things as PP was made for following complex curves or is this something that just isn’t possible to the required accuracy in the real world?

Can someone help me expand on this idea?

P.S. I know this is more of a mathematic question but since my end goal was to implement on a drivetrain maybe someone here has an answer. If not, I might post on something like MathExchange

3 Likes

It sounds like you’re looking for motion profiling, which the RAMSETE controller is more designed for then pure pursuit (though pure pursuit can still work well if modified, just basic pure pursuit is for simple-ish paths). One thing to watch out for though, just because a specific bezier curve is possible it doesn’t mean that the robot is actually able to follow it, the velocity/acceleration derivatives could be too high for the robot to handle. The world of motion profiling is very big though, so instead of trying to summarize stuff here I’ll link to a couple sources, and you can find way more by googling around

https://okapilib.github.io/OkapiLib/md_docs_tutorials_concepts_twodmotionprofiling.html

4 Likes

Great, I’ll look into this. Seems like OkapiLib uses https://github.com/baylessj/robotsquiggles.

Thank you!