ROB-6003 Foudations of Robotics
New York University, Fall 2020
Due on November 30, 11:59 PM
updated November 16, 2020
Direct and Inverse Kinematics
Consider the SCARA manipulator depicted below. For this project only the kinematic parameters are
needed. You have received a trajectory for the the manipulator end effector. The trajectory is provided in
a file named kinematic traj.mat and can be read using init.m.
The manipulator parameters are
d0 = 1 m, a1 = a2 = 0.5 m, l1 = l2 = 0.25 m
θ1min = −π/2 rad, θ1max = π/2 rad, θ2min = −π/2 rad, θ2max = π/4 rad
ml1 = ml2 = 25 kg, ml3 = 10 kg, Il1 = Il2 = 5 kgm2 , Il4 = 1 kgm2
kr1 = kr2 = 1, kr3 = 50 rad/m, kr4 = 20,
Im1 = Im2 = 0.0001 kgm2 , Im3 = 0.01 kgm2 , Im4 = 0.005 kgm2
Fm1 = Fm2 = 0.0001 N · m · s/rad, Fm3 = 0.01 N · m · s/rad, Fm4 = 0.005 N · m · s/rad
d3min = 0.25 m, d3max = 1 m, θ4min = −2π rad, θ4max = 2π rad
As done for projects 1 and 2, the frames are depicted into the figure and the DH parameters are
Table 1: Table with DH parameters.
Please not that the 0 frame is not coincident with the b frame. There is a translation from the ground
plane denoted with d0 = 1. The frame 4 is coincident with the frame 3 at the starting. Be careful on the
d3 component. The range of values is always positive. When the arm is fully extended (down towards the
floor) the value is 1m whereas 0.25 when retracted (away from the floor). However, when you build your
matrix note that d3 moves along −z2 axis and for this reason you translation in A23 should be negative as
1. Generate a trajectory in the robot operational space of 4 s with trapezoidal
velocity profile for
0 −0.80 0 at time t0 = 0.0, p1 =
0 −0.80 0.5 at time
t1 = 0.6, p2 = 0.5 −0.6 0.5 at time t2 = 2.0, p3 = 0.8 0.0 0.5 at
time t3 = 3.4, p4 = 0.8 0.0 0.0 at time t4 = 4.0. The trajectory should be generated such that
the robot should not stop at each waypoint so that the waypoints are via points. The anticipation
time for each segment should be 0.2 s. You need show the position, velocity and acceleration of your
path. The sampling time will be Ts = 0.001 s.
2. Consider a 5 kg load placed at the end effector. Generate an inverse dynamic control approach. The
setpoints for each joint have to be generated starting from the trajectory generated in the operational
space considering a second order inversion kinematic algorithm developed during project 2.
• Make your code as a combination of matlab and simulink. The structure is already provided in the
folders. For part 1, you can create all functions you need, but your program should run by playing the
init traj.m function available in the folder. Once your trajectory has been generated save it in a mat
file generated traj.mat.
• For part 2 as usual, you should call your initialization in a function named init.m. For the second order
inverse kinematic algorithm same rules of project 2 apply, so you will find the same files. You will
have as well another couple of .m files related to control. You will notice in the simulink file that there
is a specific subsystem where you should put your second order inverse kinematic algorithm and will
give you as output the desired joint values. The trajectory you generated is loaded in the init.m file as
generated traj.mat. Copy it from the previous part in the part 2 folder once you finished part 1. You
will have to show your position and velocity errors in the joint space as well as the joint trajectories.
You can use the same function for projects 1 and 2 as reference.
You need to summarize your results in a report submitted in pdf format and generated with latex or word.
Please add on top of your manuscript your name and NYU ID. The report should not be more than 8 pages
including plots. In addition to the results, please include your models and any explanation you think is
appropriate. Do not just write equation, but try to add your logic process and explain why and how you
used the equations or models you have in your code.
Grade Policy and Submission
The overall score will be 100 and will be subdivided in the following way, part 1 (30 points), part 2 (60
points), and report quality and readability (10 points). Do not modify any part of the code as specified
above. Any other type of modification will result in 0 points. All the files, including code and report, should
be submitted in an unique zip file.
Purchase answer to see full