Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate...
-
Upload
caitlin-farmer -
Category
Documents
-
view
223 -
download
1
Transcript of Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate...
![Page 1: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/1.jpg)
Trajectory Generation• Goal:
– Turn a specified Cartesian-space trajectory of Pe into appropriate joint position reference values
• Steps:– Use inverse kinematics of a robot
manipulator arm to find joint values for any particular location of Pe
– Use sampling and curve fitting to reduce computation
• Output:– a series of joint position/velocity reference
values to send to the controller
![Page 2: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/2.jpg)
5 Step Process for Trajectory Generation
1. Obtain function for workspace path
2. Sample function to get discrete joint pts
3. Apply IK & Jacobian calculations
4. Fit function to joint points5. Sample to get discrete
reference points
1. C
2. D
3. D
4. C
5. D
C=continuous
D=discrete
![Page 3: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/3.jpg)
Step One: Continuous Fcn
• Obtain an analytic function to describe motion with respect to the base frame
• Obtain rate of change of location
![Page 4: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/4.jpg)
Step 2: Sample
• Sample the trajectory to obtain a finite number, m, of sample points on the continuous trajectory:
• Sample rate of change
![Page 5: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/5.jpg)
Step 3: IK & J
• (a) Use inverse kinematics to convert each Cartesian trajectory sample point vector, into a corresponding joint space vector,– Handle multiple solutions,
admissibility, etc.
![Page 6: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/6.jpg)
Step 3: IK & J
• (b) Use the inverse Jacobian relation to convert each velocity vector, into a corresponding joint speed vector, – Handle singular configurations
![Page 7: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/7.jpg)
Step 4: Fit Continuous Curve to Joint Points
• Use the sequence of vectors and i=1,…,m to generate continuous expressions for each joint and j=1,…,dof which pass through or sufficiently near to each of joint space sample points, and rate of change sample points, to produce continuous joint space trajectories for each joint.
![Page 8: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/8.jpg)
Step 4: Fit Continuous Curve to Joint Points
Spline or Polynomial Fit
& derivatives:
![Page 9: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/9.jpg)
Step 4: Fit Continuous Curve to Joint Points
Let’s look at fitting a curve to one interval
![Page 10: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/10.jpg)
Step 4. Fit Continuous Curve to Joint Points
• Fit a continuous function, q(t) to the points:
• Time info – from original sampling• For now use notation (get rid of
subscripts i and i+1):
t=t0
t=tf
![Page 11: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/11.jpg)
Step 4. Fit Continuous Curve to Joint Points
• Splines, polynomials,…• To match position, velocity and
acceleration at end points use a quintic polynomial (6 parameters to match the 6 unknowns):
![Page 12: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/12.jpg)
Step 4. Fit Continuous Curve to Joint Points
• Note: To match only position and velocity at end points use a cubic polynomial (4 parameters to match the 4 unknowns):
![Page 13: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/13.jpg)
Step 4. Fit Continuous Curve to Joint Points
• Use endpoints and time values in quintic polynomial (6 linear equations, 6 unknowns)
![Page 14: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/14.jpg)
Step 4. Fit Continuous Curve to Joint Points
• In matrix form:
![Page 15: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/15.jpg)
Step 4. Fit Continuous Curve to Joint Points
• In matrix form:
![Page 16: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/16.jpg)
Step 4: Computational Thoughts
• Need to perform fit for each joint but…
on each TIME interval, this matrix is the same for each joint – compute inverse only once
![Page 17: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/17.jpg)
Step 4: Fit Continuous Curve to Joint Points
Piecewise polynomials: one polynomial for each joint for each timte interval (and we can easily take derivatives)
…..
one for each time interval(i, i+1)
![Page 18: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/18.jpg)
Step 5: Sample Joint Curve
• Sample each continuous joint trajectory to generate a sequence of discrete reference values for each joint, where ttotal/N is the sampling period used.
Sample
![Page 19: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/19.jpg)
Step 5: Sample Joint Curve
• Sample joint speeds.
Sample
![Page 20: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/20.jpg)
5 Step Process for Trajectory Generation
1. Workspace path function2. Sample -- discrete joint pts3. Apply IK & Jacobian
calculations4. Joint function5. Sample -- discrete reference
points
1. C2. m pts3. m pts
4. C5. N pts
Note: N >> m
m ~ 10 N ~ 1000+
![Page 21: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/21.jpg)
Example: Linear Motion• Step One: Express line as continuous
function (i.e. parameterize by time):– x(t), y(t), (t)
• Suppose we specify the line y= mx +b• Want to move along line with constant
speed, v
![Page 22: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/22.jpg)
Parameterize the Line
• Equation of line
• Differentiate
• Velocity vector
• Substitute
![Page 23: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/23.jpg)
Parameterize the Line
• Velocity
• Speed (magnitude)
• Solve (pick appropriate sign)
![Page 24: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/24.jpg)
Parameterize the Line
• Velocity,
![Page 25: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/25.jpg)
Sample Continuous Path Fcn
• Use M samples for total time, ttotal
time
![Page 26: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/26.jpg)
Example Line• Let’s take a 2-link planar arm with
– Link lengths: l1 = 4, l2 = 3 m– Line y= - x + l1+l2/4 or y=-x +4.75
with speed, v = 3m/s– Start point = (0, l1 + l2 /4)=(0,4.75)– endpoint = (l1 + l2 /4,0)=(4.75,0)– constant speed
• Note, in practice, speed usually follows a trapezoidal profile with acceleration/deceleration at start/end of the motion
![Page 27: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/27.jpg)
Example Line
• Using our 2-link planar data the path has
• And for constant speed will take
![Page 28: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/28.jpg)
Example Line
• We will use M=9 sample points
• And for constant speed we will have
![Page 29: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/29.jpg)
![Page 30: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/30.jpg)
Step 3: IK & Jacobian
• inverse kinematics:
– where
![Page 31: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/31.jpg)
Step 3: IK & Jacobian
• Jacobian relationship:
![Page 32: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/32.jpg)
Step 3: Discrete joint values
![Page 33: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/33.jpg)
Step 3: Discrete Joint Velocity Values
![Page 34: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/34.jpg)
Step 4: Fit Cubic To Positions/Speeds
rmse = 0.014 rad ~ 1 deg
![Page 35: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/35.jpg)
Curve Fitting Comments
• Typically, a single cubic is not sufficient for the entire motion
• A quintic polynomial can fit position, velocity and accelerations of end-points
• What are the implications of fitting only position/velocity?
![Page 36: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/36.jpg)
Reference Positions with 0.02s timesteps (sample cubic function)
![Page 37: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/37.jpg)
![Page 38: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/38.jpg)
Cartesian vs. Joint spaceCONS • Actual robot
position is sometimes unclear, particularly in presence of known obstacles
PROS • Actual control of
the robot occurs in joint space
• Simpler to plan trajectories in real-time; less computation
• No problem with singularities
![Page 39: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/39.jpg)
Cartesian vs. Joint spaceCONS • Need Inverse kinematics
(can be multi-valued)• Smooth trajectory in
Cartesian space may not map to continuous joint space trajectory
• Joint limits may prevent position from being realized
• End-effector paths may not be safe for rest of manipulator
• computational demand and analytic complexity
PROS • We usually desire a
Cartesian path.• Easy to visualize the
trajectory• Occurs in many robotic
activities• Shortest Euclidean path • Straight line path
minimizes inertial forces • Cartesian trajectory can
be robot independent
![Page 40: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/40.jpg)
![Page 41: Trajectory Generation Goal: –Turn a specified Cartesian-space trajectory of P e into appropriate joint position reference values Steps: –Use inverse kinematics.](https://reader031.fdocuments.us/reader031/viewer/2022020102/5697c00d1a28abf838cc9582/html5/thumbnails/41.jpg)
Path not in workspace
May need to flip between configurations
Start & goal in different solution branches