How to implement AoA/currentLocation with Bluetooth? - bluetooth

I have developed an app where the executing device acts as a beacon. As a scan result, different BLE devices appear with their respective RSSI value.
Is it possible to use these RSSI values to determine the own current position with AoA? I have already read some documentation on this, but I have not found anything like an algorithm.
How can AoA be implemented?
Can someone tell me the necessary steps to do this?
Is triangulation also possible if the referenced 3 points are moving or do you only search for the 3 nearest points??

Related

Is it possible to share my position to another device (secured)?

I try to share my position to another secured device like my second phone. I use MapBox and AndroidStudio and I'm able to see my position but only from my phone. I try to find a solution that helps me in my problem. So I want to know if it's possible to do that.
Sincerely, Tony
I see that you are new here. I would recommend you not to ask questions about problems that you have not yet properly researched on your own.
It would help if you could share at least your thoughts on how you would approach this task. Also, make sure to answer specific questions. Otherwise you will get unspecific answers, like the one below.
Now to your problem:
This definitely is possible and there are many ways to accomplish this. The approaches to accomplish this depend on means to your disposal. Do you have a webserver that you can utilize? Or would you like to transmit the position directly from one device to another?
Via Webserver:
Create Webserver side script that listens to HTTP POST requests and writes the POST parameter (your position) to a database/file.
Create a second script that will answer a request for this position.
Call script 1 with Device 1, that wants to share its position.
Call script 2 with Device 2, that wants to read position.
Display position on map in application on Device 2.
Direct, one device to another:
You could even send your position via text message, and make your mobile application read the message, then display the position on a map.

ICP registration issue

I use open3d ICP algorithm to register two sets point clouds.
The input were similar two point clouds sets. However the result showed the error value is high and if I use the viewer, it showed the 2 sets were only partially matched.
Could someone tell me how to improve it? thx
If you could provide us some screenshots so we know in more details.
From my experience,
1. bounding box center: Is your point cloud in the center? As far as I know the first is to make the PCs in the center for further ICP registration.
2. Scale: Did you scale your two PCs to same level?
3. Iteration : Some cases needs more iterations to find the match but the trade off is longer processing time. So maybe try to increase the iterations and see how it works.

which sensor i have to use to find out distance of a particular device using sensors in iot

I want to create a device like tracker to find objects like keys or any important things. I want to add that sensor to that valuable thing to find where the object i left. I can't use motion sensor, ultrasonic sensor or air proximity because of its check distance form one direction. I need to find out the distance of the object from any direction.
Consider using one of both:
GPS
RDF (Radio Direction Find)
The first is great if you have open sky and client (the looking device) is able to navigate through GPS (thinking in a smartphone).
The second is good for indoor but it can be hard to program and find parts. Look to soloshot. It follows a beacon attached to person of interest. I donĀ“t have their spec but this is a kind of RDF I bet. Airplanes use a avionic based on RDF idea. Read the wikpeadia article on RDF.
Others may come up with other ideas, those where the first that popped in my mind.

Dectect motion with RFID without use of sensors

Does anyone know if the use of only one static active RFID tag are able to detect motion(eg. moving human or objects) by itself without any use of other extra tags or sensors?
You could be able to do it by doing a permanent inventory and getting both the time and the signal strength received from the tag in each session. Both will be an indication that either orientation or distance has changed, but they are not exclusivelly corelated (you could have a change of both factors even if the tag is not moving) so you should do extensive test before settling on the solution.
Since you are talking about an active tag, there are manufacturers that incorporate motion sensors into their tag in order to save battery (tag emits more often when its moving), so you should contact them to see which of them can allow you to gather data from the sensor.
If you are thinking about fixing the tag on a wall and have the tag detect when someone passes by it, I do not know that such a product exist: there are tags that have thermometers or even humidity sensors integrated but not area of interest motion detection, for this you can use a wireless motion sensor.

Search for all iBeacons and not just with specific UUID

Is it possible to search for all iBeacons which are nearby? I know it's possible to search iBeacons by UUID. But i want to find all iBeacons nearby.
An iBeacon is a region, and has as defining property the UUID. Therefore, you can only search for the ones matching a UUID.
After you find one or more with a specific UUID, you can figure out which is closest using the delegate callbacks, where the beacons are stored in an array ordered by distance.
There is great sample code on this and also a pretty detailed WWDC video session: "What's new in Core Location"
iBeacons are higher-level constructs than regular BLE peripherals. From what can be determined from the Apple docs, beacons are tied to their service UUID. i.e., a family of beacons is a "region" and a you go into and out of a region based on the range and visibility of a beacon to YOU, not the other way around. Unfortunately Apple has used the term region, which most of us probably associate with MapKit, so this is adding to the general confusion
Here's the bad news: You can only scan for ProximityUUIDs that you know, there is no "wildcard" proximityUUID. Additionally, CLBeacons don't expose the much in the way of lower level CoreBluetooth guts so if you want to find all beacons that happen to be near you, you'll have to use CoreBluetooth, scan for peripherals, then look though the returned peripheries and query each one them to find beacons. Of course Apple has neither registered (with the Bluetooth SIG) or (yet) published the iBeacon characteristics so, you'll need a BT sniffer to reverse engineer what constitutes an iBeacon from any other BLE device.
each APP would use it's own specific UUID, using the "major" and "minor" integer values to differentiate between beacons.
for example, the UUID would be associated with a chain of shops, major would identify the shop, and minor the aisle, or even a group of products.
scanning for unknown UUID's would not be very useful, as your app would not know what to do with the information.
the UUID is generated once and for all, using the "uuidgen" command in the terminal.
sadly there is no protocol to actually communicate with beacons, hence there is no standard to get the location of a beacon, or any other useful info.
it would have been so much better if we could open a connection to a beacon, usually the closest one, and obtain additional data from it, without having to be on the same WIFI network.
you either have to use bonjour to communicate with the device over WIFI, or use the major and minor id to obtain data from a webservice of some kind.
Unfortunately you cannot at this time search for an arbitrary iBeacon without first knowing the proximityUUID value. I've tried writing directly to COREBluetooth and, although you can discover and connect to transmitting beacons in your area, what you get back is jibberish with no relation to the BLE UUID. So you can't even confirm that the peripheral you have connected to is in fact an iBeacon.
This does not appear to be a limitation of the BLE spec, rather it is a limitation that has been imposed by Apple. It also appears that this limitation does not exist for the Android platform.
Until this gap is closed, Android will have a significant advantage over iOS in this area.
I disagree with previous comments that scanning for UUIDs would be useless. On the contrary, if you knew the beacon UUID, you could create a map of beacon/location/subject in the cloud and use it to navigate (assuming the beacon was fixed) using a web service. You could crowd-source the data so that eventually a very rich database of beacon UUID/location pairs would be available to all who wanted to write location apps. Perhaps this is why Apple is hiding the info; they may be holding this back for their own purposes.
According to Radius Networks (authors of the AltBeacon spec and the android-beacon-library it's not possible to identify a beacon using CoreBluetooth

Resources