Placeholder Image

Subtitles section Play video

  • The goal of this video series is to give you a basic understanding of the autonomous navigation problem.

  • What some of the terms are, some of the needed algorithms, and what makes this problem difficult in certain environments.

  • So that's what we're going to cover over a few videos.

  • But in this first one, I want to set the stage a bit and just introduce the idea of autonomous navigation.

  • I think it's pretty interesting, so I hope you stick around for it.

  • I'm Brian, and welcome to a MATLAB Tech Talk.

  • Navigation is the ability to determine your location within an environment and to be able to figure out a path that will take you from your current location to some goal.

  • Navigating in the wilderness might require, say, GPS to determine where you are, and a map to plan the best path to get around mountains and lakes to reach your campsite, or whatever your goal is.

  • Now, autonomous navigation is doing exactly this, but without a human in the loop.

  • Broadly speaking, it's how we get a vehicle to determine its location using a set of sensors, and then to move on its own through an environment to reach a desired goal.

  • And when I say vehicle, I mean any kind of mobile machine.

  • It could be a car traveling down a road, or a UAV making its way back to the airport, or a spacecraft journeying across the solar system, or a submersible exploring the depths of the ocean, or some other mobile robot.

  • In this way, we've given the vehicle autonomy, the ability to make decisions and act on its own.

  • But there are different levels of autonomy, and they range from a vehicle that is simply operated by a human from a remote location, but it has some simple algorithms on board that will take over and autonomously keep it from running off a cliff or something, all the way up to a fully autonomous vehicle with no human interaction at all.

  • Now, for this series, we're mostly going to focus on what it takes to make a fully autonomous vehicle.

  • This is because there's a lot more involved in it, and we can apply that knowledge to other vehicles that fall elsewhere on this autonomy spectrum.

  • But even with fully autonomous navigation, we can further divide this into two different approaches.

  • A heuristic approach, where autonomy is accomplished through a set of practical rules or behaviors.

  • This doesn't guarantee an optimal result, but it's good enough to achieve some immediate goal.

  • The benefit of heuristics is that you don't need complete information about the environment to accomplish autonomy.

  • And then on the other side, there is an optimal approach, which typically requires more knowledge of the environment.

  • And then a plan and resulting actions comes from maximization or minimization of an objective function.

  • So let's go into a little bit more detail into each of these.

  • An example of a heuristic approach is a maze solving vehicle where the simple rules might be to drive forward and keep the wall on the left.

  • So it turns left when the wall turns left, makes a U-turn at the end of a wall, and it turns right at a corner.

  • This type of autonomous vehicle will proceed to wander up and down the hallways until it happens to reach the goal.

  • So in this way, the vehicle doesn't have to maintain a map of the maze or even know that it's in a maze in order to find the end.

  • It follows an optimal path, but it works, at least as long as it doesn't get itself stuck in a loop.

  • Other types of heuristic-based autonomy include things like the simplest of robotic vacuums, where when it approaches an obstacle like a wall, it rotates to a new random angle and just keeps going.

  • And as time increases, the chance that the entire floor is covered approaches 100%.

  • And so in the end, the goal of having a clean floor is met, even if the vehicle doesn't take the optimal path to achieve it.

  • So this brings us to the second type of fully autonomous vehicles, ones that are solving an optimization problem.

  • In these systems, the vehicle builds a model of the environment, or it updates a model that was given to it, and then it figures out an optimal path to reach the produce a much better result than their heuristic-based counterparts.

  • Possibly the most famous at the moment is autonomous driving, where a vehicle has to navigate to a destination through dynamic and chaotic streets, and relying on simple behaviors like drive forward and keep the curb to your right is probably not the best approach to safely and quickly get to where you want to go.

  • It makes more sense to give the vehicle the ability to if that model is imperfect, and then use it to determine an optimal solution.

  • Now, it's not usually the case where a solution is either 100% heuristic or 100% optimal.

  • Often we can use both approaches to achieve a larger goal.

  • For example, with an autonomous car, when it approaches a slower car, it has to make a decision to either slow down or to change lanes and pass.

  • Now, if it was going to make this decision optimally, it would have to have knowledge beyond the front car to determine if changing lanes is the best solution, and that can be difficult to obtain.

  • So possibly a better solution is to have a heuristic behavior that says something like, if it's safe to do so, always attempt to pass slower cars.

  • And once that decision is made, an optimal path to the adjacent lane can be created.

  • And in this way, these two approaches can complement each other depending on the situation.

  • Autonomous cars aren't the only examples of systems that make use of these two approaches.

  • There are other ground vehicles like they have in Amazon warehouses that have to quickly maneuver to a given storage area to move packages around while not running into other mobile vehicles and stationary shelves.

  • Or vehicles that search within disaster areas that have to navigate unknown and hazardous terrain.

  • There are space missions like OSIRIS-REx which has to navigate around the previously unvisited asteroid Bennu and prepare for a located touch and go to collect a sample to return to Earth.

  • There are robotic arms and manipulators that navigate within their local space to pick things up and move them to new locations.

  • There's UAVs and drones that survey areas.

  • And many, many more applications.

  • But autonomous navigation isn't necessarily easy, despite how common it's becoming in the world.

  • And most of what makes it difficult is that the vehicle has to navigate through an environment that isn't perfectly known.

  • And so in order to create a plan, it has to build up a model of the environment over time.

  • And the environment is constantly changing, and so the model has to be constantly updated.

  • And then there's obstacles that move around and aren't necessarily obvious, so sensing and recognizing them is difficult as well.

  • And the more uncertainty there is in the environment and the environment model, the harder the navigation problem becomes.

  • For example, building an autonomous spacecraft that's orbiting the Earth is typically a simpler navigation problem than an autonomous aircraft, at least in terms of environment complexity.

  • Space is a more predictable environment than air because we have less uncertainty with the forces that act on the vehicle, and we have more certainty in the tracks that other nearby objects are on.

  • Therefore, we can have more confidence in a plan, and then have a better expectation that the spacecraft will autonomously be able to follow that plan.

  • With aircraft, we have to deal with unknown turbulence, and flocks of birds flying around, and other human-controlled planes, and landing, and taxiing around an airport.

  • But an autonomous aircraft is itself typically a simpler problem than an autonomous car, for the same reasons.

  • There's much more uncertainty driving around in a city than there is flying around in relatively open air.

  • So the thing I want to stress here is that what makes these vehicles impressive is not the fact that they can move on their own.

  • I mean, it's pretty trivial to get a car to drive forward by itself.

  • You just need an actuator that compresses the gas pedal.

  • The car will take off and drive forward.

  • The difficult part is getting it to navigate autonomously, within an uncertain and changing environment.

  • For the car, it's to get to the destination efficiently, and to follow local traffic laws, and to avoid potholes and balls rolling into the street, and to reroute around construction, and to avoid other cars driven by unpredictable humans, and to do all of this in the snow, and in the rain, and so on.

  • It's not an easy feat.

  • So, to understand how we get vehicles to do that, and other incredible autonomous tasks, we need to revisit the capabilities of autonomous systems that we covered in the first video of the Sensor Fusion and Tracking series.

  • And if you haven't seen it and want a longer description, I've left a link below.

  • But here's a quick recap.

  • Autonomous systems need to interact with the sensors.

  • This sensor data has to be interpreted into something that is more useful than just measured quantities.

  • These are things like understanding where other objects and obstacles are, and building a model or a map of the environment, and understanding the state of the autonomous vehicle itself, what its location is and orientation.

  • And with this information, the vehicle has everything it needs to plan a path from the current location to the goal, avoiding obstacles and other objects along the way.

  • And then the last step is to act on that plan, to drive the motors and the actuators in such a way that the vehicle follows the path.

  • The actuators impact the physical world, and the whole loop continues.

  • We sense the environment, we understand where we are in relation to landmarks in the environment, we perceive and to follow that plan, and so on until we get to the goal.

  • Now, in the Sensor Fusion video, we talked about how Sensor Fusion and Tracking straddled the Sense and Perceive steps.

  • And while Sensor Fusion and Tracking are absolutely necessary parts of autonomous navigation, in this series, we're going to focus our attention on other algorithms within the Perceive step, and on the Planning step.

  • And we're going to answer questions like, what does it mean to How does a vehicle know where it is within that model?

  • How does a vehicle track other large objects and obstacles?

  • What are some of the ways path planning is accomplished?

  • And then how do you know that the system is going to work in the end?

  • So that's what you have to look forward to.

  • In the next video, we're going to explore how a vehicle can determine its location within an environment model using a particle filter and Monte Carlo localization.

  • So if you don't want to miss that, or any other future tech talk videos, don't forget to subscribe to this channel.

  • And if you want to check out my channel, Control System Lectures, I cover more control theory topics there as well.

  • Thanks for watching, and I'll see you next time.

The goal of this video series is to give you a basic understanding of the autonomous navigation problem.

Subtitles and vocabulary

Click the word to look it up Click the word to find further inforamtion about it