Autonomous Systems - 1
Aggregazione dei criteri
Assistente AI
Trascrizione
00:04:87Alessandro Brighente: Okay, Hi, everyone.
00:23:480Alessandro Brighente: Okay. Moving on with the autonomous driving
00:27:660Alessandro Brighente: driving back? So what are what is the current state of autonomous speaker. Right? So we said, last time that we have different levels of either know the measure or full automation. And okay, but what is currently available in the world. So
00:49:42Alessandro Brighente: sometimes we have examples of autonomous cars that are deployed either in Geo fence areas or in some rural areas. We have some examples of bus transportation systems in China, where you have fully autonomous vehicles. And
01:13:110Alessandro Brighente: what is
01:17:370Alessandro Brighente: restraining. Somehow the adoption of this vehicle. Right? But what are the problems that we have? With the deployment of autonomous vehicle? Where the 1st thing is that you need to trust these vehicles right? And not necessarily users are going to trust fully autonomous vehicles.
01:32:280Alessandro Brighente: And then you have some technological problems, right? So ensure that everything is working fine. The detection system is working. The communication system is working. Blah blah, and then you have some ethical issues. Right? So if something
01:51:30Alessandro Brighente: bad happens.
01:52:490Alessandro Brighente: whose fault is it really something that is really bad? But for what we care about is security right? We want to ensure that no attacker can hijack the vehicle or doing something bad to the vehicle that prevents it from correctly or safely driving. So there's these
02:10:210Alessandro Brighente: example of a
02:12:890Alessandro Brighente: hacking, autonomous cars, which is
02:16:460Alessandro Brighente: see whether it still works.
02:50:930Alessandro Brighente: Come on
02:55:990Alessandro Brighente: well, ideally, you have these.
03:01:470Alessandro Brighente: no, okay, it's not possible. But okay, you can.
03:10:150Alessandro Brighente: Good. So the thing is that these autonomous cars should be able to to recognize
03:15:855Alessandro Brighente: everything that they have on the on the road. Thanks to this system of cameras, right? So ideally they should be able to recognize pedestrians. They should be able to automatically recognize traffic sign and they should be able to.
05:16:900Alessandro Brighente: So yeah, you you take a look at the and the video. But basically, what happens is that, as I mentioned, these cards should be able to recognize all the signs of the sea on the street. Right? And there was this thing with the again. Uber drivers were not very happy about having autonomous cars that could take over the job. And so they they found out that if you take one of these orange cones and put them in front of the car.
05:47:340Alessandro Brighente: Yeah.
05:49:27Alessandro Brighente: Basically, the camera doesn't recognize the fact that the phone is on the street, or whether there's something actually that prevents the car from moving on. So we'll just that the image and the feature of the phone will just stop right? So it's there and doing nothing. And the car is not working anymore. Right? So though this is very
06:08:600Alessandro Brighente: stupid, somehow, right? It's something that prevents the adoption of autonomous cars, because you have a very simple example on how you can prevent them from correctly work. Right? So we'll deal with some of the security issues that we have with cars, and we'll start with the with some information or some basic knowledge on how these autonomous
06:33:577Alessandro Brighente: driving tasks work. Right? So how cars use autonomous algorithms. So the 1st one is cruise control. Okay?
06:44:600Alessandro Brighente: And control you, you set up a target speed for the vehicle and let the vehicle drive at that specific speed. Right? So it's a very simple mechanism. It's
06:57:40Alessandro Brighente: very basic form of automation, right? And what it does is basically checks the speed of the car, the current speed of the car and compare it with the with the target value. And if the current speed is below the target value. It would push the the throttle. If it said, it's the opposite, it will unpuh somehow. The throttle right? Try to reduce reduce the speed of the car.
07:23:260Alessandro Brighente: Okay, the way it does this is through a control system, and we have a very simple proportional, integral and derivative. And we'll get on how that works. But basically, the idea is that you have this feedback mechanism from which you need to take a real and live feed
07:44:828Alessandro Brighente: data from the vehicle, from the speed of the vehicle, and compare it with the with the target reference, and to take actions based on that. Okay? So you see that we have, some of the basic features that we described last time. So the fact that you need to be able to to gather sensitive information from the car. Although this is very simple, like, you just need the speed of the car.
08:06:60Alessandro Brighente: and you need. You have some
08:09:380Alessandro Brighente: very simple form of part planning. Right? You need to decide whether you want to increase or decrease the speed of the car.
08:18:180Alessandro Brighente: Okay? So you see, I mean, we can talk about automation here. It's not full automation, right? It's a very simple mechanism. And indeed, many cars nowadays have these this mechanism. The driver should be there to to take over control whenever it's needed, right? The car is not automatically braking. For instance, the car just knows that it needs to maintain target speed set by the driver. But that's it. The car knows nothing more than that.
08:45:680Alessandro Brighente: Okay, so yeah, this is what they just said, it's some basic stuff on control theory. So when we have so when we talk about control theory, the idea is to design a controller, which is this device that needs to to take decisions on behalf of the device. It's in the system. But it's in
09:05:450Alessandro Brighente: and it, monitors, the process, whatever process we're talking about, right? So when we talk about controller and controllers in general, we are not necessarily talking about what happens in the car when we will talk about in industrial control systems, the thing will exactly be the same. Okay, you have this device that gets live, feed, and perform some operational computes the error with with reference to a set point. Okay and
09:34:330Alessandro Brighente: And then it would take decision. We will adjust the system to match as close as possible. This reference point, which can be translated into something like we are computing an error signal, which is the difference between the current value of the system, the current state of the system and target and reference state of the system. And we want to minimize this error by taking some actions. Right? So I'm working on the actuators of the system that we are trying to control.
10:01:530Alessandro Brighente: So we have 2 types of controllers, mainly 2 types of controllers. So the the example that you have in here is an open loop controller.
10:10:510Alessandro Brighente: So what you have is the input to the to the controller. Right? The controller is performing its its prediction, and it provides a control signal ut, and then you have the process, which is your access system? Right? The the of the car. Okay. So based on this ut value, the process will be adapted, and you will have an output value in here. Why, right?
10:37:450Alessandro Brighente: So you see, this is a bit different from different from what we said up to now in terms of error. Right? You don't have full control of the system. You just apply this control signal, and then you don't get actual feedback from from the system itself. Right? So an example of these is a boiler that needs to heat the water for a given amount of time.
11:00:860Alessandro Brighente: Right? You just know the control signal you need to provide. But you don't actually check the the actual value. You don't want to minimize the
11:09:80Alessandro Brighente: the error. Right? You just want to to get to that point. And so you have limited control. So this works for for very simple systems. Right? We cannot have something like that to control the speed of the car, for it's not going to work
11:23:644Alessandro Brighente: what they said we have in in cars in the system that we'll see is the closed loop or feedback controller?
11:31:670Alessandro Brighente: Okay? So in here, you see, actually, the thing about the error that I was mentioning. So here you have your reference and direct value, and you have the controller where it's magic. Then you have the the output signal from the controller. But it's the thing that
11:45:990Alessandro Brighente: controls the the system. And then here you have, the the output value right, which might be the speed of the car.
11:54:10Alessandro Brighente: You see this arrow in here just brought back to the controller. Okay, and this is where you you can do the difference. You have the difference between your reference value and the output value from your process. You. So you can actually, compare what the system is doing. Respect to your
12:13:500Alessandro Brighente: to your target value. Okay? So the cruise control system of the car, for instance, works exactly in this way, and the output of the process. You have the speed of the car, and you compare the output of the process. The speed with your reference value in here, compute the difference and try to minimize these this difference as much as possible.
12:36:320Alessandro Brighente: Okay, so in particular, what you have is the pad controller that I mentioned before. Right? So what does pad for? It basically means that you have 3 components in your controller the one the 1st one is the proportional the second one is the integral, and 3rd one is the derivative, and it's a proportional, integral and
12:59:230Alessandro Brighente: integral and derivative of the error signal that you that you measure the difference between the output of the system and the target value that you have in there. Good. So
13:13:60Alessandro Brighente: how we do. How do we go from the idea of the Pid Controller and the actual control strategy? Right? So how do we design this controller? Well, of course, it's not our job to design controller, but just to have an idea on how they work and how we then exploit them. It's nice. Okay? So let's just take a look at at the car.
13:39:260Alessandro Brighente: Okay, how do we control a car? Right? We were talking about the the cruise control. But that's not the only thing we can do with the with the cars. Right?
13:49:800Alessandro Brighente: the 2 basic control strategies that you have in cars is regarding the longitudinal movement and the lateral movement. Okay? So it's written longitudinal control and lateral control. But basically what it means with longitudinal control. We want to, indeed, control the longitudinal values from the vehicle.
14:09:250Alessandro Brighente: Right? So for instance, the the speed or the throttle value, the braking value and stuff with the lateral control. Instead, we want to control the the later movements of the of the vehicle right? So whether it needs to steer left or or right, and how much they the car needs to steer right? So the steering angle in the
14:32:140Alessandro Brighente: good. So we know that we want to control these 2 different banks, 2 different directions.
14:39:470Alessandro Brighente: And in order to do that, we need some, some model right? We need some basic model of the car that tells us how these different variables impact the behavior
14:49:800Alessandro Brighente: of the vehicle.
14:51:790Alessandro Brighente: We want something simple, right? As
14:55:230Alessandro Brighente: so starting point. At least, we want something that we can easily manage. And it's not over complicated. Right? So what we have is something that is called the the bicycle model usually for for cars. So it means that you model the car as a
15:10:700Alessandro Brighente: a bicycle. You you assume that you have 2 waves right and
15:18:270Alessandro Brighente: and
15:19:850Alessandro Brighente: what are the values of interest for for your car? Right? So you have this model, and you want to know the the state of the system.
15:30:690Alessandro Brighente: What is the state of the car? Well, the 1st thing is this. It's location right where the car is located in space
15:38:700Alessandro Brighente: introspect to the certain regiment system we get to there. So for the time being, let's just consider the location right? So we start building the the state of our system. So let's call queue the state of our system. We have X and Y again, the the location, then you have a value, theta, which is the angle, right, the the ceiling angle of the car, the direction which is pointing
16:07:580Alessandro Brighente: tool. Again, with respect to certain coordinate system. This is sometimes also called the the heading angle, right exactly where the car is.
16:18:990Alessandro Brighente: So the direction which the car is moving, and then you have the the the velocity, right? The the speed of the car. So the last variable in here. B, okay, so we we use these values right? These these 3 different components to
16:36:180Alessandro Brighente: to define the state of the card.
16:38:50Alessandro Brighente: Great. So now that we know the state of the car.
16:41:750Alessandro Brighente: what control does is trying to predict the next state of the car right, or trying to work on a control strategy for which we have control, or we can set the successive state of the car itself right? So, for instance, if we know that we, the the car, needs to go
17:01:490Alessandro Brighente: straight and not changing any heading angle right? Not changing the speed. So the only thing that we want to control is its location. So what should we do? Our control. Strategy should do nothing than letting the vehicle run. Okay. But this thing in here exactly describes this situation. So you have different states in time.
17:23:141Alessandro Brighente: For which theta is not changing. B is not changing. The only thing that is changing in Cx and Y coordinates because the B code is moving on. Okay.
17:32:890Alessandro Brighente: of course, we can make the system save a bit more complicated. We cannot more variables. Right? We can make it as legal as you want. But this is the the basic save that we can use and that we will use for
17:47:510Alessandro Brighente: the next slides will say.
17:53:230Alessandro Brighente: Okay, so
17:54:710Alessandro Brighente: here is the the bicycle model I was mentioning before. So you have your car right? If the car has its 4 wheels and stuff. But basically the approximation that we do is that we have not just 2 wheels in here, right? The one at the back is fixed. It doesn't rotate. The one in the phone is the one that is rotating. Okay?
18:15:900Alessandro Brighente: So you have some variables in here. One of the variables is a capital L, which is just a difference between the distance between the 2 wheels.
18:25:550Alessandro Brighente: and then you have an R and an F, which are basically the 1st one is the distance from the rear wheel to the center mass of the car, and the F is a distance from the center of mass in the the front wheel here.
18:40:250Alessandro Brighente: Okay, so you have, also some angles, some directions that you see. You see the value of the heading angles. You see there, this vector B, which is defining the speed of the cars.
18:52:940Alessandro Brighente: Okay? And some angles in here as well with reference to these focal point of the card.
18:59:630Alessandro Brighente: Okay? So we need something like that to define the the behavior of the car.
19:05:270Alessandro Brighente: We know that if we change any of these variables, then this is going to affect the state of the car right if we have a certain state now, right the the location of the car, the speed, and the heading, and we have a control strategy. That.
19:21:400Alessandro Brighente: Let's say, we need to design a control strategy that brings the car into a certain location. We need to understand whether that location is associated with a change of heading for itself. Right? So in order to change the heading, we need to work on some of these variables. Right? We need to change the the angle
19:37:350Alessandro Brighente: heading angle in order to get the the vehicle to the desired state.
19:44:410Alessandro Brighente: Okay, so what are the the variables that we can control for longitudinal control and for for lateral control. Right? The 2 things that we said before that we want to control for the car. Well, for the longitudinal control you have acceleration, right? It tells you, how the speed of the car changes in time
20:04:828Alessandro Brighente: and you have a range of accelerations right here, let's say that you have a Max, which is the maximum acceleration that you can achieve, and minus a prime max, which is the maximum deceleration which you can achieve right? How fast the the vehicle can can break. Basically how fast
20:24:740Alessandro Brighente: you can diminish the the velocity of the car in a certain amount of time.
20:30:20Alessandro Brighente: and then, for ladder control, you have the steering common in here which changes the heading of the vehicle in a range again. Right? You cannot just turn the wheels. How much you want, but you have a certain range, and let's say that this range is in between mine set the Max and then the Max
20:48:690Alessandro Brighente: good. So this defines what is the
20:54:730Alessandro Brighente: the control. Vector okay, so we have the state of the car, which is its location, the heading and speed. And now we said, we have the control, vector what variables can we change in order to change the state of the car which variables can we work in order to achieve a desired state?
21:13:520Alessandro Brighente: Okay, so again, our control vector is the acceleration and the steering. Because that's how we how we control the car. Right? So if you think about it. And if you think about how you drive utilizes. This is exactly what you're doing is exactly the the control performance that you're giving to the to the car. Right? So you are either accelerating, braking or steering
21:37:600Alessandro Brighente: the wheel.
21:42:89Alessandro Brighente: Okay? So here you have some math that you can check right? You you can understand, basically, how
21:52:690Alessandro Brighente: setting different values to these to the control vector, brings you to to different states. Right? So we are not going to. To go into the details of that. You just
22:04:300Alessandro Brighente: see how
22:07:690Alessandro Brighente: how this impacts your decision. But yeah, just to give you a very quick example.
22:25:360Alessandro Brighente: Let's say that you have your state, though.
22:29:790Alessandro Brighente: from the queue.
22:31:270Alessandro Brighente: so that you have your sales team right, which is
22:34:820Alessandro Brighente: next TYT.
22:38:140Alessandro Brighente: And forth.
22:41:40Alessandro Brighente: 1528,
22:43:395Alessandro Brighente: right? And you want to do something such that
22:47:810Alessandro Brighente: at t plus one.
22:51:480Alessandro Brighente: yeah, click this one you get to 4, zoom x 2 plus one.
22:57:130Alessandro Brighente: one plus one plus one.
23:03:760Alessandro Brighente: That's 1 good. So how do we get from here to here? Well, we we should do some some differences. Right? The differences means. How do I want the location to change? How do I want the heading to change? How do I want the speed to change. Well, this thing here, you might see it as a
23:26:590Alessandro Brighente: a differential equation or something that changes in time. Okay.
23:30:863Alessandro Brighente: basically what happens in the end is that through your controller vector and the the acceleration and the angles that we've seen before. You can do your math. Put some of the values in here and see how the the state changes. Right? So if you.
23:50:260Alessandro Brighente: he moved to save the
23:54:643Alessandro Brighente: if you give the control vector, certain values. How does the State change it?
24:00:640Alessandro Brighente: And this is exactly what you have in these in these slides. It's just
24:04:860Alessandro Brighente: as an example for you.
24:07:417Alessandro Brighente: What is important is this representation that you're seeing here? Right? So the fact that
24:14:769Alessandro Brighente: we will in the end user this notation right? Which tells you the the state of the car. So the fact that we use these in here. It's just the fact that we are considering all these valuables to be
24:30:100Alessandro Brighente: somehow linked to one another. Okay. And this defines the State transition equation. So how.
24:37:390Alessandro Brighente: given my current state by applying a certain control. Vector I will get to the different state, right? So how I, in the same transitioning
24:48:976Alessandro Brighente: linked to one another in time. So, indeed. Here you see that you have your starting point with the State, then you apply something on it. Right? This something is depends on the current state and some
25:09:520Alessandro Brighente: control values, and on top of this you will get your successive sales.
25:29:250Alessandro Brighente: So of course, all of these things depend on the fact that we are using the the bicycle model. If you were to use a different model, then you will have the. You will have something different. So, for instance, to to see this thing in here. Right?
25:42:860Alessandro Brighente: So why do we have that? The the location and time? T plus one? Right? So let's say, this is a time, t plus one
25:54:85Alessandro Brighente: easel.
25:59:630Alessandro Brighente: Did you have them physics, courses, or something like that?
26:03:530Alessandro Brighente: Yeah, I mean, it is space quality space. Right? It's velocity, times
26:09:870Alessandro Brighente: time, right? And so this is exactly what is happening in there. The the place you will be in the future depends on on your current speed and how much you will use to to get there.
26:22:790Alessandro Brighente: Okay, so this is exactly what the bicycle model is telling you is the most simple form of model that you can have on your on your car. Right? And it would also simply define the way your state changes in time.
26:41:120Alessandro Brighente: Can you remind me what Beta is in that equation? The the angle? Yeah. Isn't that what the angle
26:49:220Alessandro Brighente: your current angle, plus the angle that you will apply with your control strategy because we want. Maybe you want to change the angle, but that will depend on your current heading right? So if you know that you're heading at 19 degrees and you want to be at 45, you know whatever or you know, that you want to move in a direction that you will reach only if your angle would be 45, then you need to apply some corrections over there.
27:15:280Alessandro Brighente: Yeah.
27:34:550Alessandro Brighente: let's
27:36:840Alessandro Brighente: stick with this one, I mean, then we go through tomorrow in that example on.
27:42:140Alessandro Brighente: I'll control shortly for that.
27:47:830Alessandro Brighente: But again, the the main things.
27:57:830Alessandro Brighente: Okay, then.
28:04:900Alessandro Brighente: okay, if you're going to set the speed right, speed is
28:08:830Alessandro Brighente: meters per second.
28:11:440Alessandro Brighente: Nice circle. You have meters right? So the distance you will cover in a certain amount of time depends on your velocity, and how much time
28:19:659Alessandro Brighente: you, you move at that speed. And then another thing that is important is that the acceleration
28:27:630Alessandro Brighente: is, how
28:29:590Alessandro Brighente: does your speed up change
28:32:540Alessandro Brighente: in time? Okay, so we can approximate the acceleration as the derivative of your velocity in in time? Right? So if your acceleration is positive, it means that you're increasing your speed. If your acceleration is negative, it means that you're decreasing your speed right? So these are the basic things that you need in order to understand the model in there. And that's just a simple math.
29:04:230Alessandro Brighente: Okay? So let's go back to to the Controller. Right? So how these the cruise control, for instance, Controller works in the car. So we said that we have a pad controller, which accounts for the proportional average, the integral of the average derivative of the average. So it means that you have these 3 terms in here.
29:27:930Alessandro Brighente: Okay, so what is happening in here? You have your reference signal, which is the of these symbol in here, which is just computing a difference.
29:37:540Alessandro Brighente: Okay, so what is the difference taken?
29:44:410Alessandro Brighente: so you're computing the difference between your reference signal and the output of your process? Right? And so we we say that these is define as the error when you have an error value, and now you provide it as equal to the pi and d components.
29:58:470Alessandro Brighente: You do the math in here and get to your your control scene. Okay, you. This is a summation of the output of these modules and give your control scene as input to to the process, right? So why do we have these? Pid Controller, why do we care about having these different forms of error, or computing these values
30:21:780Alessandro Brighente: over the errors.
30:30:970Alessandro Brighente: good. So again, why do we have these Daily Controller? Well, the 1st one.
30:38:130Alessandro Brighente: then you just come back to the table stuff.
30:41:840Alessandro Brighente: Yes, so these are the
30:54:630Alessandro Brighente: it's called the gain of the Controller. It just tells you how much you want to account for one of these components. So
31:04:90Alessandro Brighente: do you want to care more about the the proportional value? Do you want to care more about the Internet value. Do you want all of them to account for the same amount in your control strategy? So these are values that you don't know in advance.
31:19:490Alessandro Brighente: You simply don't know in the dust, but you won't control the the gain of them right? Because basically, what happens is and what I was going to to tell you is the fact that
31:29:661Alessandro Brighente: the linear, the proportional part of the error is just the error like you want to check whether you're matching a speed if instead, you have a.
31:41:140Alessandro Brighente: it's right in here. So if you want to to control
31:46:190Alessandro Brighente: the distance, for instance, that you have traveled at a certain amount of time with a given speed, in order to deal with hills, for instance, right? You want to maintain a certain speed by going up a hill, then the integral part is your turn. If, instead, you want to control the acceleration, you have the derivative and the speed, as I mentioned before. Right? So if you control this part
32:11:170Alessandro Brighente: then you are dealing with how quickly your speed is going to change. And so you see that these different components have different impact on the control strategy of the car and the way the car will respond to
32:26:400Alessandro Brighente: some actions right? Because in the end what this thing is providing you is the control signal. So based on these, you know, how the the speed of the calculation is going to change. Okay? So
32:42:280Alessandro Brighente: getting back to the to the K values, you know that if the most important thing for you is that the car will travel at that specific speed.
32:53:740Alessandro Brighente: No matter the elevation it needs to cover, or something like that. Then the integral part is the time you want to care the most about right? So your Kp. Will be higher than the others. If you're instead more interested in the acceleration or faster. The speed of the car is going to change, then the derivative is the most important component for you, and you will have higher control gain for that part right? If all of them are equally important for you.
33:20:780Alessandro Brighente: then all of them should have the same game values.
33:26:340Alessandro Brighente: yeah. Again, as I mentioned. There's no predefined value that you can use for that. I mean, there are some basic controls that you can use, but then you may want to adjust the gain of your controllers. Of these different components of your controllers, based on some of live observations that you have over your system. Right? So the idea is, you design your controller, you you deploy your controller of certain
33:51:200Alessandro Brighente: how the the States changes and if they change according to to your plans.
33:57:600Alessandro Brighente: and if not, adjust the the gates. Okay, usually you don't do that on cars, real cars in the beginning, at least you do that. With simulators. Right? So there are simulators in which you can actually design your controller set in the Controller and have a very realistic environment for for vehicles, right? So you will see some of them for for the projects.
34:21:920Alessandro Brighente: usually, since controllers
34:27:120Alessandro Brighente: our engineering stuff, you design controls with Matlab, and you already have some controllers deployed over there. But then you may want to integrate them something a bit more realistic. So, for instance, you have a gazebo or Carla, which are
34:45:765Alessandro Brighente: the simulators where you have real life conditions right? Lighting the the changes and obstacles and other cars that are driving other drones that are moving, whatever right? It simulates a realistic environment. And you see if your controller is actually dealing in the correct way with the with the environment.
35:02:850Alessandro Brighente: Okay? So you can have your tests and adjust your controller.
35:08:670Alessandro Brighente: Good. So we have cruise control. Now, we have something that checks the speed of the car, and
35:16:430Alessandro Brighente: helps us.
35:18:10Alessandro Brighente: ensuring that the car will travel at a certain speed for as long as we want.
35:23:898Alessandro Brighente: But then it's not enough, right? It's not fully autonomous. It's beginning automation. The car is not taking decisions on its own. Besides just maintaining the speed.
35:37:590Alessandro Brighente: One of the problems with this, for instance, the 1st problem that we see is that if we maintain a certain speed while driving we might incur in some objects or other cars that are in front of the bus. We would like the speed of the car. Yeah, to be maintained at certain target level, but to be adjusted when there is any problem.
35:57:330Alessandro Brighente: So for these, we have the adaptive bruise control.
36:02:500Alessandro Brighente: Okay? What is the difference with respect to to push control that now we have also sensing capabilities. Right? The car can sense whether something is in its prompt.
36:14:250Alessandro Brighente: Okay? So it means that we again have cruise control exactly the same system that we see now that maintains the speed. But it also periodically checks for information coming from sensors. And some of these sensors might be radar might be light detection, arranging lighters or lasers, something that basically the people can use to compute the speed, the distance with another object on the front.
36:43:580Alessandro Brighente: Good. So now we have this capability. The car is measuring the distance. And he's reporting this value back to the controller that adjust the speed of the car. Also based on this information. Okay, so it's not just blindly driving along the way. Maintaining a certain speed. No, the speed is adjusted. Based on what the we could finds. On the
37:06:190Alessandro Brighente: on the street. Okay, so this provides us with the level one over autonomous guys, right? We have something
37:14:310Alessandro Brighente: more than we had them before.
37:25:220Alessandro Brighente: Well, it's
37:28:400Alessandro Brighente: good. So
37:30:88Alessandro Brighente: this is something that you can use, not only for a single car, right? So you might have your own car that is driving on the road. You want to set your your speed and ensure that no safety threat. Of course. But then this is also something that you can use for for platoons. So what is a platoon? Is a group of car with their autonomous driving capabilities? Right? And you can integrate these
37:57:477Alessandro Brighente: acc capabilities. Yeah, these vehicles. Right? So basically, there's 1 ego vehicle in the front that does all the other cars their target speed. Okay, so all of them would set their target speed. But at the same time it will ensure not to crash into one another. So if the vehicle the Ego vehicle
38:18:210Alessandro Brighente: rates at a certain point that all the cars in the back will reduce the speed not to crash into one another right. And the way they do this is through these,
38:32:160Alessandro Brighente: acc.
38:34:330Alessandro Brighente: okay. So here, you have a basic depiction on how that would work right? So you have the big vehicle, and ego vehicle, they want to maintain a a safe distance. Right, you know. Safe distance depends on the speed at which you are traveling.
38:54:250Alessandro Brighente: and the the the Controller will use this information right? So it works exactly the way we've seen before. So you want to maintain a target speed right? So you will have an error signal on the speed, and then you want to maintain a certain distance from the vehicle in the front, so you will have another error value that tells you whether you need to be farther away or closer to the to the vehicle in the front. You want to maintain the distance at a certain reference point again.
39:23:830Alessandro Brighente: Good. So is there any way in which we can exploit this right? So what can be security problems of these kind of systems?
39:36:120Alessandro Brighente: Okay, so you have a very simple deviation on how that might occur, how attack may occur
39:45:420Alessandro Brighente: in this scenario. So what is of interest for for the attacker here?
39:51:783Alessandro Brighente: Well, the attacker may exploit the the controller itself may provide a fake values to to the controllers. And how does the attacker provide fake values to the controller? Well, one of the things is getting access to the car itself right through some of these
40:09:534Alessandro Brighente: wiring. If you want of the cars that brings the the safe values to the controller or the attacker may target some of the the sensing capabilities of the car. Right? So, for instance, I don't have access to the car, but to know the way in which lighters work, for instance, and I swoof a scene and let the car think that the distance that is measuring is different from the
40:35:390Alessandro Brighente: from the actual one. Right? So we want to design attack strategies against these capabilities of the vehicle.
40:44:640Alessandro Brighente: But we do better break.
41:11:210Alessandro Brighente: Okay, so how do we?
41:13:502Alessandro Brighente: How do we model? Or how do we control these adapted to cruise control? Right? So we say that we have 2 variables that we need to control. 1, st one is the speed and the other one is the distance. So let's say that in
41:28:480Alessandro Brighente: Now we're example of adaptive cruise control. We have 2 modes, right? The 1st one is based on speed, right? And so what happens is that the ego vehicle will drive at the center speed as long as it maintains the safe distance. With respect to the vehicle in the front. With respect to the lead vehicle.
41:48:830Alessandro Brighente: and then we have the second model, where we have that this space between the 2 vehicle is controlled by changing the eagles vehicles
41:56:737Alessandro Brighente: speed so that they do not get closer than I say this, okay, so these modes may be switched into one, and we can select one of the these modes in real time, according to what happens, the on the vehicle side, right? So, according to some real time, measurements of the speed and distance sense by
42:19:410Alessandro Brighente: the car.
42:23:140Alessandro Brighente: Good. So how do we determine the the operating mode? So we can have a very simple rule. So the 1st one is that if the relative distance is greater or equal than the safe distance
42:35:456Alessandro Brighente: then we use speed control right to to track, whether we're going at the desired speed.
42:40:530Alessandro Brighente: If, instead, we have the relative distance being smaller and the safe distance, then the space control mode is is activated and we keep track of distance. And we try to minimize the error. With respect to the distance. Okay, so this is what the the Controller is doing. This is the kind of decisions that the Controller needs to take and then apply the the control signal on top of that in order to either increase. Reduce the speed.
43:08:700Alessandro Brighente: either match the target speed or keep a safe distance from the leaper in the front.
43:15:540Alessandro Brighente: Good. So which kind of all attacks. Do we have in here? What can be possible attacking strategies? Well, the attacker needs to compromise the the CC unit right, the controller itself.
43:31:250Alessandro Brighente: And you can implement different strategies. So the 1st one
43:36:390Alessandro Brighente: is for the attacker. To remain silent right not to do anything and just monitor the measured distance from the from the vehicle in the front.
43:46:110Alessandro Brighente: and when the distance gets to the lowest possible value, maybe hopefully, below the safe distance. Then it creates a spike in the control signal, making the the vehicle accelerate. Right? So what happens in here is that we have a situation where the the car in the back is closer
44:07:20Alessandro Brighente: than what it should be to the car in the front the attacker creates a spike. It means that it suddenly increases the speed of the vehicle. And this makes the vehicle crash into the one in the front.
44:21:190Alessandro Brighente: Okay? So the yeah. Another situation might be. The vehicle is driving and the service speed, and then the vehicle in the front suddenly breaks right. You don't have the time to
44:33:372Alessandro Brighente: through that. So the same thing happens in here, thanks to the slide we have that the vehicle accelerate. And now, despite the fact that it's taking some distance measurement. It doesn't have the time to to realize that it's going to crash.
44:44:680Alessandro Brighente: And it does
44:46:490Alessandro Brighente: the second attack strategy instead might be okay. Let's just avoid monitoring what the car is doing. But let's change some of the parameters of the Controller. Right? So, for instance, the attacker may seem to change
45:02:108Alessandro Brighente: the the reference distance right? So if the attacker changes the reference distance, then we are creating a mismatch between the the sensor distance and the distance used by the controller. And this is something that is not not noticeable by the driver. Right? And so the fact, again, is the
45:23:250Alessandro Brighente: following a post reference, and therefore potentially crashing into vehicle in a problem. So of course, here we are assuming something quite strong. So the attacker has access to the acc module. So it means that the attacker got into the into the vehicle, and somehow, compromise these
45:43:460Alessandro Brighente: this device, right? So
45:46:830Alessandro Brighente: this attack mostly focuses on the design of the controller itself rather than the system that is implementing the controller. Right? So
45:57:590Alessandro Brighente: for instance, one of the the tasks for the one of the possible projects is, okay. Let's take these controllers. Let's see how they are implemented. And let's see how we can apply signals on top of that. Make them behave in a weird way, right? Or even a non safe way. Okay, so this is.
46:17:240Alessandro Brighente: exactly what the attacker is doing in here, taking the the control signals and trying to to modify them. So we are neglecting the fact that the attacker needs to have actual access to the the car and get into twitch values
46:33:230Alessandro Brighente: in there. Okay, so it's just zoom to give you very
46:37:590Alessandro Brighente: A very simple
46:39:00Alessandro Brighente: idea on how these this would work. But then this is not enough. Right? We don't just have adapted control. And there's nothing fancy we can do there. In terms of security, right? It's just
46:57:260Alessandro Brighente: creating some noise or spikes or something like that on the control seamless.
47:04:730Alessandro Brighente: And then that's it. Right? Because the other part, yeah, the other thing as I was mentioning is the fact that you need to get access to to the Controller itself. But then we don't have standard ways of implementing controller from a physical perspective. So it would be something like, okay, I have this controller with this random make that has this specific. Let me break into the controller. But yeah, then, it's
47:27:690Alessandro Brighente: not about the Acc itself. It's about the design of the the controllers, hardware and and system. But that's not our objective. So we'll move on with these comparative adaptive cruise control in order to, I think, increase again the the automation capabilities of the car.
47:47:870Alessandro Brighente: So now, we don't simply use
47:52:820Alessandro Brighente: our reference speed and some sensor measurement. But we also enable vehicles with the communication capabilities.
48:00:50Alessandro Brighente: Okay? So in this case, we talk about the vehicle to everything communications
48:05:340Alessandro Brighente: which simply means that the vehicle can communicate with the either other vehicles or pedestrians, or infrastructure, or whatever has a communication capabilities and the ability to understand what the vehicle is saying, of course, meaning the same protocol.
48:20:729Alessandro Brighente: And why do we know the why do we need that because basically it allows us to have
48:29:160Alessandro Brighente: more consciousness on the situation on the road right, we are not simply relying on the distance measurement with the vehicle in the front, but we can have information on the also from vehicles that are
48:40:530Alessandro Brighente: farther away, not directly in line of sight. Right? So if you think about the distance measurement, right? You have. On the bumper of your car. You have this instance measurement sensor, this. Just get into the 1st obstacle that it sees. It doesn't get further than that right? It can get through
48:57:673Alessandro Brighente: pass through cars and get to the other cars right? So thanks to this communication, we have higher capabilities.
49:07:910Alessandro Brighente: Good. So what cacc does compared to Oacc is using the proceedings because acceleration in a field forward loop, right? So we receive this information from vehicle in front through communications. So this information is important in A in a network packet.
49:27:680Alessandro Brighente: and it's passed via what is called comparative awareness messages. Right? So we have dedicated messages format that we get from from the other vehicles.
49:40:576Alessandro Brighente: So this might happen in
49:44:150Alessandro Brighente: different protocols. Right? So among the most famous protocols you have the Src. Which is dedicated short range communication, or you have wave protocols something Wi-fi base right? The same frequency
50:00:75Alessandro Brighente: or you might have cellular communication capabilities. But then, in the end, what we care about is the fact that the vehicles can indeed share this information into one with one another.
50:11:720Alessandro Brighente: Okay, so here is the basic
50:16:170Alessandro Brighente: block structure of comparative adaptive cruise control.
50:20:850Alessandro Brighente: Okay, so
50:24:150Alessandro Brighente: so what happens? You have 3 different phases. You have the perception phase, the planning phase and the activation phase.
50:30:460Alessandro Brighente: So during the perception phase you need to gather information on your surroundings right on the same on the vehicle. So you have information from the lighters. You have information from the GPS, you have information from other vehicles. Right? You get the network tax, include information great. And then you collect all this information, and you need to send them to to the controller. Right? So of course, all this thing happened through the canvas.
50:58:750Alessandro Brighente: Right? So you have your sensing capabilities. You have your sensors mounted on the cars, deliver the signal to the controller via the the canvas
51:08:310Alessandro Brighente: great. And then what do we have we have planning?
51:13:526Alessandro Brighente: So, for instance, here you have 2 different planning blocks. Right? It might be either Acc or Ccc. But the idea will will be the same. It's just a matter of which kind of information you use to to take a decision and to plan
51:29:922Alessandro Brighente: your path. Right? So here you have the actual controller. And then you have the actual activation comment. Right? So the generation of the the control signals that work on the throttle, or
51:45:70Alessandro Brighente: see of the of the guy. Okay? So
51:54:260Alessandro Brighente: yeah, this is the description of the
51:57:630Alessandro Brighente: the different phases
51:59:720Alessandro Brighente: but then, these Ccc systems provides us with increase in the control capabilities. And not. Only we can have control in terms of one people. Right?
52:17:90Alessandro Brighente: Let's put in another way. When we were talking about the accuse control my control strategy is just based on my state right? And my perception on the environment. It means that I want to have a target speed. And I want to maintain a certain reference distance with respect to the people in the front of me, for instance.
52:41:500Alessandro Brighente: So my control strategy will account for my say right, my location in space and my preference signals, and I will take decision based on that.
52:51:50Alessandro Brighente: Now.
52:52:130Alessandro Brighente: thanks to Cacc. Instead, we can gather information also from the other vehicles. Right? So it means that I can plan my control strategy also, based on the state of the other vehicles because they're communicating with me and telling me they're safe, right? So my State now, will not be the state of a single car, but the state of the whole system
53:17:610Alessandro Brighente: right? And this is particularly helpful when we're talking about the platoons, right? So when we have multiple leakers all of them having the same objective
53:27:140Alessandro Brighente: by having this integration, which accounts for more people, allows me to have better control over over the cards of the platform itself.
53:39:110Alessandro Brighente: Good. So how do we?
53:41:190Alessandro Brighente: More than this is. So
53:45:810Alessandro Brighente: yeah, there's a lesson that has nothing to do with server physical system. But how?
53:51:606Alessandro Brighente: Google drive source thing. So the the reason why, you see, equations put in a random way, is the fact that they needed to recover Powerpoint files from Pdfs. Because I lost all the slides from the lectures, because, Google, drive simply stores a Csv value with the pointer to the to the website. So if you delete them from the website, they're gone. Okay, good to know.
54:19:180Alessandro Brighente: okay. So getting back to Ccc.
54:23:530Alessandro Brighente: so let's consider this system where we have a pay cards right? And we want to control all of them
54:28:830Alessandro Brighente: good. So we assign them a number and then id something like that right from 0 to K minus one, and let's assume a simple model. All of them need to drive along straight lane. Okay? And their order cannot change, so they will always be ordered in the same way.
54:50:563Alessandro Brighente: There, they just need to drive it. They just need to adopt their longitudinal control strategy in order not to crash into one another and to safely get to their
55:02:610Alessandro Brighente: target destination.
55:05:210Alessandro Brighente: Good. So we said before that we have a save for the vehicle, right? So all of them will have the the very same safe vector will have their location, their speed.
55:16:140Alessandro Brighente: And in this case we we consider acceleration.
55:20:480Alessandro Brighente: And we can perform some computation, right? So given that all of them have are represented by this state. Vector, we can start gathering additional information. So, for instance, what is the distance from a car and the other in the car? Right? So this distance will just be the difference of their locations. So given that we know the location of all the cars. We can
55:46:620Alessandro Brighente: compute their distance right? Because it's something of interest for us. We want this distance to be maintained at the target value.
55:53:530Alessandro Brighente: and we indeed indicate the the desired distance, the reference distance between Car I and car I and this one is these dri in there. Right? So we would like this Di value here to be as close as possible to the dri in our control strategy. Right? It's exactly what we said what we saw before.
56:16:720Alessandro Brighente: Okay.
56:20:450Alessandro Brighente: good. So
56:24:450Alessandro Brighente: you know the program that they use to me to to go from Pdf to Powerpoint, it really sucks right? And then
56:29:650Alessandro Brighente: oh, well, whatever
56:32:970Alessandro Brighente: then, how do we compute these design references? Right? What is the model of this design? Reference this as of course you can.
56:45:790Alessandro Brighente: you can model these with an equation that depends on the speed of the car, and these value L in there, which is just the length of the car, basically.
57:03:510Alessandro Brighente: And this H value is something that is called the headway of the car. It's a design parameters right? It's something that we can use in order to adjust these reference people. How much we want to account for. For the for the speed in there. Good. So we said that the error at car I can be measured as a difference between the actual distance and the desired reference distance.
57:27:500Alessandro Brighente: and it means that we can translate it into this thing here. So why do we want to do this? Because we know that the state equation of the car is given by the values Q, which are their location
57:38:500Alessandro Brighente: and value. P. Which is the spin. Right? So this is all that we can use in order to compute these these error values right? No car is giving us the distance value we need to compute that good. So it means that we can that.
57:54:300Alessandro Brighente: And then we can define our control strategy based on acceleration value. So you have the summation of these 2 values in here. Which are the basically the summation from the the input value that you get from your own car
58:13:790Alessandro Brighente: and the the input value that you get from the other cars right? Those that you receive through communications right? You want to account for both of them, because
58:23:830Alessandro Brighente: I know my state. I'm using the state from someone else
58:27:780Alessandro Brighente: together. Maybe they they do something good, right? They might have some impreciation on my state, or maybe I get some impreciation on someone else's other state, and if I merge them then it's better for us.
58:44:260Alessandro Brighente: Good. So we have again, we can
58:50:70Alessandro Brighente: measure these values right? So I can measure my state with my state. Is, is the summation state in there, which is just a proportional and derivative component in these examples. Right? So you have the
59:08:950Alessandro Brighente: Kp times, the the proportional value of the error. So just the error itself. And then you have a derivative component, which is Kd, times the derivative of the error value.
59:21:380Alessandro Brighente: Good. So
59:23:144Alessandro Brighente: now, we want to account also for the values that we receive through communications right in the Src that we said before and you can design your controller in in that way. So we
59:39:280Alessandro Brighente: we believe this controller works. Right? We are not going into details on how or why we get that specific equation here you have the paper for the the controller design. But yeah, it. It's really not our job to to design controllers. Right? So we just want to know that they exist. And they do that.
59:58:650Alessandro Brighente: We don't go through the math of that thing. We just believe that it works.
00:02:690Alessandro Brighente: And what happens if we use these strategy in here? What happens if we use the equations that we saw in order to design our controller. Well, we have
00:15:260Alessandro Brighente: this situation here. So why do we care about these figures? Well, of course, what you see from the figures is that the distance between successive cars is maintained constant, and it's fine.
00:33:330Alessandro Brighente: and this is true as long as we are in these
00:38:260Alessandro Brighente: time window in here. It's when the Controller is in a stable state. So imagine something like the car starts. The car is driving, and then the car arrives right? So this part in here where it's stable. It's just the car that is driving. Nothing is happening. The car doesn't need to
00:56:935Alessandro Brighente: to accelerate or to break. It doesn't need to do anything just to maintain its speed, and, indeed, is what you see in here right over the same time. We know the velocity of all the cars
01:08:220Alessandro Brighente: is the same on the lines of superimposed.
01:12:420Alessandro Brighente: What's inside, you observe is that. When the Controller is not in a stable state, something it happened right? So, for instance, in here, you see that distance from the leader vehicle changes in here. Right? So it means that at a certain point all the cars will start from the same location and will start increasing their distance
01:35:870Alessandro Brighente: one by one, right? So imagine something like the the 1st car starts and the second one should follow along. The 3rd car will follow along, and so on. Support. And this is exactly what you're serving here with the velocity. Right? So the 1st one, the leader car, the blue one is the 1st one that goes. Then you have a car number one in between line is the second line, here increases the speed, and so on. So forth.
02:01:770Alessandro Brighente: At the same time, when you get to the destination, the leader car is the 1st one that needs to stop right? So the speed of the car is the 1st one the speed of the leader car is the 1st one to decrease, and then you have the car number one and the 2 blah blah! And all of them get to the point where they're the speed is close to 0,
02:21:410Alessandro Brighente: and the equivalent holds for distance from the leader. Right. So all the distances will change, and of course the distance will not get to 0, because otherwise they would just all crash into the leader. And it's not good. So you keep this same distance in here, right? This is the same that you had at the beginning.
02:40:900Alessandro Brighente: Good. So it means that our controller
02:45:350Alessandro Brighente: works. Then, right? And so it's working
02:48:350Alessandro Brighente: nice. So how do we
02:52:200Alessandro Brighente: attack these these controllers? Right? So what could be possible attack strategies to these
02:58:198Alessandro Brighente: controls as well. Again, we want to cause some abnormal behaviors in in this controllers, right in these in the strategies that these vehicles
03:08:850Alessandro Brighente: our chain are using
03:13:850Alessandro Brighente: when we are considering multiple cards, you see that the threats of faces increased right? So now the attacker not only has access to one card has access to multiple cards. But since all the cars are communicating into one another in order to cause the damage to a human victim.
03:30:230Alessandro Brighente: I might also, use a 3rd party card, some some other card to communicate those values to that specific victim.
03:39:860Alessandro Brighente: Good. So in this
03:43:600Alessandro Brighente: case we might have
03:49:290Alessandro Brighente: You might have something that is called an internal attacker. Right? So it's the attacker is part of the platoon is a legitimate part of the platoon, and is sending malicious information, or we might have external attacks right? An attacker is not part of the platoon, and again, is sending malicious information, and of course the attack strategy will change for the attacker based on these 2 different scenarios. Right? If the attacker itself is part of the platoon. It will not, like the victim vehicle to crash into its
04:18:660Alessandro Brighente: their own car. Right?
04:21:306Alessandro Brighente: Good! So
04:23:410Alessandro Brighente: what can be? Again some attack strategies. So the 1st one that we have is what is called a reduced headway attack. And basically, what happens is a card that ignores a recommended headway speed the age values that we saw before, and the age value is the thing that guarantees string stability. Right? It means that
04:48:610Alessandro Brighente: what string stability means is that the the system is not oscillating in a when it's in a stable state, right? If we have no string stability, it means that this situation here cannot occur right, because you will not have disabled, you will have something that oscillates.
05:05:90Alessandro Brighente: So the distance between the the because will change in time right? It might be sinusoid or something over here which makes them not safe anymore. Right? And this depends on the parameters that you use on your control strategy. And one of them is the the the recommended hey?
05:26:300Alessandro Brighente: Great? Okay? So when can we have something like that? Let's say that you are an attacker. And
05:37:890Alessandro Brighente: you happen we are not docker, because basically, by reducing this headway, you get closer to the vehicle in the front. But this also means that you consume less energy, right? Less fuel. And this means saving money, for instance, but the
05:55:750Alessandro Brighente: it causes a big impact on the on the behavior of the controller itself. Right? So just a single vehicle, changing, changing the headway, makes the system oscillator and potentially causes crashes among the the different drivers.
06:13:380Alessandro Brighente: What could be another potential source of the harm, right when one of them is joining without some of the equipments that you need in order to deliver all the functionalities. Right, for instance, assume that you have a a car which has communication capabilities, but no sensing capabilities. So you're joining without the radar light or something that had to detecting distance. Okay,
06:41:500Alessandro Brighente: good. So now, what happens is that the
06:44:360Alessandro Brighente: the behavior of the car is just based on the information that receives from the other cars. Right? And so here's the control strategy that you're left with, because basically you don't have the the other signal right? And these, of course, is bad. If you don't receive some of the packets, then you're done simply. The controller doesn't work. So this is very trivial. This is just to to include all the possibilities.
07:13:870Alessandro Brighente: And then, misreported time. Right? So this is a huge problem. So what happens is that again, our control strategy
07:26:324Alessandro Brighente: One of the foundational assumptions of our control strategy is the fact that we trust the information that we get from from other cars. Right? So
07:34:850Alessandro Brighente: whatever information we get through the Soc or whatever communication strategy that we that we use
07:42:970Alessandro Brighente: okay within that value as a bag, and we not doubt that. But of course that's a possibility for the attack right? And the attacker can send us whatever information they like. And that's and that's a big problem. So you see, the the problem in here, it's
07:59:930Alessandro Brighente: not trivially sold right? Because.
08:03:350Alessandro Brighente: yeah, you might have your authentication or integrity, checking strategies on top of the the communication protocol that you're using.
08:10:730Alessandro Brighente: But you have no means of verifying whether the campaign information is correct or not. That's not something that you can do via traditional cryptographic tools, right? So you will need something like
08:24:120Alessandro Brighente: anomaly detection or
08:26:750Alessandro Brighente: contextual based verification.
08:29:569Alessandro Brighente: I don't know. That's
08:31:830Alessandro Brighente: let's explore this zoom.
08:34:590Alessandro Brighente: But yeah, in this control these attack, strategy is very tricky. But you just want you just have the attacker doing something reporting something malicious
08:45:622Alessandro Brighente: then another attack. Strategy, condition induction attack. So here we have again an attacker that brought that sends over communications malicious, malicious information, and it broadcasts an acceleration profile telling all the cars that received the information that they need to speed up because they need to to keep up with the with increased speed of the platoon.
09:13:100Alessandro Brighente: And furthermore, the attacker makes one of the car breaks right again. Another very simple, like strategy. But these work we need to take all of them into account. If we want to design a secure system.
09:28:590Alessandro Brighente: Okay? So how does the attacker leave? Well, either the attacker
09:33:189Alessandro Brighente: controls a vehicle that suddenly breaks or the attacker might use combined strategies. Right? So sending over these acceleration values and jamming in a certain way, the sensor that is measuring the distances right? So we'll we'll see how we can spook. For instance, the the values that we that we measure with the lighters.
09:55:00Alessandro Brighente: I said, it's not something that's not possible. Okay, so basically, the the attacker will have all the vehicles filling up one of the vehicles, not being able to to to measure correct distances anymore and crashing into the car.
10:10:650Alessandro Brighente: Okay, so
10:15:480Alessandro Brighente: figure speaks for itself. Right? The the distance is increased, and then at a certain point, since the victim has no way to to control its velocity anymore. It will just crash into the the vehicle in the front. So
10:29:570Alessandro Brighente: very basic stuff. So here you have a summary of all these possible attack strategies right? And all of them exploit the fact
10:40:560Alessandro Brighente: that don't really have a secure mechanism here. Right? We don't have secure means of verifying whether, the the information that has been sent over by other cars in the platoon
10:53:930Alessandro Brighente: is actually correct or not. Okay? Or if we receive the information from a valid member on the protoum.
11:00:370Alessandro Brighente: So the idea is, how do we defend against these attacks? So
11:07:790Alessandro Brighente: yeah.
11:09:830Alessandro Brighente: we will fill for the weekend, for today's all good.