RPLIDAR在ROS下快速上手教程

2023-05-16

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


收到一个RPLidar后,干的第一件事应该是先让雷达跑起来,边做边学是最高效的。

之前写了一篇在windows底下的《RPLIDAR十分钟极速入门教程》,今天将教你在Linux下,用ROS快速上手RPLIDAR。

本教程分四步,RPLidar A1,A2,A3三种型号通用。

第1步,准备ROS环境

系统预备

如果是windows系统,那么可以在虚拟机里安装Ubuntu和ROS。

虚拟机软件可以使用免费的VirtualBox:
VirtualBox下载地址 https://www.virtualbox.org/wiki/Downloads 链接打开后下载windows hosts那一项。

Ubuntu的话请下载官方的干净的版本,安装稳定的16.04版本:
Ubuntu官方镜像 https://www.ubuntu.com/download/alternative-downloads 下载Ubuntu16.04 64bit版

关于如何在虚拟机里运行一个Ubuntu系统,已经有很多教程了,自行搜索即可。

如果你的系统是Linux,同时又是新手,那么仍然推荐安装Ubuntu 16.04 64bit。

安装ROS

记住,请按照如下的步骤一步步来,不宜跳步骤或自己改写法(老司机除外),否则基本会出错,更浪费时间。

首先确保你的系统目前可以正常上网。然后确保你的更新源是用的国内的服务器,要是国外的源,安装过程会奇慢无比。

如图操作,手动选择中国的服务器,我比较习惯选择阿里云的服务器。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之后需要输入密码,然后reload,会自动更新cache。


然后就可以开始安装ROS了,我们安装较稳定的kinetic版本。

先安装各种依赖:

sudo apt-get install -y python-rosinstall python-rosinstall-generator python-wstool build-essential

然后采用ustc的镜像,以下命令较长,中间是没有换行的,注意完整拷贝。

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

安装keys:

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

之后升级

sudo apt-get update

接着安装全部的包,省的以后麻烦:

sudo apt-get install -y ros-kinetic-desktop-full

上面的安装过程较长,耐心等待,完成后执行初始化rosdep:

sudo rosdep init
rosdep update

ROS环境搭建:

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

这样ROS包算是装好了,但是还需要建立ROS工作空间。

ROS工作空间建立

新建文件夹,比如叫catkin_ws,专门给ros项目用,src下放源文件

mkdir -p ~/catkin_ws/src

虽然src文件夹目前是空的,但是用ros专门的编译工具catkin_make也是可以编译的。
编译要到catkin_ws目录下。

cd ~/catkin_ws/   
catkin_make

等待catkin_make结束。此时工作空间建立了,但是系统还不知道我们的目录是在这里。

source devel/setup.bash

为了以后不要每次都输入上面这个source命令,把该命令写入.bashrc中,这样每次启动terminal就会自动source啦。

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

查看下ROS_PACKAGE_PATH环境变量,看你的工作空间是否正确包含进去了

echo $ROS_PACKAGE_PATH

一般结果显示如图就表明正常了。否则工作空间的过程再做一遍,保证正确。
在这里插入图片描述

第2步,准备RPLIDAR的ROS驱动包

先把RPLIDAR的ROS包放在正确的目录下,一般放到src文件夹下

cd ~/catkin_ws/src

将代码git下来

git clone https://github.com/Slamtec/rplidar_ros.git

然后回到catkin_ws目录编译

cd ..
catkin_make

编译完成后,将会生成对应的rplidar的ros node,这样驱动就算到位了。
在这里插入图片描述

第3步,安装雷达

拿到雷达后,至少会包括一个雷达和一个转接板,A2套装里自带USB线的。
在这里插入图片描述
A3跟A2的附件基本是一样的。A1套装是没有USB线的,需要自备。
在这里插入图片描述
自备的话,记住USB线接口是Micro-B的,这个样子:
在这里插入图片描述
把雷达和转接板接起来,转接板和USB线接起来,先不要将USB口插到电脑上。
在这里插入图片描述
在这里插入图片描述
注意,A3雷达需要将转接板上的小开关拨到256000一档,如图。
在这里插入图片描述

第4步,运行

雷达的接口在系统里会被当成一个串口,在Linux下显示为ttyUSBxx的一个设备,在电脑接上雷达之前,先看下系统里的情况。

ls -l /dev |grep ttyUSB

