YDLIDAR-X4激光雷达介绍

YDLIDAR X4激光雷达是深圳越登智能科技有限公司(YDLIDAR,这家公司属于EAI)研发的一款 360 度二维测距产品,本产品基于三角测距原理,并配以相关光学、电学、算法设计,实现高频高精度的距离测量,在测距的同时,机械结构 360 度旋转,不断获取角度信息,从而实现了 360 度扫描测距,输出扫描环境的点云数据。


由上图大家可知,该雷达其实很小巧,唯一不妥的地方感觉就是这个使用皮带传动:


0x01 下载编译ROS下驱动源码

从github下载ydlidar x4的ROS下驱动源码,该源码需要放在ros工作空间下的src目录下进行编译,下载命令如下:

git clone https://github.com/EAIBOT/ydlidar.git


博主在通过udev规则配置脚本时采用如下方法:
由于开发机器人的过程中,发现电脑每次开机,设备的窗口都会改变;如果每次都修改代码就有些麻烦,而且浪费时间。所以百度下了解决方法——>建立USB串口别名,创建udev规则。

一、查看USB端口信息

运行lsusb命令,然后拔掉你要建立别名的设备,再次运行lsusb,确定你设备的ID号:

二、新建规则

mkdir ~/arm
cd ~/arm
vim arm.rules

内容如下:

博主使用是是YDLIDAR X4激光雷达,所以设置别名ydlidar

# set the udev rule , make the device_port be fixed by rplidar
KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0777", SYMLINK+="ydlidar"

参数介绍哦:

KERNEL 在内核里看到的设备名字,比如sd*表示任意SCSI磁盘设备

ATTRS{idVendor}“10c4” ; ATTRS{idProduct}“ea60”

这里的这两个参数与USB本身有关,改成上面你查到的设备ID。

MODE 设备文件的权限,采用8进制

SYMLINK 设备的别名

三、新建脚本文件

vim arm.sh

内容如下

#!/bin/bashsudo cp arm.rules  /etc/udev/rules.d
echo " "
echo "Restarting udev"
echo ""
sudo service udev reload
sudo service udev restart
echo "finish "

四、运行脚本文件

sudo chmod -R 777 *
./arm.sh

1.出现下面的信息则说明OK了
Restarting udev

finish

2.给USB特定的别名与给予权限,不用每次使用都要给权限。

sudo chmod 777 /dev/tty*

3.拨插USB线,检查规则是否建立成功

ls /dev/rplidar

出现/dev/rplidar,则说明别名成功。

当下载完源码后,接下来就可以在ros的工作空间根目录下执行catkin_make来编译该源码软件包,当编译完成后记得source devel/setup.bash,然后就可以来配置udev规则了,以后就不用来看雷达挂载点是ttyUSB0还是ttyUSB1这些了,因为每次开机时usb设备的加载顺序是随机的,这样就导致挂载点也随机,为了保证我们的启动雷达的代码统一,因此就需要为该设备配置一个别名,该udev配置规则脚步放在ydlidar/startup目录下名字是initenv.sh,该脚本内容如下:

0x02 启动雷达测试

启动雷达有两个launch文件,一个lidar.launch是直接执行启动雷达进行扫描测距,另外一个是lidar_view.launch不仅可以启动雷达,还可以顺带启动rviz来将雷达数据可视化显示,下面来分别介绍这两种操作:

(1)使用lidar.launch启动雷达,执行命令如下:

roslaunch ydlidar lidar.launch



当执行该命令后会发现雷达顺时针转动起来,完整的操作日志如下:

当启动雷达后,查看发布的话题及其消息格式定义:

(2)使用lidar_view.launch来启动雷达并同时启动rviz进行雷达数据可视化显示:

roslaunch ydlidar lidar_view.launch


在终端中输入:ls /dev 可以查看到端口信息从下图中可以看到端口ydlidar

