【EHub_tx1_tx2_E100】 WLR-720多线激光 雷达在Ubuntu18.04 + ROS_ Melodic 环境评测

简介:介绍 WLR-720多线激光雷达 在EHub_tx1_tx2_E100载板,TX1核心模块环境(Ubuntu18.04)下测试ROS驱动,打开使用RVIZ 查看点云数据,本文的前提条件是你的TX1里已经安装了ROS版本:Melodic。关于测试硬件EHub_tx1_tx2_E100载板请查看:EdgeBox_EHub_tx1_tx2_E100 开发板评测_机器人虎哥的博客-CSDN博客

        大家好,我是虎哥,从厂家那申请到了万集的WLR-720雷达样品,第一时间亲自做做接入适配测试,总结一下自己的简单测试经验,分享给大家。

         WLR-720 车载16线激光雷达,主要应用于低速驾驶车辆及机器人的导航定位,雷达输出半径150m,垂直视场30°范围内的高质量原始点云数据,可用于室外高精度地图绘制、障碍物检测,大大降低无人驾驶项目落地时间;雷达采用车规级生产工艺、内置加热模块及散热处理、优良的抗光性以及多重回波等功能的设计,有效解决了无人驾驶车辆在震动、严寒高温、雨雪天气及风沙等环境的应用难题。

目录

一、WLR-720机械式16 线激光雷达介绍

1.1 主要特点

1.2 线束分布数据

1.3 IMU

1.4 安装尺寸

二、WIN端VanJeeView测试配置

2.1 配置电脑IP信息

2.2 打开软件,广播扫描:

2.3 链接雷达

2.4根据需要修改配置,一般改最多的就是IP信息

2.5 修改后WIN端IP测试验证

三、ROS下接入测试

3.1 将板子IP修改到和雷达要求的目的IP

3.2 建立工作空间

3.3 拷贝代码

3.4 编译源码包

3.5 修改ROS 驱动启动脚本中对应的信息

3.6 启动驱动

3.7 启动RVIZ查看IMU数据

4.6 启动RVIZ查看点云

3.8 官方自带RVIZ配置文件查看点云修复

四、总结


一、WLR-720机械式16 线激光雷达介绍

1.1 主要特点

  • 集成6轴IMU模块

  • 激光波长:905nm

  • 人眼安全等级:Class1(人眼安全)

  • 通信接口:Ethernet

  • 工作电压:12-32V DC (电源功率大于20W)

  • 功耗:15W

  • 防护等级:IP67

  • 尺寸:φ105.7mm×81.5mm

  • 净重:0.91Kg

  • 工作温度:-20℃-60℃

  • 测距方式:TOF

  • 测距能力:"0.5m~50m@10%反射率,通道1-4,13-16; 0.5m~70m@10%反射率,通道5~12"

  • 测距精度:±3cm(典型值)

  • 水平扫描视场角:360°

  • 水平扫描分辨率:0.1°/0.2°/0.4°

  • 垂直扫描视场角:30° (-16°~14°)

  • 垂直扫描分辨率:2°

  • 扫描频率:5Hz/10Hz/20Hz

  • 回波模式:单回波/双回波

1.2 线束分布数据

WLR-720 的垂直方位角为-16°~+14°,1 到 16 发光通道在垂直方向间隔 2°从上到下均匀分布,16 路发光通道与垂直角度映射关系如图 1.1 所示。

1.3 IMU

        WLR-720 内置 IMU 芯片,型号为 ASM330LHH,为 6 轴车规级 IMU,可输出角速度和加速度数据。IMU 数据输出的频率为 100HZ,获得数据的方式有两种:1.直接解析 udp 数据的数据尾中的 IMU 数据(详情可见 3.1.2);2.通过订阅 720ROS 驱动中的 IMU 话题(/wlr_720/imu),该话题输出的为标准 IMU 数据格式。

1.4 安装尺寸