如果你的系统很干净,也没接别的设备,很可能输完如上命令后,什么也没显示。
如果显示了一些ttyUSB设备,记住他们。

然后接上雷达,如果是虚拟机,记得将雷达的USB接口映射到虚拟机那边去。
然后再看ttyUSB设备:

ls -l /dev |grep ttyUSB

雷达连接正常的话会显示新的设备。例如ttyUSB0。
在这里插入图片描述

记住这个设备号。如果你的设备号不是ttyUSB0的话,请打开Home目录下的,catkin_ws/src/rplidar_ros/launch文件夹,将rplidar.launch打开(A3雷达应打开rplidar_a3.launch文件),找到"<param name=“serial_port” …>"字样一行,将默认的ttyUSB0改为你的设备号

后面我们都假定设备号是ttyUSB0。你需要修改指令为你对应的设备号。

系统默认这个串口是只读的,但是驱动要给雷达发指令,所以需要增加写权限:

sudo chmod 666 /dev/ttyUSB0

如果是A1和A2雷达,直接运行:

roslaunch rplidar_ros view_rplidar.launch

A3的话直接运行:

roslaunch rplidar_ros view_rplidar_a3.launch

正常的话就能看到雷达扫描数据显示在rviz界面当中了:
在这里插入图片描述

可以像通常操作地图一样去操作雷达扫描的那个图,可以放大缩小,移动,调整3D视角等等。

要停止运行的话,在teminal里ctr+c即可了。

后记

对一个初学者来说,在ROS下运行RPLIDAR的难度是较高的,希望本教程能给你有益的帮助。

当然,ROS本身可学习的地方很多,本教程的目标在帮你快速上手,还有很多可以探索的内容。可以前往ROS官方教程,继续学习:
ROS官方教程 http://wiki.ros.org/cn/ROS/Tutorials#A.2BUXZbgw_ROS_.2BUf1lcF6TZVl6Cw-

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


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

