(130 Points) In this homework, you are supposed to create a complete point-to-point reach- ing behavior for the NAO robot. First, you will need to create a planning system for point-to- point movements for the endeffector (right hand) of the robot. Second, you will need to im- plement the plan on the robot simulator and visualize the outcome to confirm that it works.
- For planning, you are to create a simple dynamical planning system:
Assume the movement duration is t , and the movement starts at t=0. Assume that at start the movement is at _x_0 and it is supposed to reach _x f _after _t _. Use Simulink to simulate this system, by using a “Step Input” from the “Sources” library, a transfer function from the “Con- tinuous” blocks library, and visualize the step input and the output of the transfer function in one Scope block. Add another Scope output that visualizes x! : connect the output of the transfer function to a “Derivative” block (“Continuous” Library), which feeds into another Scope. Set the simulation parameters to “Fixed-Step” with 0.001s step size. Provide a print- out of i) the mathematical analytical form of the transfer function, ii) your Simulink model (i.e., a picture of the Simulink block diagram), iii) the position and velocity plots from the Scopes for a__ = 1,t__ = 1, x __f = 1, _x_0 = 0 . Note that _x __f _block. is the “final value” parameter in the Step
- Adjust a such for t = 1 , the movement has reached _x f _to more than 99% after one second. Provide a print-out of your choice of a and the position and velocity plot (see above) for this choice. For your choice of a , also provide the same plots for t= 2,_t _= 5,t__ = 10 .
- Provide two pros and two cons about this trajectory planning system.
- Write a Matlab program that implements this planning system with Euler integration, again using an integration step size of 0.001s — essentially, you implement now what Simulink did for you before. This program should have a subroutine [x!n+1, x__n+1] = f (xf , xn ) which computes the next desired state x!n+1, x__n+1 based on the current state and goal. This subroutine needs to integrate the current state _x__n _with the computed next velocity to the next state. Store all states x!, _x _along the trajectory in vectors or a matrix, and plot the variables at the end of your program. Provide a print-out of your program and these plots. Compare against 1a) and comment on potential differences of your results.