【机器人】激光测距传感器的数据处理步骤

激光测距传感器FT55-RLAM-800

注:这里针对我们所使用的激光测距传感器FT 55-RLAM-800,不同测距传感器处理方式不完全相同。
: 怎么从激光测距传感器得到数据并对其测量数据进行处理,进而得到它的测量真实数据呢?(单位mm)

: 步骤如下。

激光测距传感器的数据处理步骤为:

在这里插入图片描述
1.得到传感器的测量数据
  打开友善串口调试助手,设置选项为上图所示。选择好端口号波特率数据位设置正确后,自行设置合适的采样频率,点击播放按钮,然后在下面的白框中输入神秘指令 81 04 41 44,准备好后,点击发送,在上面的白框中即可出现十六进制的数据。

2.处理测量数据中没有换行的问题
  测完数据后,复制所有的数据到word中,ctrl + F 查找数据,将错误的没有换行的空格81替换为 ^p81 ,确保替换一次后没有问题,全部替换,再将替换后的数据粘贴回txt文本中。

3.将正确换行的数据导入到excel中
  打开Excel,点击数据 – 自文本导入 – 分隔符号选择为空格 – 下一步 – 完成。如果出现导入数据只有一列,则点击数据 – 分列 – 分隔符号为空格 – 完成。

4.将十六进制数据转换为8位二进制
  在第一行的数据后边输入 =HEX2BIN(D2,8)=HEX2BIN(E2,8),即可出现D2列与E2列对应的8位二进制位,再将这两列数据粘贴回.txt文本中。

5.处理二进制位的txt数据
  在matlab中处理数据,matlab导入上一步的txt文本,导入数据格式为文本字符串形式,再根据以下程序来对数据进行处理。

%以下程序为激光测距传感器的数据处理
%导入二进制数据时,导入形式为文本字符串形式,而非数值形式
left = char(VarName1);
right = char(VarName2);

%前八位数据的截取--舍弃高两位
for i=1:length(left)
    temp = left(i,:);
    interupt_left(i,:) = temp(3:8);
end

%后八位数据的截取--舍弃高两位
for i=1:length(right)
    temp = right(i,:);
    interupt_right(i,:) = temp(3:8);
end

%前后二进制数据的拼接
for i=1:length(right)
    Splice(i,:) = [interupt_left(i,:),interupt_right(i,:)] ;
    %将拼接好的数据转化为十进制
    temp_distance(i,:) = bin2dec(Splice(i,:));
end

%数据转换
distance = temp_distance/4096 * 800 + 200;

%数据的预处理
for i=1:length(distance)-1
   if(abs(distance(i+1) - distance(i)) > 2 )
       distance(i+1) = distance(i);
   end
end

%画出曲线图
figure
plot(distance)

即可得出数据曲线图。

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值