RPLIDAR在ROS下快速上手教程 的相关文章

  • Google Protocol Buffer 的使用和原理

    转自 https www ibm com developerworks cn linux l cn gpb index html 简介 什么是 Google Protocol Buffer 假如您在网上搜索 应该会得到类似这样的文字介绍 G
  • kinova-jaco2使用Moveit!控制真实机械臂抓取固定点物体

    kinova jaco2使用Moveit 控制真实机械臂抓取固定点物体 一 机械臂坐标系 坐标系方向 位姿方向 轴的起始点 二 启动机械臂和Moveit 三 实现抓取 python代码 python文件建议直接用python启动 四 遇到的
  • 使用WTGAHRS2(JY-GPSIMU)在ROS中读取数据并发布话题

    目录 IMU简介 驱动程序 IMU串口通信协议 程序 效果 IMU简介 十轴惯性导航传感器WTGAHRS2传感器集成高精度的陀螺仪 加速度计 地磁场传感器 GPS 模块 采用高性能的微处理器和先进的动力学解算与卡尔曼动态滤波算法 能够快速求
  • ros+arduino学习(六):重构ros_lib库文件

    前言 ros lib是arduino程序和ros连接的库文件 通过使用这些库文件和相关函数 可以在arduino上通过编程使得arduino硬件开ros节点程序 这样arduino硬件就可以与上位机通过话题进行通讯 从而把arduino从传
  • 无人飞行器智能感知竞赛--模拟器安装

    开发环境 win11 wsl2 注意事项 请配合视频使用 如果不看视频会对下面的配置过程迷惑 因为一开始我是想安装在ubuntu18 04的 中途发现ubuntu18 04没有ros noetic 所以转入ubuntu20 04配置 视频链
  • 关于相机与激光雷达数据采集与标定

    最近在做一个关于车路协同的项目 需要做一个路侧系统 传感器有摄像头和激光雷达 相机和激光雷达联合标定费了老半天劲 在此记录一下 雷达时间戳不对 导致摄像头和雷达的数据无法对齐 解决办法 修改雷达驱动发布点云消息时的时间戳 相机内参标定可以使
  • Ubuntu16.04安装ROS Kinetic详细步骤

    文章目录 ROS安装 配置Ubuntu软件仓库 设置sources list 设置密钥 更新Debian软件包索引 安装ROS 初始化 rosdep 环境配置 构建工厂依赖 测试安装 开发环境 ROS安装 ROS Kinetic只支持Wil
  • 清华大学开源软件镜像站网址

    清华大学 TUNA 协会原名清华大学学生网管会 注册名清华大学学生网络与开源软件协会 是由清华大学网络技术和开源软件爱好者 技术宅组成的团体 现阶段向校内外提供开源软件镜像等服务 清华大学 TUNA 协会清华大学 TUNA 协会原名清华大学
  • rosprofiler 安装和使用

    rosprofiler wiki 页面 http wiki ros org rosprofiler rosprofiler package 下载rosprofiler和ros statistics msgs 放到工程目录下编译 https
  • ROS 第四天 ROS中的关键组件

    1 Launch文件 通过XML文件实现多节点的配置和启动 可自动启动ROS Master
  • Ubuntu16.04及ROS Kinetic环境下安装使用RealSense SR300

    Ubuntu16 04及ROS Kinetic环境下安装使用RealSense SR300 1 准备条件 需要安装Ubuntu16 04及ROS Kinetic 2 安装驱动 安装realsense的驱动流程可以根据Github上的官方推荐
  • 服务数据的定义和使用

    1 自定义数据服务 在包下创建srv文件夹 在文件夹下创建Person srv 在Person srv下输入以下内容 代表数据类型 string name uint8 age uint8 sex uint8 unknown 0 uint8
  • ROS1 ROS2学习

    ROS1 ROS2学习 安装 ROS ROS1 ROS2 命令行界面 ROS2 功能包相关指令 ROS 命令行工具 ROS1 CLI工具 ROS2 CLI工具 ROS 通信核心概念 节点 Node 节点相关的CLI 话题 Topic 编写发
  • 如何将曲面拟合到一组数据点并获得曲面方程

    乌班图 ROS 思维 Python程序 我正在尝试获取适合点云数据中的一组点的表面方程 数据来自激光雷达扫描仪 我在 rviz 中选择整个扫描的一部分 并获得该选择的坐标选定表面的图片 所选曲面并不总是如此线性 因为材质中可能存在轻微的曲线
  • 错误状态:平台不允许不安全的 HTTP:http://0.0.0.0:9090

    我正在尝试从我的 flutter 应用程序连接到 ws local host 9090 使用 rosbridge 运行 的 Ros WebSocket 服务 但我在 Flutter 中收到以下错误 错误状态 平台不允许不安全的 HTTP h
  • catkin_make 编译报错 Unable to find either executable ‘empy‘ or Python module ‘em‘...

    文章目录 写在前面 一 问题描述 二 解决方法 参考链接 写在前面 自己的测试环境 Ubuntu20 04 一 问题描述 自己安装完 anaconda 后 再次执行 catkin make 遇到如下问题 CMake Error at opt
  • 在 ROS - Python 中使用来自多个主题的数据

    我能够显示来自两个主题的数据 但无法在 ROS 中实时使用和计算这两个主题的数据 用 Python 代码编写 您有想法存储这些数据并实时计算吗 谢谢 usr bin env python import rospy import string
  • 无法在 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
  • 使用 CMake 链接 .s 文件

    我有一个我想使用的 c 函数 但它是用Intel编译器而不是gnu C编译器 我在用着cmake构建程序 我实际上正在使用ROS因此rosmake但基础是cmake所以我认为这更多是一个 cmake 问题而不是ROS问题 假设使用构建的文件
  • ROS中spin和rate.sleep的区别

    我是 ROS 新手 正在尝试了解这个强大的工具 我很困惑spin and rate sleep功能 谁能帮助我了解这两个功能之间的区别以及何时使用每个功能 ros spin and ros spinOnce 负责处理通信事件 例如到达的消息

