# introduction ## **Design of Autonomous Systems** ### csci 6907/4907-Section 86 ### Prof. **Sibin Mohan** --- ## autonomy --- ## autonomy what is "_autonomy_"? --- ## autonomy what is "_autonomy_"? we see various examples of it...
--- ### what are the _aspects_ of autonomy? --- ### what are the _aspects_ of autonomy? ||| |------------|-----------------------------------------------------------------------------| | **perception** | how do you "_see_" the world around you? | --- ### what are the _aspects_ of autonomy? ||| |------------|-----------------------------------------------------------------------------| | **perception** | how do you "_see_" the world around you? | | **sensing** | various ways to perceive the world around you (_e.g_, camera, LiDar) | --- ### what are the _aspects_ of autonomy? ||| |------------|-----------------------------------------------------------------------------| | **perception** | how do you "_see_" the world around you? | | **sensing** | various ways to perceive the world around you (_e.g_, camera, LiDar) | | **compute** | what do you "_do_" with the information about the world? | --- ### what are the _aspects_ of autonomy? ||| |------------|-----------------------------------------------------------------------------| | **perception** | how do you "_see_" the world around you? | | **sensing** | various ways to perceive the world around you (_e.g_, camera, LiDar) | | **compute** | what do you "_do_" with the information about the world? | | **motion** | do your computations result in any "_physical_" changes? | --- ### what are the _aspects_ of autonomy? ||| |------------|-----------------------------------------------------------------------------| | **perception** | how do you "_see_" the world around you? | | **sensing** | various ways to perceive the world around you (_e.g_, camera, LiDar) | | **compute** | what do you "_do_" with the information about the world? | | **motion** | do your computations result in any "_physical_" changes? | | **actuation** | what "_actions_", if any, do you take for said physical changes? | --- ### what are the _aspects_ of autonomy? ||| |------------|-----------------------------------------------------------------------------| | **perception** | how do you "_see_" the world around you? | | **sensing** | various ways to perceive the world around you (_e.g_, camera, LiDar) | | **compute** | what do you "_do_" with the information about the world? | | **motion** | do your computations result in any "_physical_" changes? | | **actuation** | what "_actions_", if any, do you take for said physical changes? | | **planning** | can you do some "_higher order_" thinking
(_i.e.,_ not just your immediate next move) | --- ## let us define **autonomy** --- ## let us define **autonomy** ||| |-----|------| | Autonomy is the ability to |
| || --- ## let us define **autonomy** ||| |-----|------| | Autonomy is the ability to
**perform given tasks** |
| || --- ## let us define **autonomy** ||| |-----|------| | Autonomy is the ability to
**perform given tasks**
based on the system's **perception** |
| || --- ## let us define **autonomy** ||| |-----|------| | Autonomy is the ability to
**perform given tasks**
based on the system's **perception**
without human intervention |
| || --- ## let us define **autonomy** ||| |-----|------| | Autonomy is the ability to
**perform given tasks**
based on the system's perception
without
human intervention |
| || --- ## autonomous systems ||||| |------|------|------|------| |**cyber** | | | | --- ## autonomous systems ||||| |------|------|------|------| |**cyber** |
| | | --- ## autonomous systems ||||| |------|------|------|------| |**cyber** |
|
| | --- ## autonomous systems ||||| |------|------|------|------| |**cyber** |
|
|
| --- ## autonomous systems ||||| |------|------|------|------| |**cyber** |
|
|
| |**physical** | | | | --- ## autonomous systems ||||| |------|------|------|------| |**cyber** |
|
|
| |**physical** |
| | | --- ## autonomous systems ||||| |------|------|------|------| |**cyber** |
|
|
| |**physical** |
|
| | --- ## autonomous systems ||||| |------|------|------|------| |**cyber** |
|
|
| |**physical** |
|
|
| --- ## autonomous systems ||||| |------|------|------|------| |**cyber** |
|
|
| |**physical** |
|
|
| || hence, they fall under the class of systems → **cyber-physical** systems --- ## sensors and actuators...
--- ## sensors and actuators...
...are **everywhere**! --- ## sensors and actuators...
...are **everywhere**! the **embedded** components → interactions with the real world --- ## sensing and actuation in the real world --- ## sensing and actuation in the real world consider the following example of two cars...  --- ## sensing and actuation in the real world the second car is approaching the first  --- ## sensing and actuation in the real world **sensors** → constantly gathering data/sensing
--- ## sensing and actuation in the real world **sensors** → constantly gathering data/sensing
periodic sensing
--- ## sensing and actuation in the real world on detection (of other car) → quickly **compute** what to do
--- ## sensing and actuation in the real world on detection (of other car) → quickly **compute** what to do
periodic sensing
computation
--- ## sensing and actuation in the real world take **physical action** → say by braking _in time_
--- ## sensing and actuation in the real world take **physical action** (actuation) → say by braking _in time_
periodic sensing
computation
actuation
--- 1. periodic sensing 2. computation 3. actuation ---
periodic sensing
computation
actuation
---
periodic sensing
computation
actuation
## "**control**" --- ## remember this? on detection (of other car) → quickly **compute** what to do
--- ## remember this? on detection (of other car) →
quickly
**compute** what to do
--- ### "quickly" compute complete computation/actuation → before a **deadline** --- ### quickly compute complete computation/actuation → before a **deadline**
## real-time system --- ### finally, we come back to **sensing**
--- ### finally, we come back to **sensing**
we see
one
sensor (maybe LiDAR)
--- ### finally, we come back to **sensing**
we see
one
sensor (maybe LiDAR)
reality →
multiple
sensors
--- ### finally, we come back to **sensing**
we see
one
sensor (maybe LiDAR)
reality →
multiple
sensors
cameras, radars, lidar, etc.
---
---
multiple sensors in an autonomous vehicle → need to _combine_ them somehow ---
multiple sensors in an autonomous vehicle → need to _combine_ them somehow ## sensor fusion --- once we have information from the sensors (fused or otherwise)...
## state estimation (**kalman** filter, **ekf**) --- ### so far, we've (briefly) talked about... -v- ### so far, we've (briefly) talked about...
## sensing -v- ### so far, we've (briefly) talked about...
## actuation -v- ### well, we haven't discussed it... ...but there is an **operating system** (OS) in there
-v- ### well, we haven't discussed it... ...but there is an **operating system** (OS) in there
and it includes **real-time** mechanisms -v- ### we also (again, briefly) discussed...
## ekf note: ekf is versatile; can be used for sensor fusion, slam, etc. -v- ### all of it integrates with...
## control -v- ### some **real-time** functions in there...
like _braking_, _engine control_ --- if we design such a system...
--- if we design such a system...
### is it "**autonomous**"? --- ### missing some "higher order" functions --- ### missing some "higher order" functions so, from the perspective of the autonomous system, --- ### missing some "higher order" functions so, from the perspective of the autonomous system, - _where_ am I? --- ### missing some "higher order" functions so, from the perspective of the autonomous system, - _where_ am I? - _where_ do I need to go? --- ### missing some "higher order" functions so, from the perspective of the autonomous system, - _where_ am I? - _where_ do I need to go? - _how_ do I get there? --- ### missing some "higher order" functions so, from the perspective of the autonomous system, - _where_ am I? - _where_ do I need to go? - _how_ do I get there? - _what_ obstacles may I face? --- ### missing some "higher order" functions so, from the perspective of the autonomous system, - _where_ am I? - _where_ do I need to go? - _how_ do I get there? - _what_ obstacles may I face? - _how_ do I avoid them? --- let's not forget the most important question of all...
### **why** is gamora? --- ## high-order functions how do we tackle these issues: - _where_ am I? - _where_ do I need to go? - _how_ do I get there? - _what_ obstacles may I face? - _how_ do I avoid them? --- ## high-order functions
where am I?
where do I need to go?
how do I get there?
what obstacles may I face?
how do I avoid them?
--- ### let's look at **additional functionality** that is required -v- ## slam simultaneous localization and mapping
figure out **where** we are -v- ## waypoint detection
how to move in the _right_ direction at the **micro** level, _i.e.,_ find **waypoints** -v- ## yolo "you only live once" -v- ## yolo "you only **look** once" -v- ## yolo "you only **look** once"
object **detection** model that uses convolutional neural networks (cnns) -v- ## object avoidance
avoid objects in **immediate path** -v- ## path planning
how to get to **destination** at the **macro** level → uses waypoints --- ## compute platform to run all of these functions
low power, embedded platforms --- ### still some **non-functional** requirements remain note: any guesses what they could be? --- ## safety!
safety of → operator, other people, the vehicle, environment --- ## safety!
safety of → operator, other people, the vehicle, environment
### **cross-cutting** issue → affected
by
**all** parts of system --- ## security
### cross-cutting issue →
can affect
**all** components ---
a (loose) map of this course