## Description

## Instructions

• This assignment is designed to get you familiar with basic trajectory planning.

• Code can be written in Python or C++ only. Make sure your code is modular.

• Submit your code files and a report (or as a single Jupyter notebook if you wish) as a zip file, named as

〈team id〉 assignment5.zip.

• The report should include all outputs and results and a description of your approach. It should also briefly

describe what each member worked on. The scoring will be primarily based on the report.

• Refer to the late days policy and plagiarism policy in the course information document.

## Q) Trajectory planning using polynomial functions

A service robot wakes up in a room at coordinates (3, 0) at to = 0. Within the room, the robot has to

visit the point (1, 2.5) in order to collect a cookie for his friend. The robot then has to move to the other

end of the room at (9, 5) to give his friend the cookie, at tf = 5. In addition, the robot must not crash

into his friend, so his end speed must be equal to 0. Assume the robot is holonomic i.e. he can move

along the x and y directions independently. Sample t from to to tf in increments of 0.1.

(a) Compute the trajectory for this desired motion profile using a polynomial function of degree four.

Recall that this amounts to formulating a linear system Ax = b based on the given constraints, for both

x and y, and simply solving for the coefficients of the polynomial function. Plot the obtained trajectory

indicating the start, end, and waypoint clearly. Also plot the corresponding velocity and acceleration

profiles.

(b) Next, compute the trajectory as a fifth degree Bernstein polynomial, i.e. as a linear combination of

the Bernstein basis polynomials. Such a polynomial is defined as,

f(t) = Xn

i=0

nCiτ

i

(1 − τ )

n−i

pi

where pi

is the scalar coefficient, and τ = ( t−to

tf −to

).

Plot the obtained trajectory indicating the start, end,

and waypoint clearly. Also plot the corresponding velocity and acceleration profiles.

(c) To complicate things, an evil robot of radius 2 units appears at (5, 4) to steal his cookie. The robot,

whose radius is 1 unit, must avoid this evil robot in order to successfully deliver the cookie. Describe

how you would compute a trajectory accordingly. [Bonus] points for implementing it.