在 WLR-720 的后方预留有安装孔位,请使用超出安装面 4-5mm 的 4×M4 螺丝固定激光雷达,完成 WLR-720的安装。下图为 WLR-720 的外形尺寸图和安装孔位图:

  

二、WIN端VanJeeView测试配置

VanJeeView 提供将 WLR-720 输出数据进行可视化的功能,并可以保存回放 pcap 格式的文件,本次使用的版本为VanJeeView V2.9.3 版本。

2.1 配置电脑IP信息

 要求你的电脑设置IP:192.168.2.88。需要将你的电脑网口的固定IP设置到2网段,保持和雷达同一个网段,最好关闭防火墙。

 测试电脑配置IP为:192.168.2.88

记得将雷达的网口,接入你电脑的网口。

2.2 打开软件,广播扫描:

 广播扫描后,可以看到雷达IP是:192.168.2.86,目的IP是:192.168.2.88

 也可以ping通雷达,所以雷达的链接正常,但是记得目的地址一定要和你查看点云数据的电脑是一致的。

2.3 链接雷达

根据广播得到的 雷达IP 地址和端口号,以及目的IP地址,设置你自己测试的电脑IP为目的地址一致。

 之后扫描出来后,点击链接。

 这个时候可以看到点云信息了。

 再点击一下数据表格按钮,就可以关闭数据表格。

2.4根据需要修改配置,一般改最多的就是IP信息

读取信息

 修改IP信息

 下载IP修改参数:

 下载确定后,你发现网络通信就断开了。

2.5修改后WIN端IP测试验证

修改自己的电脑IP为,目的地址IP

 雷达不用重新上电,IP就生效了

广播扫描到雷达:

 IP信息已经变为修改后的。链接成功,可以正常配置雷达和查看信息。

三、ROS下接入测试

上面WIN端,我们修改了IP信息,这里将雷达网口和测试主板链接到一起。ROS下的驱动官网既可以下载到。

3.1 将板子IP修改到和雷达要求的目的IP

上一章我们再WIN下测试的时候,已经修改了雷达的IP,已经雷达要求的目的IP:

 将雷达接入我们测试的ARM环境后,首先需要的就是修改配置其本身的IP.

 说明主板和雷达之间通信正常。

3.2 建立工作空间

mkdir -p ~/SensorWS/WLR720_ws/src
cd ~/SensorWS/WLR720_ws/
catkin_make
source devel/setup.bash

3.3 拷贝代码

#将官方提供的驱动代码包放置到这个目录解压
cd ~/SensorWS/WLR720_ws/src

3.4 编译源码包

cd ~/SensorWS/WLR720_ws
catkin_make -DCATKIN_WHITELIST_PACKAGES=""

第一次编译会报错,解决它

fatal error: pcap.h: No such file or directory

c++: internal compiler error: Segmentation fault (program cc1plus)

pcap.h缺少的问题:没有就装它

sudo apt-get install libpcap-dev -y

c++: internal compiler error: Segmentation fault (program cc1plus):

        这个问题一般是内存不足,虚拟内存不足,或者系统环境静态存储开的过小,最后还有可能是打开的文件句柄限制太小,因为编译的时候要循环嵌套打开一堆文件,常规处理办法有一些,如果增加虚拟内存不能解决,请参考我之前的文章:

c++: internal compiler error: Segmentation fault (program cc1plus) 解决_机器人虎哥的博客-CSDN博客 解决。

 我感觉是我自己这两个参数小了,所以改大试试。

#修改文件
sudo gedit /etc/security/limits.conf 
#修改和增加
nvidia hard stack 3024
nvidia soft stack 3024
ubuntu hard stack 3024
ubuntu soft stack 3024
root hard stack 3024
root soft stack 3024
​
nvidia hard nofile 65535
nvidia soft nofile 65535
root hard nofile 65535
root soft nofile 65535
ubuntu hard nofile 65535
ubuntu soft nofile 65535

 重启一下系统

#重启
sudo reboot
#重启后查看配置
ulimit -a

 重新编译看看

