Motion Profiling

How have you guys implemented Motion Profiling in autonomous? Our coach wants us to work on it this year, and we have no clue where to start. I just want some ideas for the start of the season.

http://docs.wpilib.org/en/latest/docs/software/advanced-control/trapezoidal-profiles.html

2 Likes

Oblarg’s link refers to an addition to the WPIlib for 2020.

I recommend using the search feature on the forum. You’re not the first person to ask this question. There’s a lot more than I listed below. Cheesy poofs’ conference video is pretty helpful in understanding what motion profiling is.

image

1 Like

Something else you might want to look into is using pure pursuit instead of motion profiling to start. There are pros and cons to both. I’ll put this video up because it’s a great series that many in FRC don’t know about.


Edit: for those of you that don’t know FTC teams, 11115 is the 254, 148, and 1323 of FTC.
2 Likes

Keep in mind that trajectory-following is not the same as motion-profiling; we often use motion profiles as part of a trajectory-following implementation, but we use motion profiles in a lot of other places, too.

If you’re looking for trajectory-following implementations, WPILib 2020 is shipping with a Ramsete controller (which is significantly better-behaved than a pure pursuit controller) and a lot of associated plumbing. An end-to-end tutorial for using the stuff will be available on frc-docs as soon as the relevant pull request is merged.

3 Likes

I gave a workshop on Pathfinding for the Sota Bot’s workshop. Here is a link to both my slides as well as the Source code to the robot I used to demo this. Since not all of the 2020 code was out when I wrote it, it still uses a lot of 2019 code, however, it will give you the idea of the steps, and I do point to some 2020 code at the end.

Jim’s Pathfinding 2020 workshop.

-Jim

That’s not pathfinding unless you’re using something like A*. PathWeaver just does trajectory generation.

1 Like

Definitely know that, but many people don’t know something else exists. “Motion Profiling” is just a buzz word that means a better auto to many. Since other threads have covered it pretty well, I thought I’d add the above video as a supplementary resource. Good catch on the clarification though.

How does this compare to an adaptive pure-pursuit model? Any good resources to learn more about a Ramsete controller?

https://docs.wpilib.org/en/latest/docs/software/wpilib-tools/path-planning/wpilib-trajectories/ramsete.html talks about how to use it and section 8.5 of https://tavsys.net/controls-in-frc has the theoretical foundation (the latter is optional reading). The original academic paper is super dense so I don’t recommend searching for it.

Pure pursuit has no control over heading, rounds off sharp trajectory corners (this is undesireable), and has poor behavior at trajectory boundary conditions. Ramsete has none of these drawbacks.

The implementation itself is pretty simple if you’re curious: https://github.com/wpilibsuite/allwpilib/blob/master/wpilibj/src/main/java/edu/wpi/first/wpilibj/controller/RamseteController.java#L110-L127

2 Likes

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.