|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools |
Rating:
|
Display Modes |
|
|
|
#1
|
|||||
|
|||||
|
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session
Thank you to all who attended our conference session. We were blown away by the number of people in the audience - several hundred FIRSTers were there and it was standing room only! This goes to show that the FRC community has quite an appetite for technical conference sessions, and I hope we can grow this part of the Championship Conferences substantially in the years to come.
As promised, here is the recording of the session (in standard Cheesy Poof 4k of course): https://youtu.be/8319J1BEHwM And here are the slides (with a couple of small corrections from the version used in the session): https://docs.google.com/presentation...e&delayms=3000 We hope that our session was useful! We know there are some things we can improve for future sessions. One request for anyone who attended: please feel free to PM or email me feedback so we can get better at this in the future. A major challenge in presenting on such a deep subject is hitting the right technical level - there were many levels of experience and expertise in the audience, and you don't want to alienate either end. Please tell us how we did! |
|
#2
|
|||
|
|||
|
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session
Quote:
It may just be me, but are the slides private right now? Edit: Never mind, doesn't like the mobile app for some reason. Last edited by Abhishek R : 30-04-2015 at 18:45. |
|
#3
|
||||
|
||||
|
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session
Just you
|
|
#4
|
||||
|
||||
|
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session
Quote:
|
|
#5
|
|||
|
|||
|
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session
I've been avidly waiting for this
. Both links work for me perfectly. Perhaps the issue is resolved now or maybe try a different browser(I'm using chrome). |
|
#6
|
||||
|
||||
|
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. |
|
#7
|
|||
|
|||
|
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session
Thanks again for putting this session on.
I am on the newbie end of the knowledge scale for this topic - I know about PID and I understood the basic concepts of motion profiling but it will take some further reading and research to figure out how to make it work for us. I think it was a bit above the heads of the freshmen students I brought with us but they were interested and following along as best they could. They can't wait to try out the code that has been made available. |
|
#8
|
||||
|
||||
|
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session
I can view the presentation on-line. Is that what you both are referring to?
I am saying that the PDF and PPTX download options in this popup menu do not work for me: http://i.imgur.com/jWPsNVP.png Jared, is that intentional or an oversight? ~ Last edited by Ether : 05-05-2015 at 09:59. |
|
#9
|
|||||
|
|||||
|
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session
Not intentional. The PDF and PPT links work for me.
I've attached the PDF. |
|
#10
|
||||
|
||||
|
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session
|
|
#11
|
||||
|
||||
|
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session
What does the spline paramater represent? When discussing 2d hermite cubic spline fits functions are created in terms of "s". Is this time?
Thank you and great presentation! |
|
#12
|
|||
|
|||
|
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session
Spline parameters can be whatever you want: time, % of time, % of total arclength. When 254 implemented it in 2014, I believe we used % of total arclength. As long as you're consistent with your parameter usage, the code should be mostly the same.
|
|
#13
|
|||||
|
|||||
|
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session
Quote:
In other words, instead of looking up your position by calling a function x(s), you would call x(s(t)), or x(s(arc_length)). Note that if you are creative, you can formulate the problem in different ways. In 2014, 254 actually created 2D splines by making a single function y(x). In this case, the 's' parameter was actually the x coordinate (shifted and rotated to the origin for each spline segment). There are some pros and cons to doing it this way as opposed to the more common parametric way (where you create two independent splines for x and y). Last edited by Jared Russell : 07-05-2015 at 20:03. |
|
#14
|
|||
|
|||
|
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session
How does 254 generate the trapezoidal curve for the velocity? My assumption is you just set motor speed to max(1.0) and then calculate what the velocity is at specific time intervals until it reaches a cruise velocity. Then I guess you derive the acceleration from that velocity graph. This makes sense but where I get confused is the deceleration because if you just set the drive speed in the code to 0 then since the motor controllers are in brake mode the motors will just stop.
I am a newbie when it comes to motion profiling so these questions may seem a little dumb. Thanks for all the help. Last edited by apache8080 : 16-10-2015 at 20:54. |
|
#15
|
|||
|
|||
|
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session
Quote:
The correct solution is to pick a velocity and acceleration for your profile such that you never run saturated while driving. For 971's 2015 robot, we used 2 m/s as the peak speed and 3 m/s^2 as the acceleration. That results in very clean motion for us which doesn't saturate. I would suggest verifying this by picking a velocity and acceleration for your profile, driving the profile with a robot, and then plotting the PWM value requested. You should never see a request above 1.0 or below -1.0. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|