Highlights
The following questions explore motion planning via the material from weeks 1-6 (Ques- tion 1 on weeks 1-3, Question 2 on weeks 4-6). You will submit a report through TurnItIn justifying the design decisions you have made and exploring their consequences. All matlab code must also be submitted through TurnItIn.
While you are encouraged to discuss approaches with tutors and your fellow students, all code, analysis and submitted writing must be entirely your own work.
Question 1: Path Planning
The task is to design a path for a space probe to inspect various sites along an abandoned space station in deep space. The space station can be modelled as a cylinder with two rectangular solar arrays attached. The probe can be modelled as a cube. Dimensions and details are provided in Table 1. A spherical bounding surface for the probe is used to check for collisions between the two spacecraft. We have provided two Matlab functions to help with this:
Your task
Your task is to design a path planning algorithm that constructs a path for the robot to visit a series of locations while avoiding collisions at all times. The robot must inspect: top and bottom of both solar panels and the cylinder, as well as the ends of the cylinder.
The robot must come within 5m of the space station to take images with sufficient resolution. Assume that it can capture a 5m x 5m region with each image.
We suggest investigating probabilistic roadmaps (PRMs) and Dijkstra’s algorithm or A ⋆ . If you use A ⋆ , justify your choice of heuristic and compare its performance to Dijkstra’s algorithm.
You are free to use basic Matlab functions and your code from Matlab Grader quizzes. You may not use any packages that implement Dijkstra, A ⋆ , PRMs, or similar graph-based motion planning algorithms. Basic Matlab functions are considered to be those found in the documentation (type doc in the command window) under the following headings: Language fundamentals, Graphics, Programming Scripts and Functions, and under Mathematics the following subheadings: Elementary Math, and Linear Algebra.
Question 2: Control Design
Define a “world” frame as the frame of reference with the space station centred at the origin. Let x = ( x, y, z ) ⊤ be the position of the probe in the world frame, and let v = ( v x , v y , v z ) ⊤ be its velocity in the body frame. Write q ¯ = ( q 0 , q ⊤ ) ⊤ for the quaternion describing the orientation of the probe’s body frame, where q = ( q 1 , q 2 , q y ) ⊤ is the vector component of the quaternion. Its angular rates are ω = ( ω x , ω y , ω z ) ⊤ , also in the body frame. The control inputs to the system are F = ( F x , F y , F z ) ⊤ , the thrust vector from the probe’s three main thruster aligned with each axis of the body frame, and T = ( T x , T y , T z ) ⊤ , the applied torque from three pairs of de-coupled attitude thrusters which are arranged to provide no net force.
The equations of motion for a 6 degree of freedom rigid body in zero-g are as follows:
These equations may look scary, but Matlab is your friend. You can linearise the equa- tions of motion using symbolic variables and the jacobian() function. We have provided the following set of functions:
1. spacecraft dynamics(): an implementation of the equations of motion
2. nonlinear dynamics(): also an implementation of the equations of motion, but treat- ing q0 = 1 − q⊤q You should use this function alongside jacobian() to linearise the system. It avoids issues with controllability of the quaternion kinematics.
3. performance objective(): a function to compute z = c(x), where z is the per- formance objective to minimise in your cost function. This converts the quaternion components of the state vector to Euler angles so they are more meaningful in control
4. my eul2quat(), my quat2eul(), my quat2dcm(): helper functions to convert be- tween Euler angles, quaternions, and rotation matrices.
All of these functions work with both numeric and symbolic variables, which you may use to your advantage
Your task
You are designing a controller to stabilize a particular pointing direction.
1. For a selection of different operating conditions (equilibrium states), construct lin- earized equations of motion in the form
x˙ = Ax + Bu.
2. Design state-feedback controllers via LQR to stabilize the desired position and pointing direction. Justify your choice of weighting matrices and examine the effect of different choices on the closed-loop system response.
3. Examine the range of initial conditions that can be stabilized, the effect of external disturbances, and the effect of noisy state measurements.
Report Quality
10 marks will be allocated for the presentation and structure of your report and any associ- ated code. There is a strict page limit of 10 pages, i.e. we will not read or mark anything past page 10. We recommend your report is closer to 5 pages if possible. Your Matlab code will be submitted separately, but you can include short snippets in your report if you like. Do not attach all code as an appendix.
It is expected that your report is well-written, clearly formatted, design decisions are well justified, and the results are concisely but thoroughly analysed, and that your code is well-structured, legible, and properly commented. Figures must be legible and clear.
This Mathematics has been solved by our PhD Experts at My Uni Paper.
© Copyright 2026 My Uni Papers – Student Hustle Made Hassle Free. All rights reserved.