《Ubuntu20.04环境下的ROS进阶学习6》

一、手持激光雷达建图

        在上次的学习中我们已经使用hector_Mapping在仿真环境下建图了,那么本节我们将拿出真实雷达做一次室内的建图。我们使用的是思岚的S2L激光雷达。

二、下载思岚的应用手册

        首先我们根据自己的激光雷达类型去到思岚官网下载相应的ROS包,这里我们使用的ROS1的noetic版本,对应的是ROS。https://www.slamtec.com/cn/Support#rplidar-s2

        接着我们会跳进github网站,根据第一节学习的内容下载并编译思岚的源代码即可。《Ubuntu20.04环境下的ROS进阶学习0》-CSDN博客

cd ~/catkin_ws/src

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

到这里我们就把思岚的源代码下载下来了。

三、编译并运行代码让激光雷达动起来

cd ~/catkin_ws

catkin_make

source devel/setup.bash  值得一提的是,这一步如果您按照了之前的文章来做,可以省略。(《Ubuntu20.04环境下的ROS学习笔记4》-CSDN博客)

到这里编译就完成了,接下来准备让激光雷达转起来吧!

连接上我们的激光雷达,将/dev/ttyUSB0口附加权限。

sudo chmod 666 /dev/ttyUSB0

roslaunch rplidar_ros view_rplidar_s2.launch

四、使用激光雷达跑hector_Mapping

        刚才我们已经启动了激光雷达,但是只是看到了其中的数据,但是并没有将数据用来建图,那么用上我们最熟悉的hector_Mapping算法来建个地图看看。

1、编写launch

cd ~/catkin_ws/src/learning_launch/launch/

touch hector_handtest.launch

编辑以下内容:

<launch><include file = "$(find rplidar_ros)/launch/view_rplidar_s2.launch"/><node pkg="hector_mapping" type="hector_mapping" name="hector_mapping" output="screen"><!-- Frame names --><param name="pub_map_odom_transform" value="true"/><param name="map_frame" value="map" /><param name="base_frame" value="base_link" /><param name="odom_frame" value="base_link" /><!-- Tf use --><param name="use_tf_scan_transformation" value="true"/><param name="use_tf_pose_start_estimate" value="false"/><!-- Map size / start point --><param name="map_resolution" value="0.05"/><param name="map_size" value="1024"/><param name="map_start_x" value="0.5"/><param name="map_start_y" value="0.5" /><param name="laser_z_min_value" value = "-1.0" /><param name="laser_z_max_value" value = "1.0" /><param name="map_multi_res_levels" value="2" /><param name="map_pub_period" value="2" /><param name="laser_min_dist" value="0.4" /><param name="laser_max_dist" value="5.5" /><param name="output_timing" value="false" /><param name="pub_map_scanmatch_transform" value="true" /><!--<param name="tf_map_scanmatch_transform_frame_name" value="scanmatcher_frame" />--><!-- Map update parameters --><param name="update_factor_free" value="0.4"/><param name="update_factor_occupied" value="0.7" />    <param name="map_update_distance_thresh" value="0.2"/><param name="map_update_angle_thresh" value="0.06" /><!-- Advertising config --> <param name="advertise_map_service" value="true"/><param name="scan_subscriber_queue_size" value="5"/><param name="scan_topic" value="scan"/>
</node><node pkg="tf" type="static_transform_publisher" name="base_to_laser_broadcaster" args="0 0 0 0 0 0 /base_link /laser 100"/><node pkg="rviz" type="rviz" name="rviz2" /></launch>

需要注意的是这里会打开两个rviz:

第一个是include file的时候思岚激光的启动文件带的,

第二个rviz是我们启动的,要看hector建图效果的,同时这里如果是第二次启动建议您保存一个rviz的配置,避免每次打开都要配置半天。

例如您可以将倒数第二句改为 <node pkg="rviz" type="rviz" name="rviz2" args = " -d $(find learning_launch)/rviz/hector_hand.rviz" /> 这里就是保存了一个叫做hector_hand.rviz的配置。

