Autonomous Systems - 6
Aggregazione dei criteri
Assistente AI
Trascrizione
00:00:310Alessandro Brighente: About its speed simply because you're spoofing some of the features that that is using.
00:08:630Alessandro Brighente: I'm multitasking great. And
00:13:690Alessandro Brighente: so what do we need in order to spoof these features like, it's not like something like we can send just the whatever measurements we said before. Right so when, for instance, we are looking at how to spoof lighter. So we need the some requirements. So the 1st one is the environmental influence. Right? So it means that the attacker cannot. The drone is actually measuring right?
00:43:870Alessandro Brighente: So it means that, for instance, I am
00:49:210Alessandro Brighente: So this brings an interesting problem. Right? So we're we're a big talking about high peaks.
00:55:370Alessandro Brighente: So sometimes I'm the attacker. Sometimes I'm the victim depends on the point of view. But let's say that a drone is attacking my private area right? And I really don't want the the drone to to hover
01:08:380Alessandro Brighente: over my garden or my house, or whatever. Right? So I want to defend against the drone. And how do I defend against the drone? Well, one of the ways in which I can do that is to spoof these optical flow things that the drone is used right? I just wanted to move away, move in the opposite direction and get back where it where it came from.
01:29:630Alessandro Brighente: Good. So
01:32:150Alessandro Brighente: how can I turn this scenario into an advantage for me that I am the victim from the perspective of the drone, and then the attacker
01:42:10Alessandro Brighente: again, from the perspective of Joseph. That was not a good example. But you see what I mean. I I'm both the victim and at a certain point the attacker. So it means that I can control
01:52:340Alessandro Brighente: my ground right? I can do whatever I want with my garden and my house to put signs to put laser mean to put potentially everything that I want right. But this provides me the the 1st requirement that you're seeing here that the environment influence I can have an influence over the environment. That is, that the drone is estimating to its payment.
02:15:520Alessandro Brighente: Good. Then the second thing, I can have a carnival in my garden. But that's not going to be something that the drone accepts as plausible. Input I need to provide in order to be successful, a plausible input to the to the optical flow algorithm. So what are possible inputs? Well, 1st thing is that I should provide features that we know the optical
02:41:935Alessandro Brighente: flow is going to estimate, and I should provide the features that are moving
02:48:640Alessandro Brighente: at the reasonable pace in time. Right? So, for instance, if if the drone detects a speed
02:57:940Alessandro Brighente: from the displacement of a feature into successive time frame that is equivalent to the speed of light. That's not a plausible input. Right? The drone cannot fly at the speed of light. So we'll just simply discard these measurements. So we need to provide it something that.
03:14:114Alessandro Brighente: That is reasonable for the drone, and will not be discarded and deemed as a an anomaly. And then the meaningful response, right? So what does it mean? A meaningful response? Well,
03:25:520Alessandro Brighente: I want to control what the drone is doing right, and it it makes no sense for me to create features that the drone is using. But we don't know for what purpose, right? So we want to spoof these features and to spoof them in a reasonable way, and at the same time gain control over the actions of the drone. Thanks to the features that we spoof right? Because otherwise.
03:47:594Alessandro Brighente: We cannot. We cannot in our case get rid of the drone, for instance. Right? Make it go back where it came from.
03:58:490Alessandro Brighente: Okay, so how do I achieve all of this stuff? Right? So I,
04:10:60Alessandro Brighente: I'm either hiding features or I might be using adding more features. Right. So
04:19:730Alessandro Brighente: if I want to delete some features, I know how the drone is going to to compute these features. Right, how the optical flow works right. We know that the computer is a gradient of
04:30:300Alessandro Brighente: of the image and based on the gradient values. If we see a sudden change, then we detect the features in there. How do we delete features in this sense? Right? So if I if I look at this feature right and I have a strong light on the ground, then I may be able to decrease the gradient value that defines
04:53:710Alessandro Brighente: the difference between the the table and the ground.
04:57:560Alessandro Brighente: or if I want to add a feature again, I can project something on the ground right, and create a feature, and have these drone to detect the feature, and then move it
05:09:570Alessandro Brighente: towards the direction that is of interest for me. Right? So, for instance,
05:17:70Alessandro Brighente: if this is again my garden to give an example, and this is a drone.
05:23:670Alessandro Brighente: and it's flying towards this direction. I can let the the drone see a feature in here, and we know that if we move this feature
05:31:310Alessandro Brighente: along the this direction and the drone is going to move the other way around right? So we can trigger some of these these behaviors from the drone. That's something we can control. So although these things
05:46:650Alessandro Brighente: really
05:50:700Alessandro Brighente: not possible right? It seems weird. That's something that for which we actually have real world implementations. Right? So you have real implementation on how you can create these laser beams or these features on the ground and influence the the drone behavior right? So this is something that you can use with, and you can create with very simple devices. So you have very
06:15:290Alessandro Brighente: operated projectors, and where you load some images and you project these features on the ground and then move them around according to
06:25:730Alessandro Brighente: what you would like to do right? So based on the device that you might use, you have either onerous example or more complete example. But the thing is that it actually works
06:37:230Alessandro Brighente: good. So
06:38:700Alessandro Brighente: how again, do we compute these plausible inputs? Right? So again, we said, if we create these features and move them on ground, we can trigger behaviors from the from the controller, the transfer from the from the optical flow. And
06:57:368Alessandro Brighente: Then again, the this thing that I was mentioning that I can project a feature on the ground and move it around right and let the drone behavior based on the movement of the feature exploits an assumption that the optical flow is making and that we mentioned last time right? So the fact that
07:16:180Alessandro Brighente: ground features are supposed to be stationary ideally, these ground features should not be moving right, and if we make them move right. That's the the main idea. If we make these features mobile
07:30:280Alessandro Brighente: then we are breaking this fundamental assumption and exploiting indeed, the the algorithm that
07:37:868Alessandro Brighente: that the Lucas cannada optical flow is is using.
07:44:680Alessandro Brighente: Okay? So also for this thing you can, you can perform some tests. Right? So, for instance, how can you prove these algorithm to work? And how do you implement the same right that again, that might be a possible project. You have plenty of implementations of these optical flow algorithm.
08:08:70Alessandro Brighente: right? So you have implementation in math lab, you have implementation in python. There's dedicated library using open. Cv, right? You have plenty of implementations. And what you can do is to provide these images as input to the drone and see how it behaves, and then modify the images, adding, these these features right? That could be a small scale example of an implementation.
08:31:150Alessandro Brighente: and understand where the where the drones. What you will observe is that again.
08:37:286Alessandro Brighente: due to the fact that the drone is using these features as an estimation of its speed. If we make the feature move in a direction that is different from the action. Wrong direction.
08:51:660Alessandro Brighente: Then we may trigger the drone to
08:55:310Alessandro Brighente: to move in the opposite direction. Right? Everything that we mentioned in here right. The the features do not move according to the actual speed of the drone, but they move in the opposite direction. So we can exploit this thing in here.
09:10:296Alessandro Brighente: Another example on how we can spoof again, we have these cps as sensors. But
09:19:881Alessandro Brighente: another behavior that is kind of similar from from drone is the return to home functionality. Right? So what happens with the return to home. So here, that's an example that they do from the Dji Rph, guide, right? So basically, this is the place where the drone took off.
09:40:110Alessandro Brighente: Right. Then, at a certain point, the the drone is lying around blah blah behind the building, you lose the connectivity with the Controller, for instance, might be the case right? So here Drone realizes that it has no control has no communication with the Controller, and the communication channel is not there anymore.
09:58:910Alessandro Brighente: And then it triggers these return to home functionality. What does it mean? The drone, not knowing anything about the the controller or the pilot just decides to get back to its original. Take off location. Right? So how does the drone? That? Well, the 1st thing is to record
10:17:930Alessandro Brighente: visa location at the GPS location of a home. And then at this point in here, we'll just use a controller even to design its partner. Okay, that brings it back to the the original location here. Actually, just checks where it should go right? And
10:40:780Alessandro Brighente: basically, you can see this green line dash green line as very small segments, right? The drone knows where it should be going, and every now and then, periodically, it checks, whether it got closer to the, to the home location and adjust this trajectory to get here right? So, for instance, it cannot go straight because it will crash into the 1st building. It cannot go straight in this direction again, because otherwise.
11:04:660Alessandro Brighente: So you see that it can use other sensor measurements to understand when it's going to catch into something and adjust his
11:13:960Alessandro Brighente: trajectory accordingly.
11:16:490Alessandro Brighente: Later.
11:17:890Alessandro Brighente: how can we exploit this thing in here? Right? So what is a potential malicious behavior. And what might be our objective? Well, let's assume that our objective is to capture the drone right? So our objective is to let the drone
11:35:240Alessandro Brighente: not to return to its actual home, but return to an attack attackers control location right instead of having it delivered to the big console. I wanted to to get to my home so that I can capture the job.
11:52:720Alessandro Brighente: How do we do that?
11:54:630Alessandro Brighente: Well, we have 2 things in here that we should consider right?
11:59:443Alessandro Brighente: The 1st thing is where or what about the what action.
12:12:120Alessandro Brighente: which actions triggers, the return to home functionality? Right. So when does the drone wants to return to home? And why do we care about this return to home functionality? Well,
12:25:310Alessandro Brighente: let's say it's clear the fact that if the drone is controlled by Pilot right, there's an actual connection between the pilot and the drone, and the pilot is going to to tell the drone what to do right? So either I take over this communication channel, which
12:40:230Alessandro Brighente: might not be that easy right? That I mean. Yeah. It might not be easy. So
12:50:140Alessandro Brighente: what is the advantage from an attacker's point of view? On the return to home functionality when the drone is taking autonomous decisions. Right? It's taking autonomous decisions based on its own measurements and the information that it receives from from other entries. Right? No one is telling the phone what to do
13:06:990Alessandro Brighente: good. So it means that the if the drone is in this situation where it's taking autonomous decision, if I provide the drone with fake information, I can influence its its decisions right? And so this is exactly what we what we want to do with this return to home functionality. Well, so the 1st thing we want to trigger this return to home functionality. And we said that this happens when
13:29:119Alessandro Brighente: when the drone loses its connection towards the the ground station or the controller. Right? So we want to get rid of this connection. We want to to
13:40:50Alessandro Brighente: have this communication link to the board.
13:42:990Alessandro Brighente: And then the other thing is.
13:45:360Alessandro Brighente: how does the drone get back to home? Well, we said that the drone gets back to home, thanks to its GPS coordinates of the home right? And it's a real time. GPS coordinates. We can design a series of waypoints, but it checks its actual location and compares with the with the home location, and then decide how to adjust this trajectory based on that. How does
14:10:380Alessandro Brighente: these GPS things work. Well. You know, we have different kinds of satellite systems. Usually, what we have with uabs is the global navigation satellite system, Genesis. So, for instance, in Europe. We might use Galileo, I guess. Satellites, and we use for for
14:30:770Alessandro Brighente: positioning.
14:32:570Alessandro Brighente: Okay? So why do we? Why do we use this system? Well,
14:39:205Alessandro Brighente: the the funny thing of about the system is that they're not secure right? They're not protected, and there's no authentication or something like that.
14:48:163Alessandro Brighente: So we want to exploit them. If you are talking about military drones instead, the military have their own localization system which is secure. Right? So it's not that easy. So the the thing that we are describing here works for commercial drones, right? So we need to be able to school the GPS signal positioning signal, and we need to have a return to home functionality, because otherwise we cannot trigger this automation mechanism and
15:15:130Alessandro Brighente: trick the drone.
15:18:410Alessandro Brighente: Okay? So what do we need in order to to capture the drone?
15:25:660Alessandro Brighente: Yeah. Just once more, notice, I'm not going to have a break. But we finish bit earlier because
15:33:660Alessandro Brighente: I need to go to a meeting and then so what happens in here? You see that how we can perform these. these are packing here. Right? We we need these 2 prerequisites. The 1st one is to break the communication link between the the the controller and the job.
15:53:70Alessandro Brighente: And the other thing is to provide a fake location information to the drone. Right? We want to school the GPS signal and provide it with fake coordinates that not represent the actual coordinates of the drone.
16:04:530Alessandro Brighente: Okay? So.
16:06:840Alessandro Brighente: breaking this communication link in here, let's say it's kind of easy right? They have a wireless connection. Again, Wi-fi like, you can imagine it's something like that. And and you know, based on what we already discussed with the car skis, for instance, that if we create a noisy environment for communication, and we are able to
16:29:848Alessandro Brighente: to interrupt this communication right? So if we jam this control signal, it means that the the drone will receive something that is
16:38:49Alessandro Brighente: very noisy right. And at a certain point. When the drone does not receive any useful information from a communication protocols point of view for a long time it was just simply drop the connection right? It will assume that the Controller is not there anymore, and it cannot provide it with the with control signals and would trigger the return to home functionality. Okay? So this part in here is triggering the return to home functionality.
17:02:200Alessandro Brighente: And this part in here instead, is providing the the John with the location information.
17:10:10Alessandro Brighente: Nice.
17:11:400Alessandro Brighente: But then the problem is, how do we provide these school of the position information? Right? That's
17:18:319Alessandro Brighente: what kind of information should we give to the drone?
17:21:790Alessandro Brighente: Right? This is This, again exploits the design of the the controller of the algorithm. Right? So how does the drone decide how to adjust its its direction based on its current location. Right? And how does it
17:39:72Alessandro Brighente: try to minimize its distance with the with the home location. We cannot scoop the home location. I mean, we could do that. But that's somehow trickier, because we need to spoof the home location in the exact moment when the the drone
17:55:740Alessandro Brighente: capture this location. Right? So we should either be there, not. Yeah. Let's let's say, not reasonable or harder to achieve right? So the the home location is something that we cannot touch. We cannot modify right so. And we need to work with the with the other location information that the the drone is collected.
18:19:740Alessandro Brighente: Hmm.
18:23:930Alessandro Brighente: okay. So now the point is, the drone
18:29:500Alessandro Brighente: is taking off from its home location. Right? Let's say that this is the home location.
18:35:130Alessandro Brighente: and then it's mine out to a certain point, right
18:40:270Alessandro Brighente: and good. At this point let's say that we are able to break the communication with the controller, and we trigger the return to home functionality ideally, what the drone does is, let's say that its compass is pointing towards the direction because it was moving in that direction. It will check where the home location is, will adjust its direction based on that right. So it means that I don't know. For instance.
19:05:732Alessandro Brighente: the heading of the drone will move in this direction right? So it's like, now that the drone points towards this direction, and it will fly back to home.
19:16:200Alessandro Brighente: Oh, okay.
19:17:760Alessandro Brighente: but that's not good. If you are the attacker. Right? Let's say that this is the attackers location.
19:23:520Alessandro Brighente: Ideally, we would like the drone to do the same.
19:27:700Alessandro Brighente: But then we say that it's not like we provide a single location information, Spoof, the location information to the drone. And this is the behavior that we get right. It's not going to work. We need to provide multiple location information to the drone, and even more, you see that here what we discussed is the drone uses a compass to understand its heading direction where it should be moving right ideally. Drones have
19:51:190Alessandro Brighente: a head in the tail right? So the the drone will rotate and the point. It's headed towards the home direction.
19:58:560Alessandro Brighente: right? So there's a kind of
20:02:770Alessandro Brighente: we need to design a linguarithm
20:04:800Alessandro Brighente: to carefully scoop location information and achieve well, the service application.
20:12:470Alessandro Brighente: Good. So let's say that this is the again, this is the the location controlled by the attacker. When we want where we want the the drone to end up being, and at the certain points at certain time instance. Right? The the drone should sorry the attacker should provide fake location information to the drone.
20:32:210Alessandro Brighente: Look, how do we do that?
20:34:800Alessandro Brighente: And of course we want to do that in the minimum possible time. So here in the slides you have the the whole direction. I will go sorry the the whole steps, but it's just for you to to read them at home.
20:48:565Alessandro Brighente: Let's look at the figure, because otherwise I will read slides and extremely, no sense so how does this thing in here work?
20:58:950Alessandro Brighente: Let's draw again our figure.
21:06:240Alessandro Brighente: Okay? So we said that we have the the join here, and this is the exact moment where we we trigger the return to home functionality. Ideally, this is
21:17:680Alessandro Brighente: there exactly. The drone would like to
21:22:470Alessandro Brighente: to do right to to get back to home. And and now.
21:28:200Alessandro Brighente: we said, want the drone to to get here. So the 1st thing is to have the drone
21:33:310Alessandro Brighente: heading towards the attacker control direction. Right? So how do we do that?
21:38:130Alessandro Brighente: Well, we know that. This is the displacement that you have between the home location and the attackers. Location right? So
21:48:970Alessandro Brighente: the drone will try to go in that direction. And instead, we wanted to go to the other direction. So it means that we should have the drone, thinking that the home
21:59:260Alessandro Brighente: it's not on its right in this case, but it's on its left right, because otherwise the heading would point towards the the opposite direction. Instead, we wanted to point towards this direction. Good. So how do we achieve that? Well, we shouldn't have the drone thinking it's in this direction, right? So if the drone think it's here
22:18:533Alessandro Brighente: it will estimate again. The home location is here, you will estimate, is heading towards this direction right? And that's something that we want right.
22:28:410Alessandro Brighente: But at the same time we want this direction not to point again to the home, but it needs to point to the attack right? So we want the drone to to get at this point again.
22:39:830Alessandro Brighente: Good. So we need to design these series of Spoof GPS coordinates
22:45:340Alessandro Brighente: that achieve exactly this thing here. So the 1st coordinate that we Spoof is the one that you've seen here. Right? So that's the 1st one. It starts to adjust the the heading of the drone. At this point the drone will think the home is in this direction
23:02:240Alessandro Brighente: right?
23:03:540Alessandro Brighente: This is not the actual location of the drone, and this the drone is.
23:07:880Alessandro Brighente: he's doing something at this point. If we spook this direction the drone went down a bit right, because it thinks that it's going towards his home by going downwards
23:19:80Alessandro Brighente: with that this second point in here. Again, we expose this GPS location and adjust the heading of the drone to our control direction. Right? So if the drone thinks the home is towards this direction again, it will adjust its rotation and move towards this trajectory.
23:40:610Alessandro Brighente: Good!
23:41:720Alessandro Brighente: Now we are in a good heading. That's perfect. That's exactly where we wanted to draw to head. So this pointer, it just means that we need to spoof these coordinates right
23:52:630Alessandro Brighente: at the pace. That is sufficient, such that the drone gets to the attack. But then the drone in these coordinates will not need to adjust its heading because it's pointing toward the home direction and it will go to the attackers control direction.
24:08:250Alessandro Brighente: The fact that in the beginning, there in the field. We see that the work is not going exactly down, but
24:16:00Alessandro Brighente: steel auto towards the phone is because the 1st proofing is
24:21:600Alessandro Brighente: it's done too late. The drone will will still be moving right at the point where the return to home functionality is triggered. The drone will do something. It will not wait for GPS location will start already to to plan it. Stop, and we start to move. So here you have something that it's really happening for the drone
24:42:117Alessandro Brighente: more than this.
24:44:671Alessandro Brighente: We have this code in here. Right? I will share you with you the the code
24:52:150Alessandro Brighente: I'm executing these.
24:55:680Alessandro Brighente: Let's hope that it works. It was working. Okay, so this is the
25:00:917Alessandro Brighente: an actual implementation of what you have. Right? This will be the home location. It will be the the attackers location. And you have exactly which kind of coordinates you need to spoof in order to to trigger these functionality, so you can take a look at the call, and how this is implemented
25:17:614Alessandro Brighente: right, and isn't doing exactly the thing that I showed you in here. This is the drone path, the actual location of the drone. And those are the the school coordinates right? It needs really fine grains in here to be also less than that. But basically, you see that once the drone is pointing toward the our control direction, we need an estimate on on that. But we can do that.
25:41:410Alessandro Brighente: Then the journey is heading exactly towards
25:45:60Alessandro Brighente: the attackers, control location and will not realize that right? The drone relies on its GPS information and it will be captured by the attacker. Then the the thing is, how can we make these attack more or less efficient? Right? Ideally, we want the drone to to get to our control location as fast as possible.
26:11:430Alessandro Brighente: Right?
26:12:540Alessandro Brighente: So what
26:13:840Alessandro Brighente: trajectory? Another thing is doing this trajectory right? Control location. That's not something we want. So we need to to perform some some measurements to to control it. But this is all geometrical stuff, right? You need to know, what is the assumption.
28:05:200Alessandro Brighente: Are there to to achieve. But now we get to that point as well.
28:20:990Alessandro Brighente: Okay. So here again, you have the the whole description on how the the algorithm works from from a theoretical point of view. Right? So how you you compute these trajectories. Again, it's geometrical stuff right? It's based on whether directions are parallel, whether they are whether
28:39:730Alessandro Brighente: I mean how you want to to adjust this this thing in here, and you realize that you need to exactly know, the approximately at least know the location of the draw and location of the home? Because if
28:53:370Alessandro Brighente: these locations change. And then I have been
28:58:270Alessandro Brighente: in space. Right? You need to adjust the the drawing different ways. So, for instance, one of the things you can try with the code that I will give it to you. Give to you this example code that I sent you. Not that I will send you. I showed you is, okay. Now, the code is implementing exactly this scenario that you're seeing here. But
29:22:540Alessandro Brighente: if our initial scenario is this one.
29:33:250Alessandro Brighente: Then same algorithm is not going to work right? It's not working at all, because the the reference system is completely different. And you need to adjust the the way the algorithm performs.
29:44:50Alessandro Brighente: Okay, so this is also something you can try to do.
29:57:180Alessandro Brighente: Okay, so good. Now, let's again focus on the
30:09:215Alessandro Brighente: think it's the same. But it's not.
30:13:330Alessandro Brighente: No, no, it it's not because this reasoning here is based on the fact that the drone needs to point towards that direction. But then you need to reason. Okay, the then this trajectory that is the one the drone will be doing in the end.
30:28:290Alessandro Brighente: It will get to to home right? And the
30:35:780Alessandro Brighente: be a major university.
30:38:590Alessandro Brighente: Basically, what happens is
30:41:400Alessandro Brighente: right. You are at this point right? And at this point you know that the that the the heading of the drone is more or less fine might be fine, right? And you want this segment right? This whole line here that connects the current location of the drone with the the the home location to be parallel to the segment that connects the current, the actual drone location with the targets control location. Because if you know that this is the case.
31:10:490Alessandro Brighente: you are done spoofing different location. Right? You can just Spoof location along the straight line. And yeah, the reasoning is simple, right? Because it
31:19:550Alessandro Brighente: we just end up where that's the kind of reason that you need in order to to spook these these locations.
31:29:760Alessandro Brighente: we organize this chambership.
31:32:870Alessandro Brighente: Know that the angular shape is something that then so
31:45:230Alessandro Brighente: it's almost the same, you just need to
31:48:540Alessandro Brighente: do. You have the attacker on the other side that that we go.
31:53:330Alessandro Brighente: Yeah. From a logical point of view, it makes sense what you're doing. And then the challenge is, let's design an algorithm that is general enough in order to handle all of the cases that you have here.
32:15:290Alessandro Brighente: And we just need to load.
32:18:770Alessandro Brighente: Yes, from a logical perspective, no worries.
32:22:403Alessandro Brighente: You need to design these this. They get there. One of the things that to move on the other side that we don't, so that it comes to you instead of the phone.
32:36:180Alessandro Brighente: And let's have an example that is different. Again, let's say that this is the drone.
32:40:880Alessandro Brighente: This is the home, and this is the attacker.
32:48:310Alessandro Brighente: Okay, now you want the drone to move in this direction. But the drone as soon as it passes over the home locations. So
32:55:360Alessandro Brighente: it stops. Right?
32:57:100Alessandro Brighente: Well, excuse me if you're not speaking his position. Yes, it shouldn't be stopping right, what happens.
33:13:150Alessandro Brighente: So that's something. That's right, because scope of references.
33:20:970Alessandro Brighente: Equally a relatively large shield.
33:24:140Alessandro Brighente: Thank you for the man.
33:25:940Alessandro Brighente: The preference that digital. Has program locations.
33:29:430Alessandro Brighente: It's based on the absolute difference, location or no. Absolutely.
33:37:200Alessandro Brighente: Let me see.
33:43:260Alessandro Brighente: that's you need to have some reasoning on how the drone should behave in certain locations just to to get where it where you want it to be.
33:53:40Alessandro Brighente: That could be one of the projects for
33:57:620Alessandro Brighente: for the 1st 5. Let's say it's interesting.
34:03:896Alessandro Brighente: Okay, generally, I've shown.
34:09:969Alessandro Brighente: So no, in the sense that
34:15:620Alessandro Brighente: once the the drone loses the connection with the controllers, we will just get one.
34:24:760Alessandro Brighente: It's not something that we carry service connection.
34:29:30Alessandro Brighente: This is the need here.
34:30:940Alessandro Brighente: I I'm not aware whether new versions solve this problem. That's something to to check. I don't know. To be honest.
34:39:21Alessandro Brighente: When these was proposed. The thing is, you lose the connection. You don't get the connection that you just you get back to
34:48:250Alessandro Brighente: potentially, you could permanently jam the connection right? So even though the the controller may increase the connection.
34:54:880Alessandro Brighente: you can join it again, it requires more effort from from the traffic side make more control.
35:01:830Alessandro Brighente: I wouldn't see it as a very big limitation.
35:07:930Alessandro Brighente: It just requires more power, let's say for me about that.
35:12:620Alessandro Brighente: But yeah, that's the big thing. Once once you trigger these return to home functionality that the drum would just get
35:18:990Alessandro Brighente: maximum one other example of this happening is the drone has a a means listing its current charge, the the battery state of charge. So if it, if it detects that it's below the the amount of power that it needs to get back to home. We just get back home. There's nothing you can do it with us.
35:38:360Alessandro Brighente: Slide back. Okay, if there's hardware or something with.
35:43:450Alessandro Brighente: So the the things that they solved is the general problem with GPS spoofing, right. So how do you solve the GPS spoofing? How do you solve the fact that you can provide? Take location information? Because it's it's I mean, you cannot change the GPS protocol
36:10:430Alessandro Brighente: because of Trump's security
36:13:43Alessandro Brighente: what they do is to integrate again to these sensor fusion techniques. Right? So you not only use the GPS location
36:21:617Alessandro Brighente: in order to to know the exact location of the drone that you use, you combine multiple informations such that you can detect. Okay, these are someone that is trying to spoof my location. Generally, it's done based on different sensor measurement that you combine. And the the plausible input stuff. Right? So if you Spoof GPS locations that do not make sense with respect to
36:46:220Alessandro Brighente: the the current speed of control.
36:48:910Alessandro Brighente: then you just need to discard the these these measurements. This is something that we are going to discuss just now. Right? So we have these fail safe mechanism.
37:02:30Alessandro Brighente: we need basic mechanism. Right? So we assume that the drone is so the assumption here the drone is always able. Right? It's always provided with GPS coordinates.
37:13:470Alessandro Brighente: I mean, somehow, that's a strong assumption, right? Or with value. GPS finances. Not always. That's the case. Maybe the we are again talking about a communication link right, which might be affected by the problems or communication link. So at a certain point, the drone might lose its connection towards the GPS right and might not get some packets, or it might happens this for the glitches, right? It gets GPS measurements that
37:40:520Alessandro Brighente: are noisy, or they do not make sense with respect to what the drone is expecting.
37:45:480Alessandro Brighente: Okay, so in this case, we trigger this mechanism in here, which is called GPS they say that helps us.
37:55:689Alessandro Brighente: Still performing all the duties that the drone needs to perform without being too much affected by
38:03:500Alessandro Brighente: wrong or noisy or missing. Gps. Location information or coordinates. Okay?
38:10:860Alessandro Brighente: So what does it mean? For the for the Zoom Phone
38:16:410Alessandro Brighente: to do the to take this decision? How does the drone detector whether there's a glitch or whether what to do with these missing location information. Well.
38:27:760Alessandro Brighente: the drone implements something that is called an extended Kalman filter.
38:33:307Alessandro Brighente: There's a control mechanism in the end. Right? This is, it's about system estimation somehow, and say, prediction.
38:40:590Alessandro Brighente: We don't care really about how and why extending common filter works. But what we care about is, how does the drone use the command filter and the extended common filter? Well, so the drone is in this location. Now, right? So let's call it l. 1. And then the drone expects to receive information right. And these information is location 2.
39:06:480Alessandro Brighente: The drone based on its
39:08:330Alessandro Brighente: planned path. Right? They have path planning algorithm. So they know where they should be going. The drone based on its path planning algorithm can predict that the successive time instant, but it should receive GPS information. It will be in this location here.
39:26:810Alessandro Brighente: Good. So
39:28:310Alessandro Brighente: if the predicted location and the location that we get from the GPS match. Then we're fine and we have no problem.
39:38:270Alessandro Brighente: If, okay. So if L 2 hat is equal to L 2.
39:48:660Alessandro Brighente: Then we've done.
39:50:430Alessandro Brighente: Now there might be a case where we have glitches right? So glitches. It means that we get GPS coordinate, but it's not precise, right. It's noisy, or for some reasons, not the the actual one. Well, we should account for that right, we should account for that. And let's say that it's not a big deal right, and maybe we can account for noise.
40:11:130Alessandro Brighente: So instead of having the precise location in here, what we say is, well, we define a radius right around the the predicted location and everything that was in that radius.
40:22:430Alessandro Brighente: It's good.
40:23:840Alessandro Brighente: So now, what does it mean? It means that
40:27:300Alessandro Brighente: the locations are 2 dimensional right? If not
40:31:280Alessandro Brighente: these things. In here. The square norm of the difference of the location is smaller or equal than the radius of the this circle in here. Then we're fine, right? These are transformations. I mean, it's noisy. But still
40:46:57Alessandro Brighente: we are good with with this. And now the point is, instead, what happens when we have no information on the GPS, we receive no measurement from the GPS. Right? So what happens is, I will draw this from scratch. So I'm predicting that it will get in these location doing here. And I received no GPS measurement.
41:07:470Alessandro Brighente: No GPS measurement is bad for a drone. Right? So this is my circle. Now.
41:14:190Alessandro Brighente: I I received no GPS information. Well, my uncertainty on my prediction, my location. It's it's higher, this one right? Because I cannot compare it with the actual GPS coordinate. So it means that again, I will predict my next location.
41:29:180Alessandro Brighente: Hi Eldri. But my
41:33:210Alessandro Brighente: confidence is smaller, and it means that the circle that I created around my location gets bigger. Okay, I I want something to to be close to my predicted location. And again, maybe at this point I don't receive anything from the from the on the GPS.
41:50:960Alessandro Brighente: And so I moved to my 4th location and make my circle even bigger, I said, this is something that happens as long as we don't receive the actual GPS coordinate at a certain point, I receive a GPS coordinate that might be in my circle. Okay? Good. I can.
42:09:736Alessandro Brighente: I can decide what to do with these occasions. It depends on the implementation of the algorithm. But the point is that at this decision here I received my information so my confidence can be made shorter by.
42:22:100Alessandro Brighente: I don't know. Let's say that they take the average point in here. Right so. And I consider these to be my new location. I will predict my next location based on this, and see whether I have a GPS coordinate in my circle. As long as I move with these kind of predictions. I want these circles to be smaller and smaller up to the point where I get to the initial size. And I'm quite confident on my current location.
42:47:300Alessandro Brighente: Okay, any questions on this?
42:51:630Alessandro Brighente: Yes.
42:52:550Alessandro Brighente: But since we are not confident that much, we can
42:58:410Alessandro Brighente: more in these circles, and when we get, we are confident that the wrong direction
43:05:760Alessandro Brighente: maybe wrong direction. I mean, I don't know right, because, what what is happening here, you know.
43:14:80Alessandro Brighente: Well, what is happening here is
43:18:670Alessandro Brighente: the GPS. Noise measurements, the glitches. We expect them to be small, right? The smaller means they they fall inside the circle. We don't have something bigger than that, and when we receive a GPS coordinate.
43:31:490Alessandro Brighente: it should be the correct one, accounting for the issues
43:37:930Alessandro Brighente: right? So ideally if I estimate this thing in here. But I receive this GPS information here. Okay, good. I know that I have a confidence interval around that, but my prediction is the wrong one. I should be closer to the actual location that the GPS provides me, because that's the trusted information.
43:58:470Alessandro Brighente: It's an outside number.
44:00:460Alessandro Brighente: I will not account for that.
44:01:980Alessandro Brighente: If it is outside from the circle bad.
44:07:100Alessandro Brighente: and it might be might be the case right? So at that point I need to decide what to do. But then it depends again on the controller
44:15:270Alessandro Brighente: algorithm that the that they draw implements.
44:21:80Alessandro Brighente: Okay, so next time we will see how we can exploit this mechanism here. You can already imagine how to do that.
45:32:315Alessandro Brighente: That's fine. If it's not.