ROS rplidar_ros package使用相关说明

2023-05-16

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里利用已有package搭建系统实现基本功能你只需要关注好topic/service和TF frame是否协调起来

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

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

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


2、TF静态变换static_transform_publisher方式

在机器人启动的launch文件添加静态TF变换的信息即可,
<node name="base2laser" pkg="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是否正常。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS rplidar_ros package使用相关说明 的相关文章

  • 8.4 中的 tcl 8.6 封装

    在 Tcl Tk 8 6 中有一个称为笔记本的 Ttk 功能 我想将其实现到我的程序中 但是 我需要该包才能利用此功能 我必须使用 8 4 因为我们使用的 dll 之一仅与 8 4 版本兼容 我感到沮丧的根源 我已经下载了 Tcl 8 6
  • 安装 mysql-community-server 时出现 GPG 密钥问题

    安装时mysql 社区服务器出现以下错误 Command sudo yum install mysql community server Error warning var cache yum x86 64 2 mysql57 commun
  • “sys.path”报告的顺序是搜索包的顺序吗?

    Python 中条目出现的顺序是sys path对应于找到包的顺序 例如我有 gt gt gt from pprint import pprint gt gt gt pprint sys path Library Python 2 7 si
  • 如何在 Python 模块中正确使用相对或绝对导入? [复制]

    这个问题在这里已经有答案了 在 Python 中使用相对导入有一个缺点 您将无法再作为独立运行模块 因为您将收到异常 ValueError 尝试在非包中进行相对导入 Code test py just a sample file impor
  • 如何从里程计/tf数据获取投影矩阵?

    我想将视觉里程计的结果与 KITTI 数据集提供的事实进行比较 对于地面中的每一帧 我都有一个投影矩阵 例如 1 000000e 00 9 043683e 12 2 326809e 11 1 110223e 16 9 043683e 12
  • Java中如何在两个包之间共享包私有数据?

    我有 2 个 Java 包 A 和 B 假设包 B 中的某些类想要使用包 A 中的某些类 但是 当开发人员出现并开发包 C 或者说应用程序 C 时 他 她将使用我的包 B 但我do not希望他 她能够使用 B 正在使用的 A 中的类 也就
  • 构建预配置的 debian 包

    我正在尝试构建一个 debian 软件包 它会自动配置我的所有计算机以使用相同的配置文件和设置 例如 我尝试设置诸如 alter etc default hostapd conf 之类的内容 我目前正在通过使用 dh install 将文件
  • 无法在 Ubuntu 20.04 上安装 ROS Melodic

    我正在尝试使用这些命令在 Ubuntu 20 04 上安装 ROS Melodic sudo sh c echo deb http packages ros org ros ubuntu lsb release sc main gt etc
  • 防止安装具有特定包名的 Android 应用程序

    我正在使用 android studio 开发两个 Android 应用程序 出于某种原因 我希望其中一个应用程序可以安装在设备上 我想我应该检查第二个应用程序的包名称并阻止它安装 有什么办法可以做到这一点吗 谢谢 您无法阻止任何应用程序的
  • 跨包模块设置日志记录的有效方法

    我有一个包 其中包含多个组件 这些组件将从使用日志记录和输出有用信息中受益匪浅 我不想做的是为每个文件 设置 正确的日志记录 并在以下位置进行 import logging logging basicConfig level DEBUG m
  • Spyder 中的 ModuleNotFoundError

    我尝试在Spyder中导入biopython包并收到错误消息 ModuleNotFoundError No module named biopython 虽然安装了biopython 我还检查了 PYTHONPATH 在存储包的目录中设置了
  • 这是一个有效的 java 包名称吗? [复制]

    这个问题在这里已经有答案了 可能的重复 您在 Java 中的个人 爱好项目中使用什么包命名约定 https stackoverflow com questions 292169 what package naming convention
  • 如何在 log4j 中启用包级别日志记录

    谁能告诉我 log4j 中的包级别日志记录是什么 以及如何实现这一点 今天我的面试问题无法回答 即使我在谷歌中也没有找到好的解决方案 太感谢了 包级别日志记录是 log4j 的标准日志记录 使用 log4j 配置 您可以指定包和关联的级别
  • Matlab:在类中导入函数

    我在 Matlab 中有一个类文件 我使用包规范创建了 i 目录结构 MyPkg F1 F2 F3 fun m myc m 我的班级是myc并将其插入包装中MyPkg 一个功能fun保存在子包中F3在主要的一处 我想使用函数fun在我的课堂
  • “以下对象被‘package:xxx’屏蔽”是什么意思?

    当我加载包时 我收到一条消息 The following object is masked from package xxx 例如 如果我加载testthat http www rdocumentation org packages tes
  • 从需求文件中安装 pip 失败,但可以一一安装

    我正在尝试使用 requests txt 文件通过以下命令安装一堆 python 依赖项 pip install r requirements txt requirements txt 文件包含以下包 pep8 selenium param
  • 选择性罐包装

    我有一个小program jar 它使用了巨大的library jar 的一小部分 有没有一种工具可以将多个 jar 重新打包成一个 以便它可以独立运行并且尽可能小 Update 大小事项 有proguard http proguard s
  • Python从更高级别的包导入模块

    这是我的包层次结构 app init py Empty file server py global vars py handlers init py Empty file url1 init py Empty file app1 py ap
  • 导入错误:无法导入名称“IntEnum”

    我正在尝试安装upstox 这是一个用于连接市场数据的 Python API 我无法在Python3 5上安装它 我的配置是Python 3 5 3 v3 5 3 1880cb95a742 Jan 16 2017 15 51 26 MSC
  • Python包不安装子模块

    我在 dev 分支中创建了一个具有以下结构的包 在验证包安装正确之前不会合并到 main mypackage init py setup py requirements txt module py subpackage one init p