2、运行编写的launch文件

roslaunch learning_launch hector_handtest.launch

3、配置rviz并保存配置

a、Add一个laserScan并选择topic

b、Add一个Map并选择topic

这就是最终的样子,您可以将您的激光雷达拿起来在室内走走,值得一提的是,如果您只是手持效果应该不会很理想,特别是在转弯的时候,如果您能将它放在小车上,推着小车慢慢走似乎更有利于它的建图。

c、保存rviz配置

左上角的file选择save as将rviz的配置保存,方便下一次的开启,同时修改launch文件的倒数第二句话。 <node pkg="rviz" type="rviz" name="rviz2" args = " -d $(find learning_launch)/rviz/hector_hand.rviz" />

五、参考

思岚科技RPLIDAR 系列雷达 X ROS1使用教程(中英字幕)_哔哩哔哩_bilibili

基于hector算法的真实机器人建图与自主导航(二)——手持激光雷达建图-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

成都源聚达:抖音小店押金收费标准

在数字浪潮中&#xff0c;抖音小店如星辰般熠熠生辉&#xff0c;吸引了无数商家和创业者。然而&#xff0c;想要在这片星海中畅游&#xff0c;首先得了解其押金的收费标准。正如古人言&#xff1a;“无规矩不成方圆”&#xff0c;明确规则是成功的关键一步。 抖音小店的押金制度…

CSS-属性

&#x1f4da;详见 W3scholl&#xff0c;本篇只做快速思维索引。 CSS 背景 用于定义元素的背景效果。 background-colorbackground-imagebackground-positionbackground-repeatbackground-attachment background-color background-color 属性指定元素的背景色。 h1 {back…

mysql的安装和部署

##官网下载mysql 我下载的是一个mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz 可以通过xshell 或者xftp传送 xshell则是先下载一个lrzsz 执行以下的命令 yum install lrzsz -y #安装好我下面有个一键安装的脚本 #!/bin/bash#解决软件的依赖关系 yum install cmake ncurses…

Redis 客户端

Redis 客户端 客户端-服务器结构 Redis 同 Mysql 一样&#xff0c;也是一个客户端-服务器结构的程序&#xff0c;结构如下图&#xff1a; 注&#xff1a;Redis 客户端和服务器可以在同一个主机上&#xff0c;也可以在不同主机上 Redis 客户端的多种形态 自带的命令行客户端&…

通过 Cookie、Redis共享Session 和 Spring 拦截器技术,实现对用户登录状态的持有和清理(三)

本篇内容对应 “2.4 生成验证码” 小节 和 “4.7 优化登陆模块”小节 视频链接 1 Kaptcha介绍 Kaotcga是一个生成验证码的工具。 你的网站验证码是什么&#xff1f; 在我们这个牛客论坛项目&#xff0c;验证码分为两部分 给用户看的是图片&#xff0c;用户根据图片上显示的…

RTX RTOS 操作实例分析之---线程(thread)

0 Preface/Foreword 1 线程&#xff08;thread&#xff09; 1.1 线程定义 1.1.1 USE_BASIC_THREADS&#xff08;宏定义&#xff09; 经过以上步骤&#xff08;makefile包含&#xff09;&#xff0c;USE_BASIC_THREADS在编译阶段被定义到相应的模块中。 1.1.2 定义线程ID变量…

Mysql中的 IFNULL 函数的详解

Mysql中的 IFNULL 函数的详解 概念 在mysql中IFNULL() 函数用于判断第一个表达式是否为 NULL&#xff0c;如果第一个值不为NULL就执行第一个值。第一个值为 NULL 则返回第二个参数的值。 语法 IFNULL(a, b)Demo 举例说明 创建表 create table student_one( sno varchar(20)…

Three.js阴影贴图

生成阴影贴图的步骤如下&#xff1a; 从光位置视点&#xff08;阴影相机&#xff09;创建深度图。从相机的角度进行屏幕渲染在每个像素点&#xff0c;将阴影相机的MVP矩阵计算出的深度值与深度图值进行比较如果深度图值较低&#xff0c;则说明该像素点存在阴影 &#xff0c;因…