随机推荐

  • sys.stderr.write(f“ERROR: {exc}”)

    https www cjavapy com article 1701
  • 为什么PBFT需要三阶段

    首先 xff0c 第一阶段是预提议 xff08 pre prepare xff09 xff0c 这一阶段的主要原因是使用领导可以降低通信复杂度 xff0c 但是我对其没了解 xff0c 就不瞎说了 接着是提议 xff08 prepare x
  • 文件的自定义包发送接收

    需求 对一个特定的文件进行分片发送 xff0c 构造数据包 xff0c 发送数据包 xff0c 接收数据包并提取有效数据 xff0c 对数据组合还原为原文件 设计 当前 xff0c 基于socket的网络编程已成为当今不可替代的编程方法 x
  • 阿里云服务器图形化界面

    https blog csdn net qq 43264202 article details 119578968
  • 安卓开放端口

    https blog csdn net weixin 39737831 article details 109965587
  • Ubuntu14.04 支持ESM

    https discourse ubuntu com t ubuntu advantage client 21788
  • 开启关闭ICMP

    echo request http www xoxxoo com index index article id 780 html redirect https blog csdn net weixin 39684454 article de
  • AD使用技巧

    AD快捷键 快捷键要处在英文模式的情况下才可以使用 xff1a AD测量快捷键 xff1a R AD对齐快捷键 xff1a A AD切换单位快捷键 xff1a Q AD改变栅格快捷键 xff1a G AD视图配置快捷键 xff1a L AD
  • 多传感器融合框架搭建

    架构 src include apps xff1a 节点文件 front end node cpp 前端节点data pretreat node cpp 数据预处理节点back end node cpp 后端节点loop closing n
  • 多传感器融合框架-ESKF

    架构 基本同图优化框架差不多 内容简述 数据预处理节点 订阅imu原始数据 xff0c gnss原始数据 xff0c 完成数据时间戳同步 点云畸变补偿发布如下消息 畸变补偿后的点云 synced cloudgnss里程计 synced gn
  • OpenCV笔记4.3

    C 43 43 读取目录下所有文件名称 1 包含头文件 96 span class token macro property span class token directive hash span span class token dir
  • 半小时内实现Esp32-Cam模型训练和图像识别

    Esp32 Cam图像识别 一 网页显示视频流1 Linux式例程2 MicroPython式例程步骤1 下载Thonny步骤2 烧录Esp32 Cam固件步骤3 运行相应代码 3 Arduino式例程步骤1 下载Arduino步骤2 安装
  • MANIFOLD 2-G开发 之 利用ROS话题编程实现UART1串口通讯

    目录 MANIFOLD 2 G开发笔记1 项目描述2 遇到的问题3 解决方案4 示例代码5 注意事项6 资源附件6 运行与调试 MANIFOLD 2 G开发笔记 本博客内容将记录MANIFOLD 2 G 开发过程中遇到的问题及解决方案 xf
  • ONOS源码笔记--机制

    app注册 private ApplicationId appId appId 61 coreService registerApplication 34 org onosproject fwd 34 注册应用 xff0c 一般在activ
  • git 本地分支与远程分支关联

    github上已经有master分支 和dev分支 在本地 git checkout b dev 新建并切换到本地dev分支 git pull origin dev 本地分支与远程分支相关联 github上没有dev分支 git check
  • 做设计师还是程序员?一张图你就明白!

    平时大家相安无事 xff0c 可一旦项目滑了水 栽了坑 二重奏就开始没完没了的唱起来了 请看下图 xff1a 你的桌子是有什么 小编反手一摸 xff0c 还好小编的头发还再 你头发呢 xff1f 相信这里有很多学习java的朋友 xff0c
  • 【ROS】动态链接库(.so文件)的生成和调用

    ROS 动态链接库 xff08 so文件 xff09 的生成和使用 引言 xff11 生成so文件 xff12 调用so文件 xff13 运行结果结语 引言 由于项目有涉及到源代码是否交付的选项 xff0c 想着如果不交付源代码 xff0c
  • 用TortoiseGit删除git仓库中的文件/文件夹

    用TortoiseGit删除git仓库中的文件 文件夹 点击删除后出现弹框 xff0c 点击删除 删除后会显示移除一个文件 xff1b 想要还原可以在当前文件夹中右键选择TortoiseGit gt 还原 xff08 revert xff0
  • 02-Jetson Xavier NX 训练自己的yolov4-tiny模型并利用TensorRT完成部署(Python API)

    记录原因 xff1a 因前面完成了yolov4 tiny源码的部署 xff0c 可以跑到50FPS 但那个跑的是别人的模型 xff0c 可以识别80类 xff0c 但是在特定的情况下比如识别螺丝螺帽 xff0c 只需要两种 xff0c 在训
  • RPLIDAR在ROS下快速上手教程

    本教程由 臭皮匠机器人 原创 转载请注明出处 收到一个RPLidar后 xff0c 干的第一件事应该是先让雷达跑起来 xff0c 边做边学是最高效的 之前写了一篇在windows底下的 RPLIDAR十分钟极速入门教程 xff0c 今天将教