Solve 4 circles with known centers and radii

1 view (last 30 days)
Amit Daud
Amit Daud on 22 Feb 2021
Commented: darova on 25 Feb 2021
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,
Amit

Answers (1)

darova
darova on 22 Feb 2021
You can try to use image processing toolbox
clc,clear
[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;
imshow(A)
Then just use bwlabel to separate each region
  2 Comments
Amit Daud
Amit Daud on 25 Feb 2021
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,
Amit
darova
darova on 25 Feb 2021
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)

Sign in to comment.

Categories

Find more on Agriculture in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!