Can anyone please tell me how to implement mobile node that travels and collects data from the meeting points of each triangle after applying Delaunay Triangulation method.

2 ビュー (過去 30 日間)
area=[110,110]; % nodes deployment area in meter Trange=2; % transmission range of sensor node in meter nodes.pos=area(1).*rand(n,2);% nodes geographical locations lambda=0.125; % signal wavelength in meter nodes.major = Trange; % major axis for ellpitical range in meter nodes.minor = lambda*Trange; % minro axis for ellipitical range in meter redundantNo=10; % number of healing nodes redundantNo=round(10*n/100); %% plot the nodes deployment cnt=1; for ii=1:n for jj=1:n if ii~=jj nodes.distance(ii,jj)=pdist([nodes.pos(ii,:);nodes.pos(jj,:)]); if nodes.distance(ii,jj)<Trange nodes.distance(ii,jj)==Trange nodes.inrange(ii,jj)=1; else nodes.inrange(ii,jj)=0; end end end end figure(2) F5=plot(nodes.pos(:,1),nodes.pos(:,2),'.','color','r'); hold on for ii=1:n % plot the circular transmission range [nodes.circle.x(ii,:),nodes.circle.y(ii,:)]=circle(nodes.pos(ii,1),nodes.pos(ii,2),Trange); F6=fill(nodes.circle.x(ii,:),nodes.circle.y(ii,:),[0.25,0.25,0.25]); alpha 0.3 hold on end axis on xlabel 'x(in meters)'; ylabel 'y(in meters)'; %title('Initial Placement of Nodes with circular transmission range') %% plot delauny triangle TRI = delaunay(nodes.pos(:,1),nodes.pos(:,2)); figure(2) F5 = plot(nodes.pos(:,1),nodes.pos(:,2),'.','color','r'); hold on for ii=1:n % plot the circular transmission range [nodes.circle.x(ii,:),nodes.circle.y(ii,:)]=circle(nodes.pos(ii,1),nodes.pos(ii,2),Trange); F6=fill(nodes.circle.x(ii,:),nodes.circle.y(ii,:),[0.25,0.25,0.25]); alpha 0.3 hold on end axis on xlabel('x(meters)') ylabel('y(meters)') %title('Coverage holes in initila position of Nodes') hold on triplot(TRI,nodes.pos(:,1),nodes.pos(:,2)); This is code for DT method.

回答 (1 件)

Shivam
Shivam 2024 年 2 月 8 日
Hi Jyotsna,
From the details gathered, I understand that you have the data nodes and want to collect data from the meeting points of each triangle obtained after applying the Delaunay Triangulation.
You can follow the below possible workaround to accomplish the task:
  1. Apply Delaunay Triangulation to the position dataset using MATLAB's 'delaunayTriangulation' function.
  2. Find the circumcenters of each triangle formed using MATLAB's 'circumcenter' function. The circumcenter represents the point equidistant from all vertices of the triangle.
  3. Design the trajectory for the mobile node to traverse the circumcenters of each triangle. You can use path-finding algorithms like 'Nearest Neighbour' for this purpose.
  4. As the mobile node follows the path, ensure that it is within the transmission range of the sensor nodes to facilitate the data collection. For that, you can check if the transmission range is defined appropriately so that it is at least half the length of the longest side of the triangle so that the circumcenter falls within the transmission range of all three sensor nodes and data can be received from all three nodes of the triangle.
It can also be noted that the 'Nearest Neighbour' path-finding algorithm may not be optimal in some scenarios. So, you can refer to other path planning algorithms, including 'Ant Colony Optimization(ACO),' 'Simulated Annealing(SA),' etc., to get optimized paths.
You can also refer to the following MATLAB documentation and references to know more about delaunayTriangulation, finding the circumcenter of a triangle and nearest neighbor path-finding algorithm:
I trust this explanation addresses your problem.
Thanks

カテゴリ

Help Center および File ExchangeDelaunay Triangulation についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by