根据上图可知在雷达中也需要规定在ROS下的x,y,z方向,为了弄清楚x正方向就需要知道如下规定:

在ROS下坐标轴方向使用的是右手系,食指指向x轴正方向,中指指向y轴正方向,拇指指向的是z轴正方向。对于旋转的正负方向规定是:右手握拳拇指指向z轴正方向,其余四指弯曲的方向即旋转的正方向,即围绕z轴做逆时针旋转是角速度的正方向,顺时针旋转是角速度的负方向。


由此可以得知雷达的旋转方向与ROS规定的正向旋转是相反的,因此雷达扫描得到的原始数据也需要经过处理才行,现在这部分已经在ROS源码中经过处理了,因此现在雷达的坐标轴如下,在小车上安装时需要注意这个方向:

0x03 launch文件解析

首先来分析lidar.launch文件,里面的一些参数我们需要修改,因为这个launch文件是一个通用的启动文件,还可以启动YDLIDAR下的其他型号,具体的参数我们需要根据x4来做相应修改才行,下面是需要注意的一些参数:

(1)frame_id:设置当前雷达的坐标系名称

(2)angle_min和angle_max是设置雷达扫描的角度范围,这是一对很有用的参数。我们经常遇到以下情况,由于雷达在机器人底盘上的放置位置导致其并不能将360范围数据都拿来使用,经常只需要雷达的前180度的扫描数据:

下面开始开始测试这两个参数,首先我们将雷达放到一个纸箱子里,这样保证四面都可以检测到障碍:

当我们使用默认的参数(angle_min=-180,angle_max=180),然后使用roslaunch ydlidar lidar_view.launch来启动雷达和打开rviz查看数据,如下图所示:

然后测试将angle_min改为-90,angle_max改为90,在rviz中查看效果如下:

(3)配置x4雷达的测距范围,根据雷达的性能参数表得知,在室内环境下测距范围最小值0.12m,最大值10m,因此可以配置rang_min=0.12,range_max=10.0即可。

(4)对于测距频率sample_rate和扫描频率frequency两个参数不用修改,因为修改了也没用,因为在ROS驱动源码中已经将x4雷达的这两个参数给固定了,设置sample_rate=5和frequency=7,如果真的要想修改就需要修改源码了。

参考资料

[1].激光雷达YDLIDARX4 使用手册

[2].激光雷达YDLIDARX4 数据手册

[3].激光雷达YDLIDAR X4资料下载官网地址http://www.ydlidar.cn/cn/download

[4].sensor_msgs/LaserScan的消息格式定义http://docs.ros.org/api/sensor_msgs/html/msg/LaserScan.html

