【转载】最强干货|ROS与RPLIDAR结合使用说明及问题汇总

ROS作为机器人软件平台,能为异质计算机集群提供类似操作系统的功能,在研究机器人行走等方面起着重要的作用。Llidar作为机器人定位导航的核心传感器,在机器人自主行走、定位导航方面扮演着重要角色。两者的结合使用,使得机器人自主定位导航效果更佳。

1. RPLIDAR 产品简介:

RPLIDAR是SLAMTEC—思岚科技自主研发的激光雷达,目前有A1和A2两款成熟的商业激光雷达产品。两款产品均可从官网获取相应的SDK和开发指导文档。

RPLIDARA1

A1的测距范围为0.2~6米,360°全角度测量,每秒扫描2K个点,扫描频率5~10hz可调。

RPLIDARA2

A2的测距范围为0.15~8米,360°全角度测量,每秒扫描4K个点,扫描频率5~15 hz可调。

官方针对rplidar雷达,给出的SDK中提供了相应的frame_grabe可视化测试界面。具体操作流程如下:

(1)设备管理器找到对应串口

(2)打开frame_grabe,选择对应端口查看

(3)frame_grabber界面

详细资料请参阅思岚科技官网,包括:

简介与规格书(Datasheet)、开发套装使用手册、通讯接口协议与应用手册、SDK 用户手册。

2. rplidar的ROS

package rplidar_ros介绍:

rplidar_ros是国内第一款面向全球ROS开发者推出相应package的激光雷达,其低廉的价格大大推动了激光雷达在ROS中的使用,为国内服务机器人的移动导航和避障相关技术的发展和人才储备起了很大的推动作用。

ROS之所以能够很好的在开发者中间推广起来,就是它建立了一套通用的通讯框架,不同的开发者只需要按照一定的通讯协议,关注相应的数据接口,完成每个模块的功能就OK,大大避免了机器人重复造轮子的繁琐过程。

任何一个ROS生态里面的package,往往只需找到相应的wiki和github页面,就可以清楚的了解其数据接口和内部的实现。

2.1rplidar_roswiki

wiki主要包含对应rplidar产品功能和package接口和参数的说明和相应的使用流程介绍,以及当前ros生态支持的版本信息。

2.2rplidar_ros github

rplidar_ros的github主要包含package对应的源码和package的版本管理和开发者问题对话。

issue(open|closed): 里面主要包含开发者关于rplidar_ros使用的相关问题的对话,如果开发者在使用某个package遇到问题都可以现在此搜索是否有相关问题的解释与解决方法;

pull request:相关使用者针对原有代码的改进,希望加入到本仓库,以提高或增强相应的功能;

wiki: 包含更加具体的说明和使用介绍;commit、branch、release、contributors是rplidar_ros开发迭代的记录。

2.3 rplidar_ros消息机制

rplidar_ros的在ROS里面的通讯接口,主要有1个话题(topic) /scan和2个服务(service)stop_motor和start_motor.。/scan主要用于向外部发送雷达数距消息(message),消息格式采用的是sensor_msgs/LaserScan,像避障或slam功能模块对应的ROS package就需要调用这个话题的雷达数据完成建图或避障的功能。stop_motor和start_motor主要是用于客户端调用服务器端关闭和启动雷达的接口,使系统可以依据需要选择关闭和开启雷达。

rplidar_ros给出的rplidar.launch,实际使用中依据具体的使用往往关注的参数有 端口号(serial_port)、坐标系名称(frame_id)、正反装(inverted)。

2.4 rplidar_ros坐标系说明:

rplidar是按照顺时针旋转,SDK数据输出是带距离和角度信息的左手系数据,rplidar_ros输出已经将其转化为右手坐标系输出。雷达数据坐标系参照雷达数据线的位置(A2)/形状(A1)和下面的图示判断。

2.5 rplidar_ros启动说明:

首先要查看插上rplidar后对应端口权限(每次插拔都要赋予一次权限):

ls -l /dev |grep ttyUSB

sudo chmod 666 /dev/ttyUSB0

如果没有读写权限,需要添加其读写权限(每次插拔都要赋予一次权限):

sudo chmod 666 /dev/ttyUSB0

每次这样插拔都要添加权限很麻烦,可以试试添加设备的udev规则,赋予符合相应规则的设备端口固定权限和端口名称的映射。执行相应的rplidar端口映射的脚本:

