资源简介

MATLAB程序,能直接处理SICK官方软件SOPAS导出的log数据文件,生成3D点云图

资源截图

代码片段和文件信息

clear all
clc

angle_orign_temp = [];
angle_step_temp = [];
data_length_temp = [];
data_range_temp =[];
data_range = [];

data_orign = importdata(‘F:\20171204-2.log‘);
[rowcol]=size(data_orign);
for i_frame = 1:row
data_orign_temp1 = strcat(data_orign{i_frame1});                %把读到的按行存的cell格式转换成字符串

header_pos = findstr(data_orign_temp1‘<02>‘);
data_orign_temp11= data_orign_temp1(header_pos:end);
data_orign_temp11(find(data_orign_temp11 == ‘<‘)) = [];     %去掉字符串中的空格
data_orign_temp2 = strrep(data_orign_temp11‘>‘‘ ‘);        %用空格替换>
data_orign_temp3 = regexp(data_orign_temp2 ‘ ‘ ‘split‘); %按空格将string分割成数组
data_orign_dec = hex2dec(data_orign_temp3)‘;    %进制转换
flag = [4848484848484848];                           %原始帧结构中的预留标志段,8个0,十进制
flag_postion = findstr(data_orign_decflag );          %寻找标志段所在位置
data_orign_use = data_orign_dec(flag_postion+8:end);   

%LMS511以空格来区分不同字段,每个字段有各自的含义,只取有用部分
spc_location = find(data_orign_use == 32);           %找出空格字符所在的下标
%提取起始角度
for i1 = spc_location(1)+1: spc_location(2)-1
    angle_orign_temp = strcat(angle_orign_tempchar(data_orign_use(i1)));
end
if(angle_orign_temp(1) == ‘F‘)
angle_orign = hex2dec(angle_orign_temp) - 2^32; %起始角度未负的话,用8位十六进制表示,最高位为F
angle_orign = (angle_orign/10000)*pi/180;
else
    angle_orign = hex2dec(angle_orign_temp);
    angle_orign = (angle_ori

评论

共有 条评论