随机推荐

  • 常用Qt类的继承图

  • extern “C”{}的含义及解决的问题

    C 与C 43 43 程序连接问题 它们之间的连接问题主要是因为c c 43 43 编绎器对函数名译码的方式不能所引起的 xff0c 考虑下面两个函数 c int strlen char string c 43 43 int strlen
  • ROS2学习笔记(四)-- 用方向键控制小车行走

    简介 xff1a 在上一节的内容中 xff0c 我们通过ROS2的话题发布功能将小车实时视频信息发布了出来 xff0c 同时使用GUI工具进行查看 xff0c 在这一节内容中 xff0c 我们学习一下如何订阅话题并处理话题消息 xff0c
  • C++实现简单的HTTP客户端(阻塞方式)

    项目中用到的HTTP请求功能 xff0c 自己简单写了个客户端 xff0c 实现了POST方式 xff0c GET方式实现应该也很简单 xff08 空接口已经写好 xff1a 61 xff09 应该支持多线程 xff08 这个很重要 xff
  • WSAWaitForMultipleEvents()

    简述 xff1a 只要指定事件对象中的一个或全部处于有信号状态 xff0c 或者超时间隔到 xff0c 则返回 include lt winsock2 h gt DWORD WSAAPI WSAWaitForMultipleEvents D
  • WSAEnumNetworkEvents()

    WSAEnumNetworkEvents 简述 xff1a 检测所指定的套接口上网络事件的发生 include lt winsock2 h gt int WSAAPI WSAEnumNetworkEvents SOCKET s WSAEVE
  • WSASend()

    WSASend 简述 xff1a 在一个已连接的套接口上发送数据 include lt winsock2 h gt int WSAAPI WSASend SOCKET s LPWSABUF lpBuffers DWORD dwBufferC
  • 临界区

    本文假定您熟悉 Win32 C 43 43 和多线程处理 下载本文的代码 xff1a CriticalSections exe 415KB 摘要 临界区是一种防止多个线程同时执行一个特定代码节的机制 xff0c 这一主题并没有引起太多关注
  • glBegin()用法小结

    glBegin 用法小结 1 在glBegin 和glEnd 之间可调用的函数 函数 函数意义 glVertex 设置顶点坐标 glColor 设置当前颜色 glIndex 设置当前颜色表 glNormal 设置法向坐标 glEvalCoo
  • C++中的显式构造函数

    以两个C 43 43 的小例子来说明怎样通过使用显式构造函数来防止隐式转换 有如下一个简单的复数类 xff1a class ClxComplex public ClxComplex double dReal 61 0 0 double dI
  • 类中的static关键字

    面向对象的static关键字 xff08 类中的static关键字 xff09 1 静态数据成员 在类内数据成员的声明前加上关键字static xff0c 该数据成员就是类内的静态数据成员 先举一个静态数据成员的例子 可以看出 xff0c
  • VS2005 常用快捷键

    2007 04 10 15 32 VS2005 常用快捷键 仁者无敌 2006 08 02 20 20 16 Shift 43 Alt 43 Enter 切换全屏编辑 Ctrl 43 B T Ctrl 43 K K 切换书签开关 Ctrl
  • const

    面向对象是C 43 43 的重要特性 但是c 43 43 在c的基础上新增加的几点优化也是很耀眼的 就const直接可以取代c中的 define 以下几点很重要 学不好后果也也很严重 const 1 限定符声明变量只能被读 const in
  • ROS2学习笔记(五)-- ROS2命令行操作常用指令总结(一)

    简介 xff1a 在前面的章节中 xff0c 我们先简单学习了ROS2的话题发布和订阅 xff0c 两种操作都是通过python代码实现的 xff0c 而在实际应用过程中 xff0c 我们会经常用到命令行操作来辅助调试 xff0c 更进一步
  • Ubuntu16.04配置Carla第三方egg库

    背景 CARLA软件是英特尔公司主导的 xff0c 基于虚幻4游戏引擎 xff0c 用于自动驾驶仿真的一款开源仿真软件 xff0c 该软件可以模拟激光雷达 xff0c 摄像头等等自动驾驶中常用的传感器的行为以及获取传感器数据 xff0c 从
  • 串口通信校验方式(even,odd,space,mark)

    无校验 xff08 no parity xff09 奇校验 xff08 odd parity xff09 xff1a 如果字符数据位中 34 1 34 的数目是偶数 xff0c 校验位为 34 1 34 xff0c 如果 34 1 34 的
  • 更改Ubuntu默认python版本的两种方法

    更改Ubuntu默认python版本的两种方法 没找到原文地址 xff0c 作者写的很实用的方法 xff0c 赞一个 当你安装 Debian Linux 时 xff0c 安装过程有可能同时为你提供多个可用的 Python 版本 xff0c
  • Franka+Realsense D435i Ubuntu 20.04-easyHandeye 手眼标定

    使用Panda 43 realsense D435i 43 easyhandeye 43 ROS neotic 全流程记录 安装环节 安装ros安装libfranka安装moveit panda moveit config 安装 visp安
  • CMake教程Step2(添加库)

    CMake官方文档 参考官方cmake3 24教程翻译 https cmake org cmake help v3 24 guide tutorial index html https gitlab kitware com cmake cm
  • ROS rplidar_ros package使用相关说明

    rplidar ros wiki http wiki ros org rplidar ros SDK详解 xff0c 参考blog xff1a https blog csdn net qq 16775293 article details