1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| % ----------------------Position lidar à 0°--------------------------------
R=0.089;
Beta= 0; % angle inclinaison en degrés
Xpos=0; % Position du lidar sur x
Ypos=-R*sind(Beta); % Position du lidar sur Y
Zpos=R*cosd(Beta); % Position du lidar sur Z
%---Matrice Transport B1 -> B0 ----------------------------
Mat1=[1 0 0 Xpos;0 cosd(Beta) sind(Beta) Ypos;0 sind(Beta) cosd(Beta) Zpos];
%--- Distance et angle Lidar ------------------------------
d=bureau0(:,2); % toute les distances de BDD incliné
d=d/1000; % distance en Metre
angFi= -bureau0(:,1); % Tous les angles du lidar
%---------------Vecteur lidar------------------
xlidar=d.*cosd(angFi);
ylidar=d.*sind(angFi);
VecLid=[xlidar';ylidar'; zeros(1,length(bureau0)); ones(1,length(bureau0))];
%---- Boucle For---------
for i = 1:length(bureau0) % calculer les coordonnées absolues pour chaque point
coord0(:,i) = Mat1 * VecLid(:,i);
end
x0 = coord0(1,:); % l'ensemble des abscisses absolues
y0 = coord0(2,:); % l'ensemble des ordonnées absolues
z0 = coord0(3,:); % l'ensemble des hauteurs absolues
plot3(x0,y0,z0,'r.') % nuage de point en rouge à 0°
title('représentation bureau de 0° à 30°')
xlabel('axe x');
ylabel('axe y');
zlabel('axe z');
hold on
% ----------------------Position lidar à 45°--------------------------------
Beta=54.45; % angle inclinaison en degrés en considérent l'erreur (45°)
Xpos=0; % Position du lidar sur x
Ypos=R*sind(Beta); % Position du lidar sur Y
Zpos=R*cosd(Beta); % Position du lidar sur Z
%---Matrice Transport B1 -> B0 ----------------------------
Mat1=[1 0 0 Xpos;0 cosd(Beta) sind(Beta) Ypos;0 sind(Beta) cosd(Beta) Zpos];
%--- Distance et angle Lidar ------------------------------
d=bureau45(:,2); % toute les distances de BDD incliner
d=d/1000; %distance en Metre
angFi= -bureau45(:,1); % Tous les angles du lidar
%---------------Vecteur lidar------------------
xlidar=d.*cosd(angFi);
ylidar=d.*sind(angFi);
VecLid=[xlidar';ylidar'; zeros(1,length(bureau45)); ones(1,length(bureau45))];
%---- Boucle For---------
for i = 1:length(bureau45) % calculer les coordonnées absolues pour chaque point
coord45(:,i) = Mat1 * VecLid(:,i);
end
x45 = coord45(1,:); % l'ensemble des abscisses absolues
y45 = coord45(2,:); % l'ensemble des ordonnées absolues
z45 = coord45(3,:); % l'ensemble des hauteurs absolues
%-----------------graphique 3D -----------------------------
plot3(x45,y45,z45,'g.') % nuage de point en vert à 45° valeur corrigée (30°)
X=[x0;x45];
Y=[y0;y45];
Z=[z0;z45];
surface(X,Y,Z) % Création de surface
shading interp; % interpolation entre le nuage de point à 0° et à 45° |
Partager