获取激光数据,解析转换为超声实现避障:
项目决定在侧面安装雷达实现纵向平面检测避障,初步分析可行(个人认为实用性不高,双侧雷达本身成本就很高)
大致思路(以单侧为例):
获取两次竖直安放雷达的激光数据,以及数据长度,计算一弧度(ros中大多使用弧度制计算)对应数据个数
设定前方触发距离,即正前方雷达数据距离,同时计算上下检测范围对应角度,以及对应数据长度
通过三角函数,以触发距离为基准,计算以正前方为中线,上下两部分数据。此数组记做匹配数据,检测此角度内数据,凡小于匹配数据,计算距离,转换为超声数据发送ROS
//简单图示:
![WYO0II3H1U_([V7N~)92WV.png
简单实现思路如上,同理可实现四面检测(前后上下),或许可以替代跌落传感器等,实际效果精度较高,但快速移动时,离中线最远处数据会出现偏差,需要做畸变处理(太菜不会),简单处理可直接去掉部分数据
注意点:
雷达数据有对应方向,获取数据第一步应该是数据处理,保证x轴数据朝下(或者你喜欢的方向),不然就只能根据你计算的匹配数据固定方向
注意弧度值计算,在计算匹配数据时,注意三角函数使用,明确使用哪条对应中线,否则很容易混淆
如果需要实现地面障碍检测,通常对比下方匹配数据,如果数据小于匹配数据,则有障碍物,此处考虑实际会有一定越障能力,会有一个差值,计算时,也需加上三角函数计算,否则角度越大,误差越大
注:个人认为实际应用不大,如想精确检测地面障碍,就不能粗暴滤除数据,对算法要求较高
网友评论