cd ~/SensorWS/WLR720_ws
catkin_make -DCATKIN_WHITELIST_PACKAGES=""

 在这要等一段时间 

 编译完毕

3.5 修改ROS 驱动启动脚本中对应的信息

刚才我们根据需要已经修改了IP,接下来我们测试,需要使用脚本启动,需要修改脚本的对应IP信息。

cd ~/SensorWS/WLR720_ws/src/vanjee_lidar_v1.10.4/src/config
vim config.yaml

原始文件内容是:

主要是将IP信息修改为你自己环境的: 

3.6 启动驱动

cd ~/SensorWS/WLR720_ws
source devel/setup.bash
#启动驱动 需要桌面系统支持  默认会打开rviz
roslaunch vanjee_lidar vanjee.launch

 打开其实什么都不显示,所以要先查一下问题我们可以先在launch关掉RVIZ

 重启启动脚本后:

新启动一个终端,我们可以初步看看驱动的一些节点信息:

rosnode list
--------------------------------------------------------------------------------
    /rosout
    /rviz
    /vanjee_nodelet_manager
    /vanjee_nodelet_manager_cloud
    /vanjee_nodelet_manager_driver
    
        
rostopic list
--------------------------------------------------------------------------------
    /clicked_point
    /initialpose
    /move_base_simple/goal
    /rosout
    /rosout_agg
    /tf
    /tf_static
    /vanjee_nodelet_manager/bond
    /vanjee_packets
    /vanjee_packets_but
    /wlr_720/cloud_points
    /wlr_720/imu

打印IMU值:

cd ~/SensorWS/WLR720_ws
source devel/setup.bash
#打印 IMU 值
rostopic echo /wlr_720/imu

3.7 启动RVIZ查看IMU数据

Rviz中点击左下角Add添加rviz_imu_plugin,可以看见有坐标系出现,如果没有需要安装 (sudo apt-get install ros-melodic-imu-tools 安装imu功能包)

sudo apt-get install ros-melodic-imu-tools 

打开RVIZ:

#wlr_720imu 是IMU发布消息内的frame_id: "wlr_720imu" config.yaml 也有配置
rosrun rviz rviz -f wlr_720imu

  

 这个时候,你懂雷达,箭头会随着你动雷达晃动。

3.8 启动RVIZ查看点云

保持驱动是启动的情况下。我们使用nomachine链接到桌面,启动RVIZ。

#wlr_720point 是激光点云数据的fram_id
rosrun rviz rviz -f wlr_720point

 

 刚添加完毕,还不会有数据点云,需要做一下话题配置。

 这样就可以看到激光。

3.9 官方自带RVIZ配置文件查看点云修复

打开驱动

cd ~/SensorWS/WLR720_ws
source devel/setup.bash
#启动驱动 需要桌面系统支持  默认会打开rviz,上面我们已经注释掉了,所以不会再启动
roslaunch vanjee_lidar vanjee.launch

官方原始的驱动launch文件是会打开RVIZ的,我们注释掉了,即使不注释,发现也是看不到什么东西,从上面两章测试,我们其实就可以看到,是官方要求的一些fram_id和自带的驱动脚本配置不一致导致的。我们手工修复一下 。

新开一个终端,在nomachine的桌面中断中输入:

#vanjee.rviz 官方自带的rviz配置文件
rosrun rviz rviz -d ~/SensorWS/WLR720_ws/src/vanjee_lidar_v1.10.4/src/vanjee_lidar/rviz_cfg/vanjee.rviz

 全局的ID就是不对的,改成我们自己的wlr_720point

 立马就可看到点云。所以我们把官方的配置文件启动命令改一下:

rosrun rviz rviz -d ~/SensorWS/WLR720_ws/src/vanjee_lidar_v1.10.4/src/vanjee_lidar/rviz_cfg/vanjee.rviz  -f wlr_720point

执行就可以直接看到点云了。

四、总结

