RPLIDAR的坐标系问题

​本教程由 臭皮匠机器人 原创。
转载请注明出处。


RPLIDAR自身的坐标系

RPLIDAR给出来的数据是角度和距离,也就是极坐标系。

转换成直角坐标系的话应该照转换公式计算,假设r是距离,theta是角度,则有:

x = rcos(theta), y = rsin(theta)

RPLIDAR的角度是如图分布的:
在这里插入图片描述
按照上述公式计算出来的直角坐标系应该是如下样子的:
在这里插入图片描述

RPLIDAR在ROS中不一样的坐标系

可是如果你运行RPLIDAR在ros下的官方ros包,跑出来的效果会发现它的直角坐标系变成了这样(注意看x和y方向):
在这里插入图片描述
这跟RPLIDAR自身的直角坐标系显然不一样,这是怎么回事呢?

原来ROS的坐标系是规定好的,所有的雷达只要采用了其标准的LaserScan定义的数据格式,就应该要做成那样的坐标系。

为了满足ROS的坐标系要求,就必须做变换。仔细查看RPLIDAR的ROS驱动包就会找到如下代码:

scan_msg.angle_min =  M_PI - angle_min;

angle_min是起始角度,对RPLIDAR来说正常应该是0。

上面代码,先对起始角度取反,-90°即270°,-270°即90°,-180°还是相当于180°,则取反的效果是x轴改变了反向:
在这里插入图片描述
接着再加个pi(代码M_PI即pi),代码中是弧度,pi即180°,加了180度,相当于顺时针旋转了180°,则坐标轴变成了最终这个样子:
在这里插入图片描述
这个即是ROS中的样子啦。

本教程到此结束啦。臭皮匠机器人将出品更多针对RPLIDAR的教程给您,关注我们哦!


RPLIDAR系列教程:
RPLIDAR在ROS下快速上手教程
RPLIDAR十分钟极速入门教程
RPLIDAR最强参数详解

### TurtleBot3与RPLidar的使用教程及配置方法 #### 创建工作空间并初始化源码目录 为了开始设置TurtleBot3和RPLidar,在本地计算机上需建立两个独立的工作区用于存储不同的软件包。对于TurtleBot3而言,建议创建专门的工作空间来管理相关资源。 ```bash mkdir -p ~/turtlebot3_ws/src cd ~/turtlebot3_ws && catkin_make ``` 上述命令会构建一个新的Catkin工作空间,并准备好编译环境[^4]。 #### 安装必要的ROS包 针对基于Kinetic版本的操作系统,可以通过APT工具安装一系列预编译好的ROS包以支持TurtleBot的功能扩展: ```bash sudo apt-get update sudo apt-get install ros-kinetic-turtlebot* \ ros-kinetic-kobuki-ftdi \ ros-kinetic-ar-track-alvar-msgs \ ros-kinetic-rplidar-ros ``` 值得注意的是,`rplidar_ros`是特别为RPLidar传感器准备的支持库,它允许通过ROS接口访问激光雷达数据流[^3]。 #### 配置启动文件中的TF转换关系 当涉及到LIDAR设备的数据处理时,正确设定从基座到激光扫描仪之间的坐标系转换至关重要。默认提供的静态变换节点可能并不适用于所有型号的机器人平台;因此,应当仔细校准参数确保精度无误。 ```xml <node pkg="tf" type="static_transform_publisher" name="base_to_laser" args="0.0 0.0 0.18 0 0.0 0.0 base_link laser 100"/> ``` 此XML片段定义了一个固定不变的姿态变化,其中Z轴偏移量设定了0.18米作为典型值,但这取决于具体硬件设计而定。 #### 启动TurtleBot3核心功能和服务 完成前期准备工作之后,可以尝试运行官方提供的bringup脚本来激活整个系统的运作状态。这一步骤将会加载基本的服务集以及使能运动控制器等功能模块。 ```bash roslaunch turtlebot3_bringup turtlebot3_robot.launch ``` 该指令会在后台执行多项任务,包括但不限于网络通信服务、IMU读取、轮速编码器解析等操作[^1]。 #### 编译自定义修改后的代码 如果进行了任何定制化调整或者增加了新的依赖项,则需要重新触发一次完整的编译流程以便让更改生效。 ```bash cd ~/turtlebot_ws catkin_make ``` 以上过程能够确保所有的改动都被妥善集成到了最终生成的目标文件当中[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值