Solve 4 circles with known centers and radii

1 回表示 (過去 30 日間)
Amit Daud
Amit Daud 2021 年 2 月 22 日
コメント済み: darova 2021 年 2 月 25 日
Hello everyone,
I am working on a positioning system where I have distances of a pinger (sound-source) from 4 microphones in a 3-D space. I need to find the intersection of these 4 circles to find the position of the pinger. Note that the sensors and distance calculation model are noisy and hence these 4 circles may or may not meet a single point. I could have used fsolve if they met at a single point. In most cases, they are forming a small volume and I need to find the centre point of the volume for further steps of the algorithm.
Any help or suggestion would be really helpful. Let me know if you don't understand the exact question.
Thank you in advance,

回答 (1 件)

darova 2021 年 2 月 22 日
You can try to use image processing toolbox
[x,y] = meshgrid(1:100);
A1 = (x-20).^2+ (y-30).^2 < 15^2;
A2 = (x-57).^2+ (y-30).^2 < 25^2;
A3 = (x-28).^2+ (y-74).^2 < 30^2;
A = A1 | A2 | A3;
Then just use bwlabel to separate each region
  2 件のコメント
Amit Daud
Amit Daud 2021 年 2 月 25 日
Thank you @darova for your time and efforts. Umm, I could say that I know a little bit of image processing and let me have a brief look at what are you saying. But from what I understood at this moment is you are talking about solving in 2-D. I don't know exactly what bwlebel does but I think this way I could have X and Y coordinates, but not the Z as the centres of these spheres of each microphone need not be coplanar. Let me know if you dont understand what I am saying.
Anyway thank you,
darova 2021 年 2 月 25 日
I used 2D case to simplify the problem and to visualize
You can use it in 3D too
[x,y,z] = meshgrid(1:100);
A1 = (x-x0).^2+(y-y0).^2+(z-z0).^2 < R^2;
% A2 = ...
% A3 = ...
Don't forget about scaling
bwlabel seperates each region (it numerates them)


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by