ROS---激光雷达的使用

ROS—激光雷达的使用

  激光雷达是现今机器人尤其是无人车领域及最重要、最关键也是最常见的传感器之一,是机器人感知外界的一种重要手段。本文将介绍在ROS下使用激光雷达传感器,我们选用的激光雷达型号为思岚A1。
在这里插入图片描述
使用流程如下:

  1. 硬件准备;
  2. 软件安装;
  3. 启动并测试。

1 硬件准备

1.1 雷达连接上位机

当前直接连接Jetson nano即可,如果连接的是虚拟机,注意虚拟机的相关设置。
在这里插入图片描述

1.2 确认当前的 USB 转串口终端并修改权限

USB查看命令:

ll /dev/ttyUSB*

授权(将当前用户添加进dialout组):

sudo usermod -a -G dialout your_user_name

授权完需要重启,重启之后才可以生效。

2 软件安装

进入工作空间的src目录,下载相关雷达驱动包,下载命令如下:

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

在这里插入图片描述

返回工作空间,调用catkin_make编译,并source ./devel/setup.bash,为端口设置别名(将端口 ttyUSBX 映射到 rplidar):

cd src/rplidar_ros/scripts/
./create_udev_rules.sh

在这里插入图片描述

3 启动并测试

3.1 rplidar.launch文件准备

首先确认端口,编辑 rplidar_a1.launch 文件。

<launch>
  <node name="rplidarNode"          pkg="rplidar_ros"  type="rplidarNode" output="screen">
  <param name="serial_port"         type="string" value="/dev/rplidar"/>
  <param name="serial_baudrate"     type="int"    value="115200"/>
  <param name="frame_id"            type="string" value="laser"/>
  <param name="inverted"            type="bool"   value="false"/>
  <param name="angle_compensate"    type="bool"   value="true"/>
  </node>
</launch>

3.2 终端中执行 launch 文件

终端工作空间下输入命令:

roslaunch rplidar_ros rplidar_a1.launch

在这里插入图片描述

3.3 rviz中订阅雷达相关消息

启动 rviz,添加 LaserScan 插件:
在这里插入图片描述

注意: Fixed Frame 设置需要参考 rplidar.launch 中设置的 frame_id,Topic 一般设置为 /scan,Size 可以自由调整。

4 遇到的问题:ROS运行roscore没响应

  当我们配置好分布式框架后,想要启动roscore发现没有反应,这便需要我们重新进行IP的配置了。

单机模式设置:

使用gedit命令打开~/.bashrc,把分布式注释掉,并在后面追加:

export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311

在这里插入图片描述
最后我们还需要source一下,否则没用。

source ~/.bashrc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/311962.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何给字符串字段添加索引

MySQL是支持前缀索引的&#xff0c;可以定义字符串的一部分作为索引&#xff0c;如果创建索引的语句不指定前缀长度&#xff0c;那么索引就会包含整个字符串。 alter table SUser add index index1(email);alter table SUser add index index2(email(6)); 如上两个创建索引的语…

openGauss学习笔记-194 openGauss 数据库运维-常见故障定位案例-分析查询语句长时间运行的问题

文章目录 openGauss学习笔记-194 openGauss 数据库运维-常见故障定位案例-分析查询语句长时间运行的问题194.1 分析查询语句长时间运行的问题194.1.1 问题现象194.1.2 原因分析194.1.3 处理办法 openGauss学习笔记-194 openGauss 数据库运维-常见故障定位案例-分析查询语句长时…

【python入门】day24:千年虫问题、京东购物流程、根据星座测试性格特点

