Go to Post Oh, you know us...kicking puppies and stealing candy from babies and all. :rolleyes: - Travis Hoffman [more]
Home
Go Back   Chief Delphi > Competition > Championship Event
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
 
Thread Tools Rating: Thread Rating: 7 votes, 5.00 average. Display Modes
  #1   Spotlight this post!  
Unread 07-05-2015, 20:00
Jared Russell's Avatar
Jared Russell Jared Russell is offline
Taking a year (mostly) off
FRC #0254 (The Cheesy Poofs), FRC #0341 (Miss Daisy)
Team Role: Engineer
 
Join Date: Nov 2002
Rookie Year: 2001
Location: San Francisco, CA
Posts: 3,077
Jared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond repute
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session

Quote:
Originally Posted by chsahit View Post
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!
Usually 's' is not time; it is just an arbitrary parameter (nominally varying between 0 and 1 for any given segment). You can reparameterize a spline by creating another function that maps 's' to something else, like time or arc length.

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.
  #2   Spotlight this post!  
Unread 16-10-2015, 19:42
apache8080 apache8080 is offline
Lead Programmer, Drive Coach, Scout
AKA: Rishi Desai
FRC #5677
Team Role: Programmer
 
Join Date: Jan 2014
Rookie Year: 2013
Location: San Jose, CA
Posts: 38
apache8080 is on a distinguished road
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.
  #3   Spotlight this post!  
Unread 21-10-2015, 01:25
AustinSchuh AustinSchuh is offline
Registered User
FRC #0971 (Spartan Robotics) #254 (The Cheesy Poofs)
Team Role: Engineer
 
Join Date: Feb 2005
Rookie Year: 1999
Location: Los Altos, CA
Posts: 802
AustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond reputeAustinSchuh has a reputation beyond repute
Re: Motion Planning and Control for FRC - FIRST Championship Conference Session

Quote:
Originally Posted by apache8080 View Post
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.
You never want to run saturated (full PWM output). The math to handle that with a drivetrain properly is very nasty due to the non-holonomic nature of a skid steer robot and coupled dynamics.

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.
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 05:12.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi