Wiem, że istnieje wiele pytań na temat stackoverflow związanych z moim pytaniem, ale chciałbym wiedzieć, czy jest jakiś sposób, aby uzyskać dokładną odległość od RSSI.Obliczanie odległości z RSSI BLE android
Śledziłem this link i niektóre inne git library methods for distance calculation, a także ten tutorial. Ale nie mogę uzyskać poprawnego rozwiązania.
To co używam do pomiaru odległości:
protected double calculateDistance(float txPower, double rssi) {
if (rssi == 0) {
return -1.0; // if we cannot determine distance, return -1.
}
double ratio = rssi * 1.0/txPower;
if (ratio < 1.0) {
return Math.pow(ratio, 10);
} else {
double accuracy = (0.89976) * Math.pow(ratio, 7.7095) + 0.111;
return accuracy;
}
}
Kiedy wywołanie tej metody Mijam standard i RSSI co mam dostać od mojego mLeScanCallBack()
private BluetoothAdapter.LeScanCallback mLeScanCallback =
new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, final int rssi, final byte[] scanRecord) {
runOnUiThread(new Runnable() {
@Override
public void run() {
BluetoothDeviceModel bluetoothDeviceModel = new BluetoothDeviceModel(device, rssi);
mLeDeviceListAdapter.addDevice(bluetoothDeviceModel, rssi, bluetoothDeviceModel.device.getAddress());
mLeDeviceListAdapter.notifyDataSetChanged();
if (mapBluetooth != null) {
mapBluetooth.put(bluetoothDeviceModel.getDevice().getAddress(), bluetoothDeviceModel);
mLeDeviceListAdapter.refresh(mapBluetooth);
}
}
});
}
};
Z jakim problemem mam do czynienia?
Nie ma nic złego w powyższym kodzie. Daje mi odległość, ale nie jestem z tego zadowolony, ponieważ nie jest to właściwa odległość. Czy ktoś może mi powiedzieć, czy możliwe jest uzyskanie dokładnej odległości za pomocą powyższej metody lub w inny sposób?
Jestem w takiej samej sytuacji jak ty, sygnały RSSI nie są idealne, ponieważ na środowisko istnieje wiele czynników, zniekształcają one sygnały jako magnetyzm i inne czynniki wpływające na sygnały. Istnieje kilka filtrów, które usuwają sygnały szumu jako "Filtr Kalmana" lub "Filtr Cząstek", ale nie znalazłem sposobu na zastosowanie go, gdy masz szereg sygnałów RSSI, jeśli znajdziesz sposób, proszę mi powiedzieć! –
czy otrzymałeś jakieś rozwiązanie? – Araf
Nikt nie przeprasza, dopóki nie otrzymałem dokładnego rozwiązania dla tego obliczenia. –