EasyManua.ls Logo

Velodyne HD HDL-64E S2.1 - APPENDIX D: MATLAB SAMPLE CODE; MATLAB for Calibration Data Processing

Velodyne HD HDL-64E  S2.1
43 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Matlab sample code to read calibration data from HDL-64E output.
fileFilter = '*.pcap';
[File_name,Directory]=uigetfile(fileFilter,'Open a .pcap file') ;
Filename=[Directory File_name];
tic;
fid=fopen(Filename);
ttc=fread(fid,40);
ttc=fread(fid,42);
ttc=fread(fid,inf,'1206*uint8=>uint8',58);
%ttch=dec2hex(ttc);
% Determine how many data packets.
Packet=size(ttc)/1206;
% Convert data to single precision.
S1=single(ttc(2,:))*256+single(ttc(1,:));
S2=single(ttc(102,:))*256+single(ttc(101,:));
S3=single(ttc(202,:))*256+single(ttc(201,:));
S4=single(ttc(302,:))*256+single(ttc(301,:));
for i=0:10000 % Packets loop
status(i+1)=(ttc(1205+i*1206));
value(i+1)=(ttc(1206+i*1206));
end
a=[85 78 73 84 35]
fclose(fid);
toc;
Ind=strfind(value,a);
% Loop through 64 lasers.
for i=1:64
temp=single(value(Ind(1)+64*(i-1)+16:Ind(1)+64*(i-1)+16+7));
temp1=single(value(Ind(1)+64*(i-1)+32:Ind(1)+64*(i-1)+32+7));
temp2=single(value(Ind(1)+64*(i-1)+48:Ind(1)+64*(i-1)+48+7));
temp3=single(value(Ind(1)+64*(i-1)+64:Ind(1)+64*(i-1)+64+7));
LaserId(i)=temp(1);
% Add high and low bytes of Vertical Correction Factor together and check if
positive or negative correction factor.
VerticalCorr(i)=temp(3)*256+temp(2);
if VerticalCorr(i)>32768
VerticalCorr(i)=VerticalCorr(i)-65536;
End
% Scale Vertical Correction Factor by Diving by 100.
VerticalCorr(i)=VerticalCorr(i)/100;
[ 20 ]
HDL-64E S2 and S2.1 Users Manual

Related product manuals