EECE 5550 Mobile Robotics – Fall 2020 Assignment 2
Due: Monday, October 19th, 10:00PM EDT
The due date will NOT be extended. Late homework is NOT accepted.
Problem 1
Consider the differential drive mobile robot shown in figure below.
a. Find the rotation matrix relating local robot velocities with respect to global coordinates.
b. Calculate the robot velocities in the global coordinate frame if 𝑢 = 15 cm/s, 𝑣 = 0, 𝜔 = 0 rad/s, and 𝜃 = 𝜋/6
rad.
c. Calculate the robot velocities in the global coordinate frame if 𝑢 = 0 cm/s, 𝑣 = 0, 𝜔 = 2 rad/s, and 𝜃 = 𝜋/3 rad.
d. Calculate the robot velocities in the global coordinate frame if 𝑢 = 25 cm/s, 𝑣 = 0, 𝜔 = 4 rad/s, and 𝜃 = 𝜋/4 rad.
e. Calculate the robot velocities in local coordinates to obtain a straight-line motion defined by 𝑥̇0 = 10 cm/s, 𝑦̇0 =
̇
10 cm/s, and 𝜃0 = 10 rad/s when 𝜃 = −3𝜋/4 rad.
Problem 2
̇̇ Consider the differential drive mobile robot in Problem 1. Assume that the wheel spinning speeds are given by 𝜙1 and 𝜙2.
a. Calculate the Instantaneous Center of Rotation in robot (local) coordinates.
b. Calculate the rolling constraints for both drive wheels.
c. Calculate the sliding constraints for both drive wheels.
d. Are the kinematic constraints holonomic or nonholonomic?
e. What can you say about the mobility of the robot?
Problem 3
Consider the triangular robot with 3 wheels shown below. Assume that the robot chassis is an equilateral triangle with a side length of 40 cm, the origin of the local (robot) coordinate frame (𝑂1) is at the geometric center of the triangle and all wheels are fixed. Also assume that the wheel center point is equidistant from the corner of the triangular robot and the geometric center.
a. Calculate the rolling constraints for all wheels.
b. Calculate the sliding constraints for all wheels.
c. What can you say about the maneuverability, mobility, and steerability of the robot?
Problem 4
We have a mobile robot with a configuration like below. All wheels are Mecanum wheels with angle 𝛾. Calculate the ̇
spinning velocity of each wheel so the robot moves with global velocities 𝑥̇ (𝑡), 𝑦̇ (𝑡), and 𝜃(𝑡). What should the spinning velocities be so the robot goes straight up, goes straight to the right, or rotates in-place counter-clockwise? Assume whatever you need in symbols.
Problem 5
Consider the triangular robot with 3 wheels shown below. Assume that the robot chassis is an equilateral triangle with a side length of 30 cm, the origin of the local (robot) coordinate frame (𝑂1) is at the geometric center of the triangle and all wheels are fixed. Also assume that the wheel center point is equidistant from the corner of the triangular robot and the geometric center.
a. Calculate the rolling constraints for all wheels.
b. Calculate the sliding constraints for all wheels.
c. What can you say about the maneuverability, mobility, and steerability of the robot?
d. How does the mobility of the robot change if we change one of the wheels into a castor wheel? What kind of motions
can the robot perform?
Problem 6
Implement the following matrix function using lambda-expressions in Python:
cos(𝑡) − sin(𝑡) 0 𝑅(𝑡) = [sin(𝑡) cos(𝑡) 0]
001
a. Perform the following operations using the “numpy” module in Python (you should replace the # lines with your own code):
>>> # Define your R(t) as a lambda-function here. >>> r = R(np.pi/6)
>>> # Calculate the inverse of the matrix R(t).
>>> # Calculate the determinant of the matrix.
>>> # Verify that the columns of the rotation matrix are mutually orthogonal.
>>> # Verify that the norms of each column and row of the matrix are 1.
>>>
>>> import numpy as np
b. Repeat part (a), for two other values of t.
c. Interpret the results and summarize the properties of the matrix R.
Problem 7
If × indicates the vector cross product, find a matrix 𝑆3×3 as a function of 𝑣1 so that 𝑣1 × 𝑣2 = 𝑆(𝑣2)𝑣2, where 𝑣1, 𝑣2 ∈ R3.
Problem 8
In this problem, you will obtain a numerical solution to a differential equation in Python.
a. Consider the following differential equation representing the motion of a pendulum with a massless string of length
𝐿 and a point mass 𝑚 at the end.
d2𝜃 = − 𝑔 sin 𝜃 d𝑡2 𝐿
where 𝑔 is the gravitational acceleration and 𝜃 is the angle of the pendulum measured from the vertical. Rewrite the given second-order differential equation as a system of first-order equations by following the steps below:
̇ i. Define 𝑥1 = 𝜃, and 𝑥2 = 𝜃.
ii. Calculate 𝑥̇1 in terms of 𝑥2.
iii. Calculate 𝑥̇2 in terms of 𝑥1 and 𝑥2 using the differential equation above.
b. Read the manual of the Python function “scipy.integrate.odeint”.
c. Create a Python function called “derfunc” which gives the derivative vector of the differential equation.
def derfunc(y, t):
g = 32 # ft/s^2
L = 2 # ft
ydot = [0,0]
ydot[0] =
ydot[1] =
# The first equation from part (a) # The second equation from part (a)
̇
d. Solve the equation using “scipy.integrate.odeint” for 𝑡 ∈ [0,1], 𝜃0 = 0, and 𝜃0 = 10.
e. Generate a plot of the pendulum angle versus time.
f. Generate a plot of the pendulum angular velocity versus time.
Problem 9
Draw the configuration space of the robot for the robot workspace below:
Problem 10
Draw the Voronoi diagram for the robot workspace of problem 8.
Problem 11
Apply the wavefront algorithm to the occupancy grid below. Obstacles are shown in gray, S denotes the start and G denotes the goal. Assume the grid is 8-connected (i.e. the robot can make 45° as well as 90° turns). Mark each cell with its wavefront value, and draw a line representing one possible path from start to goal.
Problem 12
Define a heuristic function for this domain (i.e. what is the heuristic value for state x?). Do not use a constant value (e.g. h(x) = 1).
h(𝑥) =?
In the domain of problem 10, given your heuristic function, what path would Greedy Best-First Search return? Assume the grid is still 8-connected.
Problem 13
Consider the graph below:
a. Write down the order in which nodes are expanded by Breadth First Search (BFS) starting at node A. Assume that alphabetic order is used to break a tie when deciding among several nodes (i.e. choose the letter that comes first in the alphabet). You should also draw a table which shows the algorithmic stages of performing BFS on the graph.
b. Write down the order in which nodes are expanded by Depth First Search (DFS) starting at node A. Assume that alphabetic order is used to break a tie when deciding among several nodes (i.e. choose the letter that comes first in the alphabet). You should also draw a table which shows the algorithmic stages of performing DFS on the graph.