View Single Post
  #38   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.