ubuntu16.0 ROS(介绍EAI的YDLIDAR-X4激光雷达在ROS下使用方法)相关推荐

  1. EAI ydlidar X4 ROS无法获取建立node,官方程序初始化失败

    根据ydlidar_ros内步骤配置完成激光雷达,运行 $ roslaunch ydlidar_ros lidar.launch 激光雷达不转,且报错 ERROR: cannot launch nod ...

  2. 机器人开发--Apollo ROS介绍

    机器人开发--Apollo ROS介绍 1 介绍 1.1 概述 1.2 历程 2 ROS的不足 大数据传输性能瓶颈 单中心的网络存在单点风险(ROS2为分布式避免该问题) 数据格式缺乏向后兼容 3 A ...

  3. 鸿蒙os2.0系统什么时候,鸿蒙OS 2.0beta什么时候发布 鸿蒙OS2.0功能介绍

    鸿蒙OS 2.0beta什么时候发布呢?华为发布了面向全场景的分布式操作系统 HarmonyOS 2.0,宣布年底面向开发者发布智能手机 Beta 版本,下面就让小编给大家介绍一下. 鸿蒙OS 2.0 ...

  4. Android 7.0 Nougat介绍

    Android 7.0 Nougat 1.多窗口支持 在 Android 7.0 中,我们为该平台引入了一个新的而且非常需要的多任务处理功能 - 多窗口支持. 现在,用户可以一次在屏幕上打开两个应用. ...

  5. 阅读书源最新2020在线导入_书源篇三及6.5.0版本介绍

    书源篇三及6.5.0版本介绍 魔幻2020 魔幻的2020,开启不一样的生活状态,作为一名技术宅,不出门虽我愿,但看到空荡荡的街头,心中却有种难言的难过与害怕.我不向往繁华.但喜欢车马如龙,街灯繁华. ...

  6. WeihanLi.Npoi 1.7.0 更新介绍

    WeihanLi.Npoi 1.7.0 更新介绍 Intro 昨天晚上发布了 WeihanLi.Npoi 1.7.0 版本,增加了 ColumnInputFormatter/ ColumnOutput ...

  7. Entity Framework Core 2.0 特性介绍和使用指南

    前言 这是.Net Core 2.0生态生态介绍的最后一篇,EF一直是我喜欢的一个ORM框架,随着版本升级EF也发展到EF6.x,Entity Framework Core是一个支持跨平台的全新版本, ...

  8. ASP.NET Core 2.0 特性介绍和使用指南

    ASP.NET Core 2.0 发布日期:2017年8月14日 ASP.NET团队宣布ASP.NET Core 2.0正式发布,发布Visual Studio 2017 15.3支持ASP.NET ...

  9. .NET Core 2.0 特性介绍和使用指南

    前言 这一篇会比较长,介绍了.NET Core 2.0新特性.工具支持及系统生态,现状及未来计划,可以作为一门技术的概述来读,也可以作为学习路径.提纲来用. 对于.NET Core 2.0的发布介绍, ...

最新文章

  1. python中subplot是什么意思_python matplotlib中的subplot函数使用详解
  2. JAVA实现旋转数组的最小数字问题(《剑指offer》)
  3. MySQL计算在线时长(超过2分钟未上传不在计算范围)
  4. Maven系列二setting.xml 配置详解
  5. 浅谈:MyBatis-Plus的CRUD与乐观锁,分页插件,逻辑删除
  6. 如何在Kubernetes集群动态使用 NAS 持久卷 1
  7. Delphi之Exception获得错误信息
  8. oracle高级函数api,Oracle函数-高阶篇
  9. SmartQ 智器—公司介绍
  10. matlab求解线性规划问题的实例代码,matlab 求解线性规划问题
  11. JVM jclasslib使用
  12. iTween介绍和用法
  13. Error:java.lang.RuntimeException: Some file crunching failed, see logs for detail
  14. linux安装mysql deb_Ubuntu下通过deb的bundle文件安装MySQL
  15. 光耦合器 工作原理 作用 应用场合
  16. ARM架构与X86架构
  17. 可编译易用的模块化nf-HiPAC移植成功
  18. 蓝蓝算法第二期,T51
  19. 8 . STM32固件库介绍
  20. tensorflow中的eval的用法

热门文章

  1. 数字孪生技术为智慧城市的建设带来哪些帮助?
  2. 百度地图 行政区切换显示
  3. java SpringBoot+SpringCloud+mybatis b2b2c o2o电商平台 小程序商城 直播电商 直播带货 代跑腿 三级分销 短视频带货 电子商务 源码
  4. 【SpringCloud】04 网关springcloud gateway
  5. mysql查询姓名第二个字_下列哪条语句能够从学生表中查询出姓名的第二个字是“敏”的学生的信息( )。_学小易找答案...
  6. win8下硬盘安装linux,通用解决方案:使用grub4dos硬盘安装实现win7 win8和Ubuntu linux多系统...
  7. mapgis坡度分析_基于ArcGIS、MapGIS对岩溶石漠化与坡度的相关性分析
  8. openssh防火墙
  9. 新材料与我们有什么关系:盘点走进生活的新材料
  10. linux中read函数读取文件夹内文件,linux下read函数