Motion profiles and path planning with robotpy

Our team is looking to use motion profiling again this year. We haven’t used this since Power Up and were using c++ at that time.

For that code we used vannaka’s profile generator and TalonSRX motorcontrollers to feed and run the profiles with. Because we know it works as intended with ctre devices, we’d like to run all of the profiling via Falcon 500s. In particular we used position and velocity for both left and right sides of our robot to feed the talons.

There has been some changes to motion profiling and we’re looking for a tool that suites us that we can use with robotpy.

Which method does everyone suggest for motion profiling/path planning and robotpy?

Pathweaver?

Pathplanner?

Something else?

Thanks!

All of the stuff that comes with wpilib will work with RobotPy. There’s a Ramsete example at https://github.com/robotpy/examples/tree/main/commands-v2/ramsete, but it doesn’t use pathweaver/etc.

1 Like

As an update we were able to get this working using a Ramsete controller and then Velocity mode on the talons rather than voltage control and a wpilib pidcontroller(). Thanks for just suggesting Ramsete rather than my previous motion profiling. The wpilib trajectory and ramsete control is a MUCH cleaner way than the previous motion profiling. Now that we’ll use a ramsete controller, it doesn’t matter which program we use to get a path as we just use the waypoints and don’t need any csv files.

Here is a link to a pretty nice way of going about the ramsete command that is slightly different than the robotpy exampe (it’s java but easily transferable).

Nice.

That blog post is slightly out of date wrt characterizing your robot, but frc-docs has a bunch of resources that discuss very similar concepts: Path Planning — FIRST Robotics Competition documentation

Next on our list is reversing a path (which seems to be simple with just setting a boolean) and then running multiple paths.

Is it any “better” to create a command to run the ramsete controller or is it find to just run multiple paths in robotcontainer?