Imagine the scene: it’s late at night, and you’re driving through a dark forested area, the only thing on your mind is how nice it would be to relax at home. However, there is a slight problem: you don’t know where you are or what direction to take. You’re effectively lost.
What would you need to do to get back home? Well, first of all, you would need to determine where exactly you are, then you would need to decide what path to take back home, and finally, you would want to make sure that you stay on that path and don’t deviate from it.
This is essentially the essence of GNC - Guidance, Navigation, and Control. Simply put, navigation is about determining where you are, guidance about determining what path to take to reach your destination, and control about determining how to stick to that path.
With the advent of modern technology, guidance and navigation are all pretty simple; just grab out your phone and open the maps app, and it will connect to GPS and tell you exactly where you are (navigation). Using the information about your current position, it will generate a path for you to get back home (guidance). All you need to do is know how to drive and operate a car to get back home safely (control).
More specifically, navigation is about determining not just your position but your entire state. Which includes:
- position - the vehicle’s current location in space
- velocity - the rate of change of the vehicle’s position
- attitude - the orientation of the vehicle
- angular velocity - the rate of change of the vehicle’s attitude/orientation
In practice, a vehicle’s state is determined using a mix of electronic sensors and state estimation algorithms that fuse sensor data.
Guidance is about determining a trajectory that brings you from your current state (that being where you currently are) to your desired state (that being where you want to go). It is important to note that your trajectory is not simply just a line from point A to B; it contains the state your vehicle should be at and the control inputs that it should execute for each time period of the journey.
There are many ways of finding what trajectory to take; the one that will interest us the most is finding the most efficient trajectory to get from point A to B. That is finding a path that takes us to a place in the shortest amount of time, using the least amount of fuel, or some other performance criterion. The topic of trying to find a trajectory that optimises for some performance criterion is known as optimal control.
Now control is all about making sure that you stick to your trajectory. The basic gist of control is that we compare our desired state (where we want to be) to our current state (where we actually are); the difference between the desired and current state is known as error. Based on the value of the error, we calculate a control action to be executed, which will change our current state closer to the desired state. This cycle repeats until our current state is close enough to our desired state (we’re trying to minimise error).
Say you’re driving a car and want to be in the centre of the lane (desired state), but you’re driving to the left of the centre (current state), you notice the difference between where you are and where you want to be (error) and start steering to the right (control action) until you’re in the centre of the road.
In this journey, navigation will be a relatively minor concern since, in a simulated environment, we will have direct access to the true state. So our primary concern will be with guidance and control.
