ROS rplidar_ros package使用相关说明

rplidar_ros

wiki:http://wiki.ros.org/rplidar_ros

SDK详解 ,参考blog :https://blog.csdn.net/qq_16775293/article/details/78127451


rplidar_ros的在ROS里面的通讯接口,主要有1个话题(topic) /scan和2个服务(service)stop_motor和start_motor.。/scan主要用于向外部发送雷达数距消息(message),消息格式采用的是sensor_msgs/LaserScan。

stop_motor和start_motor主要是用于客户端调用服务器端关闭和启动雷达的接口,使系统可以依据需要选择关闭和开启雷达。

rplidar_ros给出的rplidar.launch,实际使用中依据具体的使用往往关注的参数有

端口号(serial_port)

坐标系名称(frame_id)

正反装(inverted)

rplidar是按照顺时针旋转,SDK数据输出是带距离和角度信息的左手系数据,rplidar_ros输出已经将其转化为右手坐标系输出。

ROS rplidar_ros package使用相关说明_第1张图片

在ROS里利用已有package搭建系统实现基本功能你只需要关注好topic/service和TF frame是否协调起来

TF是ROS里面主要的概念,它维护着每个数据对应坐标系之间的位姿变换关系。要搭建带rplidar的机器人ROS系统,
你就需要依据实际安装信息统一好rplidar坐标系与机器人本体base坐标系的变换关系。实现这种变换关系主要有三种:

1、通过模型的URDF文件的方式:

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

ROS rplidar_ros package使用相关说明_第2张图片

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、通过rqt/tf_echo查看TF tree的构建情况

利用rplidar 建图,当前开源的2D激光雷达slam的ROS package:

gmapping,Hector, karto    ,cartographer

其他:

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

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

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

使用过程中如有问题,先自行检查端口权限,tf_tree和rqt_graph是否正常。


你可能感兴趣的:(ROS)