千年虫 yList[82,17,73,56,84,0,99] print(原列表&#xff1a;,yList) for index,val in enumerate(yList):yList[index]2000 if val0 else 1900 print(更改后列表&#xff1a;,yList) yList.sort() print(排序后列表&#xff1a;,yList)enumerate的作用&#xff1a;会把列表中…

[金融支付]EMV是什么?

文章目录 EMVCoEMVCo是谁&#xff1f;EMVCo是做什么的&#xff1f;EMVCo是如何运作的&#xff1f;EMVCo 是否强制要求 EMV 规范&#xff1f; EMVEMV的历史背景EMV技术的一些关键点 EMV TechnologiesEMV 认证EMV的三层认证 EMV规范在全球各地存在差异参考 EMVCo EMVCo是谁&…

Kafka的简介及架构

目录 消息队列 产生背景 消息队列介绍 常见的消息队列产品 应用场景 消息队列的消息模型 Kafka的基本介绍 简介 Kafka的架构 Kafka的使用 Kafka的shell命令 Kafka的Python API的操作 完成生产者代码 完成消费者代码 消息队列 产生背景 消息队列:指数据在一个容器…

C# 微信小程序获取群id

前提 有个需求&#xff0c;需要限制小程序的抽奖只能在某个群内&#xff0c;需要知道谁在群里面&#xff0c;但是微信并没有提供谁在群里面的方法&#xff0c;不过提供了获取群id的方法&#xff0c;这样加上限制分享就能保证群里的参加&#xff0c;即时分享出去了&#xff0c;…

Vue3 中使用 Vuex 和 Pinia 对比之 Vuex的用法

本文基于 Vue3 的 composition API 来展开 Vuex 和 Pinia 的用法比较 Pinia传送门 Vuex传送门 Vuex 状态管理的核心概念 状态- 驱动应用的数据源&#xff1b;视图 - 以声明方式将状态映射到视图&#xff1b;操作 - 响应在视图上的用户输入导致的状态变化 下面是源自Vuex 官…

每日一题——LeetCode1154.一年中的第几天

方法一 列举法&#xff1a; 用一个数组把每个月份的天数都列举出来 判断闰年&#xff0c;是闰年2月份有29天 循环对当前月份之前的月份天数求和 加上当天月份的天数 var dayOfYear function(date) {let year date.slice(0, 4);let month date.slice(5, 7);let day dat…

第十二章Session

第十二章Session 1.什么是Session2.Session的创建与获取3.session域中数据的存取4.Session超时的控制5.浏览器和session之间关联的技术内幕 1.什么是Session 注意&#xff1a;前面的Cookie是保存在客户端&#xff0c;而session是在服务端的 2.Session的创建与获取 这里Session…

2024几个测试接口的好工具,效率加倍~

作为一名后端程序员&#xff0c;一定要对自己写的接口负责&#xff0c;保证接口的正确和稳定性。因此&#xff0c;接口测试也是后端开发中的关键环节。 但我相信&#xff0c;很多朋友是懒得测试接口的&#xff0c;觉得这很麻烦。一般自己写的接口自己都不调用&#xff0c;而是…

RT-Thread入门笔记4-跑马灯线程实例

RT-Thread操作系统是基于线程调度的多任务系统。 线程状态切换 调度过程是一种完全抢占式的基于优先级的调度算法。 支持8/32/256优先级&#xff0c;其中0表示最高&#xff0c;7/31/255表示最低。最低优先级7/31/255优先级用于空闲线程。 支持以相同优先级运行的线程。 共享时…

如何理解线程池中的参数设计

如何理解线程池中的参数设计 你的线程池的参数怎么配置&#xff1f;线程数量设置多少合理&#xff1f;如何确定一个线程池中的人物已经完成了为什么不建议使用java自带的Executors创建线程池线程池里面的阻塞队列设置多少合理&#xff1f; 考察&#xff1a;了解你对技术的掌握…

springboot摄影跟拍预定管理系统源码和论文

首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计。本项…

如何通过 3 个步骤,管理项目可交付成果?

没有可交付成果&#xff0c;就没有项目。无论是构建软件、公寓、汽车还是其他东西&#xff0c;项目工作都可以定义为实现项目可交付成果。 项目管理中的可交付成果 项目可交付成果是项目要实现的最终结果。“可交付成果 "的内容没有限制&#xff0c;可以是实体产品&…

石大版跳一跳(UPC)

题目描述 还记得微信上那个风靡全国的跳一跳小程序吧&#xff0c;估计曾经也受到不少我校同学的喜爱吧。话说唐克也在玩这款游戏&#xff0c;不过&#xff0c;与一般玩家的境界不一样&#xff0c;唐克并不沉迷于游戏&#xff0c;唐克玩游戏是为了开发游戏&#xff0c;作为中国石…

tiktok_浅谈hook ios之发包x-ss-stub

frida-trace ios手机一部&#xff0c;需要越狱的电脑一台idacrackerXI 目标app&#xff1a; ipa 包&#xff0c;点击前往 密码&#xff1a;8urs 协议分析起始从抓包开始&#xff0c;个人习惯 一般安卓逆向可以直接搜关键词&#xff0c;但是ios 都在 Mach-O binary (reverse…

[JAVA数据结构] 认识 Iterable、Collection、List 的常见方法签名以及含义

目录 (一)Iterable 1. 介绍 2. 常见方法 (二)Collection 1. 介绍 2. 常见方法 (三) List 1. 介绍 2. 常见方法 总结 (一) Iterable 1. 介绍 Iterable接口是Java中的一个接口&#xff0c;它是集合框架中的根接口之一。Iterable接口表示实现了迭代功能&#xff0c;即可以通过迭…

JetCache源码解析——缓存处理

在Java技术体系中&#xff0c;如果想要在不改变已有代码逻辑的情况下&#xff0c;对已有的函数进行功能增强&#xff0c;一般可以使用两种方式&#xff0c;如AOP&#xff08;Aspect Oriented Programming&#xff09;&#xff0c;即面向切面编程&#xff0c;以及代理模式&#…

最详细手把手教你安装 Vivado2019.2

Vivado 是 FPGA 厂商赛灵思公司&#xff08;Xilinx&#xff09;于 2012 年起发布的集成设计环境。 Vivado 2019.2 是 2019 年 Xilinx 推出的 Vivado 最后一个版本&#xff0c;相对稳定&#xff0c;并推出了新式的嵌入式开发平台 Vitis。 软件下载 官网可下载各个版本百度网盘…

Android 通知简介

Android 通知简介 1. 基本通知 图1: 基本通知详情 小图标 : 必须提供,通过 setSmallIcon( ) 进行设置.应用名称 : 由系统提供.时间戳 : 由系统提供,也可隐藏时间.大图标(可选) : 可选内容(通常仅用于联系人照片,请勿将其用于应用图标),通过setLargeIcon( ) 进行设置.标题 : 可选…