./scripts/create_udev_rules.sh

启动rplidar_ros节点,并在rviz中显示出雷达数据:

$ roslaunch rplidar_ros view_rplidar.launch

matlab2016版本当前还提供了ROS的功能接口,我们也可以通过matlab参看激光数据。

3. 搭建带rplidar的机器人系统:

前面详细介绍了rplidar_ros

package的相应功能,如果我要在一台机器人本体上使用激光雷达需要怎么设置呢?其实在ROS里利用已有package搭建系统实现基本功能你只需要关注好topic/service和TF frame是否协调起来。TF是ROS里面主要的概念,它维护着每个数据对应坐标系之间的位姿变换关系。要搭建带rplidar的机器人ROS系统,

你就需要依据实际安装信息统一好rplidar坐标系与机器人本体base坐标系的变换关系。实现这种变换关系主要有三种:

3.1 通过模型的URDF文件的方式:

在已知的机器人模型的URDF中添加描述雷达的joint和描述在机器人本体上的link。下面是曾在turtlebot仿真模型添加rplidar模型的urdf设置。

3.2 TF静态变换static_transform_publisher方式:

在机器人启动的launch文件添加静态TF变换的信息即可,

type="static_transform_publisher" args="0.07 0 0 0 0 0 1

/base_link /laser 50"/>

3.3 通过rqt/tf_echo查看TF tree的构建情况:

4. 利用RPLIDAR在ROS环境建图:

4.1 当前开源的2D激光雷达slam的ROS package主要有:

gmapping

ros-perception/slam_gmappingros-perception/openslam_gmapping

Hector

tu-darmstadt-ros-pkg/hector_slam

karto

ros-perception/slam_kartoros-perception/open_kartoskasperski/navigation_2d

cartographer

googlecartographer/cartographer

googlecartographer/cartographer_ros

4.2 TF tree(gmapping为例)

4.3 rqt_graph(gmapping为例)

4.4 slam建图效果:

搭建系统取决统一好topic/service和tf的接口名称,系统运行效果就取决于里面的算法实现,可能变现在具体的启动配置文件的参数设置和内部算法实现,那就需要查看相应论文和代码中涉及的算法原理和算法实现。

5. rplidar相关问题汇总与说明:

5.1 树莓派等单板系统出现雷达无法启动,请检查是否是供电不足导致的问题。

5.2 rplidar_ros启动前需要设置端口权限

5.3 rplidar原始数据输出是非固定角度增量的输出形式,rplidar_ros输出是修正式固定角度增量输出的数据格式;

5.4 当前版本的rplidar_ros发出的激光数据中的ntenstity数据是fake的无效数据,不建议在实际中使用。

5.5 rplidar_ros 是360全角度输出的rplidar驱动,如有固定角度需求,请自行添加角度滤波的节点。

5.6 使用过程中如有问题,先自行检查端口权限,tf_tree和rqt_graph是否正常,如还是有问题,返回windows系统检查官方驱动是否有问题;

如上述自检均没发现问题,但仍运行不正常,可附上检查的信息以及难点一起发送至support@slamtec.com邮箱,我们将及时为各位小伙伴们解答!

机器人操作平台 (ROS)光学雷达(Lidar)同时定位和地图构建(SLAM)

原文链接:https://zhuanlan.zhihu.com/p/29246697

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容

  • 2017年无人驾驶还处于积极研发和普及期,民用的测试和技术探索也主要在小型汽车方面,各大巨头都将2020年作为一个...
    方弟阅读 7,077评论 1 16
  • ROS的全名是Robot Operating System,即机器人操作系统。虽然名字里有个“操作系统”,但它并不...
    秋纫阅读 5,387评论 3 20
  • 这一章要学习的是怎么控制一个差分轮机器人 1 单位和坐标系统 ROS使用的坐标系统是右手坐标系。 旋转依据的是右手...
    Savior2016阅读 5,769评论 0 5
  • 作者:刘少山,李文超,唐洁责编:何永灿,欢迎人工智能领域技术投稿、约稿、给文章纠错,请发送邮件至heyc@csdn...
    十人言末阅读 1,276评论 0 4
  • 你有一个人去电影院看电影过吗? 我以前总觉得一个人去电影院看电影是多么了不得的事情。我是喜欢看电影的,特别...
    南方树阅读 1,158评论 1 3