Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

ROB-6003 Foudations of Robotics

Project 1

2022

1 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

θ 1min   = −π/2 rad,  θ 1max   = π/2 rad,  θ2min   = −π/2 rad,  θ2max   = π/4 rad

d3min   = 0.25 m,  d3max   = 1 m,  θ4min   = −2π rad,  θ4max   = 2π rad

The frames are depicted into the figure and the DH parameters are

di

αi

θi

ai

Link 1

0

0

1

1

Link 2

0

0

2

2

Link 3

3

0

0

0

Link 4     0      0     θ4        0

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 A3(2)  should be negative as −d3 .

Questions:

1. Implement in Matlab/Simulink the algorithms for kinematic inversion with inverse and jacobian trans- pose along the given trajectory. Adopt the Euler integration rule with integration time 1 ms. Implement a final function visualize results.m for each part including everything in init.m and all the 2D-plots (joint value and error). A sample function called plot outputs.m is provided for the joint errors.

2.  Suppose to relax one component in the operational space, implement in Matlab/Simulink the algorithm for kinematic inversion with Jacobian pseudo-inverse along the given trajectory maximizing in two separate cases the distance from the mechanical joint limits (relax the orientation component ϕ). Just

implement the one considering the jacobian inverse.

Instructions:

• Make your code as a combination of matlab and simulink.  The structure is already provided in the folders. You should call your initialization in a function named init.m. This function should load the trajectory and all the manipulator variables that have been previously listed. You will then define your Jacobians in another function named Jacobian.m, which will be loaded in simulink.  The file init.m contains as well a call to a 3D visualization of the manipulator behavior. The file direct kin.m can be used if you like to write the direct kinematics in matlab in case you do not want to write that using simulink blocks.

• There is a different folder of each question. You should keep the current code structure.  Once init.m is ran in each folder, you should be able to automatically play the simulink environment and obtain results. Show the joint trajectories in the joint space and the errors operational space.

2 Report

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.

3 Grade Policy and Submission

The overall score will be 100 and will be subdivided in the following way, part 1 (50 points), part 2 (40 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. You are not allowed to modify any code structure or move files around. You are just required to code the missing files and keep the current structure. Any other type of modification will result in a 0 score for the entire assignment.