我自己跑测试过程,整体还算比较顺利,编译和最后官方的点云查看,废了我一点时间,除此之外都比较简单,没有那么多繁琐的配置。顺道说说WLR-720的特点吧:

  1. 集成了6轴的IMU,这个其实会给我们省单独的IMU费用。单独IMU你需要接线,调试,还需要考虑安装位置,结构上也有考虑,所以这个地方是即帮助你省钱,也帮你省心。

  2. 是不是所有16线激机械式的激光雷达的发热都这么大!!!,记得在你的设计中为他单独增加散热片或者风扇,否则长期稳定性,环境如果有点差的情况,未必能扛住。

  3. 最重要的,价格确实比起同性能的有优势,性价比之王没的说了。整体质感,工艺,是很对得起这个价格的。

纠错,疑问,交流: 911946883@qq.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/6217.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【大数据安全-Kerberos】一篇文章搞定Kerberos认证

【大数据安全-Kerberos】一篇文章搞定Kerberos认证1)Kerberos 相关了解2)Kerberos 基本概念2.1.基本概念2.2.KDC3)Kerberos 原理3.1.客户端 与 Authentication Service3.2.客户端 与 Ticket Granting Service3.3.客户端 与 HTTP Service4&…

对于Redis的学习-Redis单线程

Redis 简单来说 Redis 就是一个使用 C 语言开发的数据库,不过与传统数据库不同的是 Redis 的数据是存在内存中的 ,也就是它是内存数据库,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。 Redis的特点 Redis 支持更丰富的…

Win10 升级到 XP 系统,精简养老还能流畅扫雷

要说 Windows 各版本的市场占有率,Win10 现在比其他各版本加起来还多得多得多。 不过前几代经典系统给小蝾的深刻印象也不是那么容易忘记,特别是 Win XP 。 极低的配置要求、简单的设计、还有那经典的壁纸… 但由于游戏、软件的强制换代,放…

Android---Jetpack之DataBinding

DataBinding 的意义 让布局文件承担了部分原本属于页面的工作&#xff0c;使页面与布局耦合度进一步降低。 DataBinding 的应用 使用 dataBinding 需要在 gradle 里添加如下代码 dataBinding{enabled true} 应用实现 activity_main.xml <?xml version"1.0" e…

使用Hackintool修复通用帧缓存区(帧缓冲区) 指南

General Framebuffer Patching Guide using Hackintool Please do not quote this guide in its entirety. Post a link instead.​ 原始链接&#xff1a;[GUIDE] General Framebuffer Patching Guide (HDMI Black Screen Problem) | tonymacx86.com 以下内容为翻译&#xff0…

