View Single Post
  #6   Spotlight this post!  
Unread 04-30-2015, 10:37 PM
Jared's Avatar
Jared Jared is offline
Registered User
no team
Team Role: Programmer
 
Join Date: Aug 2013
Rookie Year: 2012
Location: Connecticut
Posts: 602
Jared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond reputeJared has a reputation beyond repute
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session

This is an awesome presentation - I'm our team had to miss it because we didn't have badges yet. I think the level of detail was pretty much perfect for an hour long presentation.

As you mentioned, the internet has lots of great papers describing the process:
http://www2.informatik.uni-freiburg....Sprunk2008.pdf

In the presentation, you talked about tuning ka and kv, which we found to be a frustrating process. We started with the method you describe with the robot's maximum velocity and maximum acceleration, but we found that these values of ka and kv only worked well when we ran aggressive and fast trajectories, and weren't as accurate with slower, less terrifying trajectories. kP for the feedback controller had to be increased to maintain accuracy, which caused the robot to oscillate if it was bumped off course. With different values of ka and kv, we could let the feedforward controller do most of the work and decrease kp to improve stability.

Our method to find kp and ka was to simply drive the robot in a straight line with varying speed, acceleration, and power, and record this information every 20 ms. I used a 4 sample moving average to get smooth data from the encoders.

I looked at two points in time that each had different velocity, acceleration, and power, and solved these two equations for ka and kv.

kv * v1 + ka * a1 = p1
kv * v2 + ka * a2 = p2

I repeated this process of selecting two points and solving the equations for 10 times, and averaged the values of ka and kv to get the actual gains.

This resulted in a slightly higher value of kv and a much higher value of ka than we got with the full acceleration test.