【前端Vue】社交信息头条项目完整笔记第3篇:三、个人中心,TabBar 处理【附代码文档】

社交媒体-信息头条项目完整开发笔记完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;一、项目初始化使用 Vue CLI 创建项目,加入 Git 版本管理,调整初始目录结构,导入图标素材,引入 Vant 组件库,移动端 REM 适配。二、登录注册准备,实现基本登录功能,登录状…

cesium entity默认的点击事件

一、单击事件 点击entity&#xff0c;屏幕出现一个绿色的框&#xff0c;不想显示这个绿色框有两个办法 1、在创建viewer的时候&#xff0c;设置selectionIndicator为false // 初始化地图容器viewer new Cesium.Viewer(cesiumContainer, {contextOptions: {webgl: {alpha: tru…

Linux 常用指令及其理论知识

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;http://t.csdnimg.cn/Tvyou 欢迎各位指教&#xff01;&#xff01;&#xff01; 目录 一、理论知识 二、基础指令 1、ls指令&#xff08;列出该目录下的所有子目录和文件&#xff09; 语法&#xff1a; …

学习vue3第十四节 Teleport 内置组件介绍

<Teleport></Teleport> 作用目的&#xff1a; 用于将指定的组件或者元素传送到指定的位置&#xff1b; 通常是自定义的全局通用弹窗&#xff0c;绑定到 body 上&#xff0c;而不是在当前元素上面&#xff1b; 使用方法&#xff1a; 接收两个参数 to: 要将目标传…

【热门话题】Stable Diffusion:本地部署教程

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Stable Diffusion&#xff1a;本地部署教程一、引言二、环境准备1. 硬件配置2. …

java爬虫入门程序

<!--爬虫仅支持1.8版本的jdk--> <!-- 爬虫需要的依赖--> <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.2</version> </dependency><!-- 爬虫需…

二分答案 蓝桥杯 2022 省A 青蛙过河

有些地方需要解释&#xff1a; 1.从学校到家和从家到学校&#xff0c;跳跃都是一样的&#xff0c;直接看作2*x次过河就可以。 2.对于一个跳跃能力 y&#xff0c;青蛙能跳过河 2x 次&#xff0c;当且仅当对于每个长度为 y 的区间&#xff0c;这个区间内 h 的和都大于等于…

NIO基础知识

在学习Netty之前先要学习一下NIO相关的知识&#xff0c;因为Netty是基于NIO搭建的一套网络编程框架。 一. NIO 基础 non-blocking io 非阻塞 IO 1. 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream&#xff0c;它就是读写数据的双向通道&#xff0c;可以从…

多态.Java

&#xff08;1&#xff09;什么是多态&#xff1f; 同类型的对象&#xff0c;表现出不同的形态。前者指父类&#xff0c;后者指不同的子类 说简单点&#xff0c;就是父类的同一种方法&#xff0c;可以在不同子类中表现出不同的状态&#xff0c;或者说在不同子类中可以实现不同…

python爬虫学习第十五天-------ajax的get和post请求

嗨嗨嗨&#xff01;兄弟姐妹大家好哇&#xff01;今天我们来学习ajax的get和post请求 一、了解ajax Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;是一种在 Web 开发中用于创建交互式网页应用程序的技术。通过 Ajax&#xff0c;网页可以在不重新加载整个页面…

期盼街子镇卫生院早打通“最后一公里”

“可以探索多种医联体合作模式&#xff0c;比如&#xff0c;大医院在基层医疗机构免费铺设医疗设备&#xff0c;收集罕见珍贵病例&#xff0c;或者由政府投入铺设设备&#xff0c;上下级医院合作分配酬劳&#xff0c;尤其对医生个体来说&#xff0c;医生很辛苦&#xff0c;他们…

2024.4.3-day08-CSS 盒子模型(溢出显示、伪元素)

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 作业 2024.4.3-学习笔记css溢出显示单行文本溢出显示省略号多行文本溢出显示省…