计及需求侧响应日前、日内两阶段鲁棒备用优化【IEEE6节点】(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

(排序3)希尔排序时间复杂度与直接选择排序

TIPS 希尔排序分组预排的目的就在于比如说我要对数据进行升序排序&#xff0c;那么就是可以达到让大的数尽快的调到后面然后接下来随着gap的不断缩小&#xff0c;间隔越来越小&#xff0c;组也就越来越多&#xff0c;最终整个数组的话是越来越接近有序。最终的话&#xff0c;你…

通过CPU主频,我们来谈谈“性能”,CPI 是什么?

什么是性能&#xff1f;时间的倒数 计算机的性能&#xff0c;其实和我们干体力劳动很像&#xff0c;好比是我们要搬东西。对于计算机的性能&#xff0c;我们需要有个标准来衡量。这个标准中主要有两个指标。 第一个是响应时间&#xff08;Response time&#xff09;或者叫执行…

Spring原理学习(二):Bean的生命周期和Bean后处理器

〇、前言 倘若是为了面试&#xff0c;请背下来下面这段&#xff1a; spring的bean的生命周期主要是创建bean的过程&#xff0c;一个bean的生命周期主要是4个步骤&#xff1a;实例化、属性注入、初始化、销毁。但是对于一些复杂的bean的创建&#xff0c;spring会在bean的生命周期…

反转字符串II(力扣刷题)

给定一个字符串 s 和一个整数 k&#xff0c;从字符串开头算起&#xff0c;每计数至 2k 个字符&#xff0c;就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个&#xff0c;则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个&#xff0c;则反转前 k 个字符&…

【C语言学习】C语言初探

第一个C语言程序 #include <stdio.h>int main() {// puts 是 output string 的缩写&#xff0c;即在控制台输出字符串puts("Hello,C!");return 0; }源文件、编译和链接 源文件其实就是纯文本文件&#xff0c;它的内部并没有特殊格式。 不管我们编写的代码有…

SpringBoot定时任务——利用注解实现

目录 什么是定时任务&#xff1f; 定时任务的实现 cron的参数设置&#xff1a; 利用定时任务刷新数据库 什么是定时任务&#xff1f; 顾名思义就是定期的帮我们去实现一些功能&#xff0c;比如最常用的就是跟用户发送信息&#xff0c;还有就是定时的去清理一些垃圾数据 定…

谷粒商城-redis分布式锁系列

1.压力测试出的内存泄漏及解决&#xff08;可跳过&#xff09; 使用jmeter对查询产品分类列表接口进行压力测试&#xff0c;出现了堆外内存溢出异常。 我们设置的虚拟机堆内存100m&#xff0c;并不是堆外内存100m 产生堆外内存溢出&#xff1a;OutOfDirectMemoryError 原因是…

核心 Android 调节音量的过程

核心 Android 系统提供的调节音量的方法 核心 Android 系统提供了多种调节音量的方法&#xff0c;这些方法主要包括如下这些。 如在 Android Automotive 调节音量的过程 中我们看到的&#xff0c;CarAudioService 最终在 CarAudioDeviceInfo 中 (packages/services/Car/servi…

蓝桥杯3月刷题集训-A 【枚举模拟】Day3

蓝桥杯3月刷题集训-A 【枚举&模拟】Day3 文章目录蓝桥杯3月刷题集训-A 【枚举&模拟】Day3一、扫雷二、含2天数一、扫雷 我们首先读取输入中的方格图&#xff0c;将其保存在一个二维数组 grid 中。然后&#xff0c;遍历方格图中的每一个方格&#xff0c;对于每个空白方格…

【基础算法】哈希表

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招算法的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于代码随想录进行的&#xff0c;每个算法代码参考leetcode高赞回答和…

定点乘法器----部分积压缩(华为杯)

一. 简介 在上篇文章中&#xff0c;已经介绍了如何使用booth算法生成部分积了&#xff0c;那么在这篇文章中将介绍如何使用加法树对部分积进行压缩。加法树压缩有多种形式&#xff0c;常见的是Wallace压缩&#xff0c;也是赛题中介绍一种方法。 感兴趣的可以&#xff0c;可以研…

volatile、synchronize的特点和区别

volatile和synchronize的区别线程安全volatile关键字的使用volatile为什么不能保证 i的线程安全&#xff1f;因为 i 不是原子操作volatile和synchronize的特点volatile和synchronized的区别各位&#xff0c;先大概了解什么是线程安全吧&#xff1f; 线程安全 线程安全指的是内…

python_接口自动化测试框架

本文总结分享介绍接口测试框架开发&#xff0c;环境使用python3selenium3unittestddtrequests测试框架及ddt数据驱动&#xff0c;采用Excel管理测试用例等集成测试数据功能&#xff0c;以及使用HTMLTestRunner来生成测试报告&#xff0c;目前有开源的poman、Jmeter等接口测试工…

都说IT行业饱和了,2023年成为程序员还有发展前景吗?

程序员饱和了吗&#xff1f;初级码农肯定是算饱和了&#xff0c;因为大部分的互联网企业开始提高招聘要求了&#xff0c;比如技能要求、两三年工作经验、项目经验、软实力等&#xff0c;是按照中级开发人员的标准来的。所以干程序员还是有发展前景的&#xff0c;你的技能达标了…
最新文章