TurtleBot3使用课程-第二节a(北京智能佳)
目录
1.1.2 运行hlds_laser_publisher节点 2
1.1.3 在RViz中运行hlds_laser_publisher节点 3
2.1.1 Turtle Bot3支持各种类型的SLAM。 9

1.[第3类]LRF(LDS)传感器
在TurtleBot3中使用的LDS(LASER距离传感器)是一种传感器,它可以测量二维平面上的360度距离值,并为SLAM和导航提供必要的信息。 该LDS传感器通过USB电缆连接到RaspberryPI到USB2LDS板,但也可以通过UART接口直接连接到OpenCR。
由于传感器的性质,很难在强烈的阳光直射下使用传感器。 因此,该传感器适用于在亮度为10,000勒克斯或以下的室内空间工作的机器人。
TurtleBot3的LDS传感器可以以二进制包格式安装,也可以在下载源代码后构建。
1.1传感器包安装

安装驱动TurtleBot3的LDS传感器所需的驱动程序包。
1.1.1传感器端口访问设置

当使用USB将传感器与Linux连接到PC时,必须正确设置USB端口的权限以访问指定的端口。
上面的命令授予/dev/ttyUSB0端口的读写权限。
1.1.2运行hlds_laser_publisher节点


1.1.3在RViz中运行hlds_laser_publisher节点


1.2传感器源代码下载
支持下载的LDS-01的驱动程序可以在Windows、Linux和MacOS的开发环境中运行。
软件需求如下:
GCC(使用Linux和Mac OS时)、Min GW(使用Window时)Boost库(在v1.66.0上测试)
1.从下面的GitHub地址下载源代码。

或者,您可以通过单击绿色来下载源代码 在下面的网站
https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver
2.安装开发环境所必需的软件和库。 GCC(Linux,Mac OS)或Min
GW(Windows)
启动图书馆
1.2.1建筑资料来源守则
下面的命令使用Linux的makefile集合构建源代码。 对于Windows和MacOS,请适当修改Makefile。

1.2.2在CLI环境下运行
如果源代码成功构建,可以通过运行检查LDS传感器值的 

1.2.3 在GUI环境上运行
为了直观地检查LDS传感器的值,必须另外安装QtCreator和QtLibs。
Qt Creator(在V4.5.0上测试)
Qt Libs(在V5.10.上测试)
- 从下面的Qt站点安装开源版本。
2.运行Qt创建者。
3.打开 
(hls_lfcd_lds_driver/applications/lds_polar_graph/lds_polar_graph.pro)
4.检查源代码中连接到传感器的端口,如果分配到另一个端口,则更改口号。
5.新闻 来构建代码。
6.当构建成功完成后,按来运行程序

1.2.4运行在嵌入式董事会
LDS-01传感器可以在Open CR或Arduino板上操作。在这种情况下,需要一个液晶面板来可视化传感器数据。
LDS-01传感器的TX和RX电缆与预埋板的UART引脚兼容,可通过连接电源和TX、RX引脚与预埋板连接使用。请务必参考产品数据表,因为实际电缆的颜色可能与下面的图片不同。

1.2.4.1 从OpenCR导入LDS传感器
要从OpenCR板导入传感器值,需要将Arduino示例上传到OpenCR板。
1.在ArduinoIDE中,转到Tools>BoardsManager并搜索Open CR以安装库。
2.在工具>板下选择打开CR。
3.在“工具>端口”下选择连接到打开CR的端口。
4.从文件>示例中选择绘制LDS示例>打开CR>等>并上传到打开CR。
当示例成功上传时,传感器值将显示如下图所示。

2.SLAM
同时定位和映射(SLAM)是指通过从机器人上的传感器获取信息,探索未知区域并创建机器人探索位置的地图。 SLAM是无人驾驶汽车自主导航或自主驾驶不可或缺的重要技术。 用于获取外部信息的传感器包括可以测量距离或获取周围图像的传感器。
红外距离传感器(IR)、声波传感器(Sonar)和激光传感器(LRF)被广泛应用。 最近,图像分析算法的发展也增加了相机的使用。
为了预测机器人的位置,通过使用Dead Reckoning测量连接到机器人车轮上的编码器的值来计算行程距离(里程。 然而,由于车轮与地面之间的摩擦,存在误差。 为了减少实际机器人位置与预测机器人位置之间的误差,可以使用惯性测量传感器(IMU)获得的数据对位置进行校正)。
此外,卡尔曼滤波、马尔可夫定位、蒙特卡罗定位等。 是利用距离传感器的值来减小位置误差的一些方法。
在使用SLAM创建地图时,有一些事情需要记住。
当像大仓库或礼堂那样在传感器范围之外映射一个大面积时,映射将无法正常工作。 如果我们想象传感器的范围是我们手臂的长度,映射一个大面积就像试图用两只手臂找到当前的位置,你的眼睛闭在一个大礼堂的中间。
同样,绘制没有具体特征的走长廊也很困难。这就像在你闭着眼睛走路的时候,通过触摸墙壁来测量走廊的长度,在这种情况下,考虑在地图上防止对象或障碍物,而不是一个特定的模式或对称的形式。
常用的Gmapping和Cartography在生成地图的方式上略有不同。 直接发布地图的Gmapping不同,制图师发布子地图并收集这些子地图来创建一个完整的地图。 由于这个原因,制图师可以帮助创建一个更准确的地图时,映射大地图由较小的互联子地图。
2.1运行SLAM
1.[远程PC]运行roscore。

2.运行Turtle Bot3所需的基本包。

3.[远程PC]打开一个新的终端窗口并运行SLAM。 在下面的命令中,更改${tb3_model} 



2.1.1 Turtle Bot3支持各种类型的SLAM。
Turtle Bot3支持Gmapping和Cartography等几个SLAM,可以通过直接输入的参数值来选择 
例如,如果你想使用Google的制图器而不是gmap,你可以运行SLAM节点通过传递制图器作为SLAM_方法的参数值作为如下所示。



如果您想使用默认提供的Gmapping以外的SLAM,则需要安装相关的包,如下所示。
安装制图员:自2018年以来,最新版本的制图员(v1.0.0)尚未更新,在使用Turtlebot3包进行模拟时可能无法正常运行。 在模拟Turtlebot3的SLAM时使用Gmapping。
以下安装方法仅适用于ROS1动力学。

安装Hector Mapping

安装 Karto

安装 Frontier Exploration

当SLAM节点运行时,应用各种类型SLAM的可视化工具RViz可以单独执行,如下所示。 如果RViz已经在运行,程序可能会崩溃。

2.2运行远程控制节点
[远程PC]要用SLAM创建地图,机器人需要移动到地图的未探索区域。 为此,TurtleBot3可以通过运行下面的节点来远程控制,如下所示。
使用SLAM创建地图时,避免突然移动或方向变化有助于创建准确的地图。 通过将机器人移动到RViz地图中显示的未完成区域来完成地图。


2.3调整指南
映射可以设置几个参数来实现各种环境的优化性能。 映射可以在没有单独设置的情况下使用,并且经常在其中使用默认。有关可配置参数的列表请参阅ROSwiki上的Gmapping参数。
定义了以下参数

2.3.1最大Urange
此参数设置LDS传感器的最大距离。
2.3.2map_update_interval
更新地图的秒数越小,地图更新的频率就越高。 然而,地图计算需要更大的负荷。 把这个弄好
根据环境参数

2.3.3 最低得分
设置确定传感器扫描数据匹配测试成功或失败的最小得分值。 这可以减少机器人在大面积预期位置的误差。 如果参数设置得当,您将看到类似于下面所示的信息。

如果这个值太大,您将看到如下所示的警告。

2.3.4 线性更新
如果机器人转换的距离比这个值长,它将运行扫描过程。
2.3.5 角度更新
如果机器人的旋转超过这个值,它将运行扫描过程。 建议将此值设置为小于线性更新。
2. 4. 保存地图
[远程PC]地图完成后,运行map_saver节点保存创建的地图。 在RViz上完成的通过距离旅行的地图,TF,机器人在运动过程中的扫描数据可以保存为一个文件,下面的命令。
完成的地图分为两个文件;pgm是一个PortableGrayMap类型的图像文件,yaml是一个件,例如地图的分辨率。


2. 5. 地图
ROS中的地图主要使用二维占用网格地图(OGM)。 当“地图”被指定为
${map_name},map.pgm区分了机器人可以去的白色区域,机器人不能去的黑色区域(被识别为障碍),以及机器人还没有探索的灰色区域。 以这种方式生成的地图可以用于下一次导航。

下面的图片是一个使用制图师绘制大面积地图的例子。 大约花了一个小时,通过控制机器人的总距离350米来创建一个像下面的地图。

TurtleBot3使用课程-第二节a(北京智能佳)的更多相关文章
- TurtleBot3使用课程-第二节b(北京智能佳)
目录 1.导航 2 1.1 运行导航节点 3 1.1.1 [远程PC]运行roscore 3 1.1.2 [turtlebot3 SBC]运行提出turtlebot3 3 1.1.3[远程PC]运行导 ...
- TurtleBot3使用课程-第一节b(北京智能佳)
目录 1.模拟运行TurtleBot 2 1.1 ROS安装和设置2 1.1.1 turtlebot3 在Gazebo中模拟 3 1.1.1.1用于Gazebo的ROS包装 3 1.1.1.2 tur ...
- TurtleBot3使用课程-第一节a(北京智能佳)
目录 1.ROS设置(远程PC) 2 1.1 ROS安装和设置 2 1.1.1 设置source.list 2 1.1.2 键设置 2 1.1.3 ROS安装 2 1.1.4安装包构建的依赖关系 2 ...
- android内部培训视频_第二节 布局基础
第二节:布局入门 一.线性布局 需要掌握的属性: 1.orientation:排列方式 vertical:垂直 Horizontal:水平 2.weight:水平布局的权重 3.gravity:子控件 ...
- python课程第二周重点记录
python课程第二周重点记录 1.元组的元素不可被修改,元组的元素的元素可以被修改(字典在元组中,字典的值可以被修改) 2.个人感觉方便做加密解密 3.一些方法的使用 sb = "name ...
- seajs第二节,seajs各模块依赖关系
index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...
- 学习javascript基础知识系列第二节 - this用法
通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...
- VUE2.0实现购物车和地址选配功能学习第二节
第二节 创建VUE实例 购物车项目计划: 1.创建一个vue实例 2.通过v-for指令渲染产品数据 3.使用filter对金额和图片进行格式化 4.使用v-on实现产品金额动态计算 5.综合演示 ① ...
- 逆向课程第二讲,寻找main入口点
逆向课程第二讲,寻找main入口点 一丶识别各个程序的入口点 入门知识,识别各个应用程序的入口点 (举例识别VC 编译器生成,以及VS编译生成的Debug版本以及Release版本) 1.识别VC6. ...
随机推荐
- 第8.32节 Python中重写__delattr__方法捕获属性删除
一. 引言 上节介绍了__delattr__方法在Python清除实例属性时被捕获执行,本节结合例子介绍重写__delattr__方法,并说明__delattr__方法执行的触发逻辑. 二. 重写__ ...
- PyQt(Python+Qt)学习随笔:QTreeView树形视图的rootIsDecorated属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.属性说明 QTreeView树形视图的rootIsDecorated属性用于控制是否展示对顶层项 ...
- PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的orientation和centerButtons属性
orientation属性 orientation属性表示QDialogButtonBox的方向,缺省情况下,方向为水平方向(值为Qt.Horizontal),表示QDialogButtonBox中的 ...
- iOS崩溃日志 如何看
日志主要分为六个部分:进程信息.基本信息.异常信息.线程回溯.线程状态和二进制映像. 我们在进行iPhone应用测试时必然会在"隐私"中找到不少应用的崩溃日志,但是不会阅读对于很多 ...
- 小心使用 Task.Run 续篇
关于前两天发布的文章:为什么要小心使用 Task.Run,对文中演示的示例到底会不会导致内存泄露,给很多人带来了疑惑.这点我必须向大家道歉,是我对导致内存泄漏的原因没描述和解释清楚,也没用实际的示例证 ...
- this.$options.data()实战之重置data
刚刚看到这个方法学习了一下,然后想到正在开发的项目有一个需要重置data的操作,正好拿来使用一下,节省了好多代码,美滋滋...
- Markdown 公式指导手册
本文为 Markdown 环境下的常用语法指引.Typora 编辑阅读器支持 \(\LaTeX\) 编辑显示支持,例如:\(\sum_{i=1}^n a_i=0\),访问 MathJax 以参考更多使 ...
- Acwing 734. 能量石
贪心(微扰) + dp 这道题还是比较难的,前置知识: 贪心的微扰(邻项交换)证法,例题:国王游戏,耍杂技的牛 01背包 算法1:暴力\(O(T * n! * n)\) 可以\(dfs\)全排列枚举所 ...
- 「 洛谷 」P2768 珍珠项链
珍珠项链 题目限制 内存限制:125.00MB 时间限制:1.00s 标准输入输出 题目知识点 动态规划 \(dp\) 矩阵 矩阵乘法 矩阵加速 矩阵快速幂 题目来源 「 洛谷 」P2768 珍珠项链 ...
- hive实例的使用
一.hive用本地文件进行词频统计 1.准备本地txt文件 2.启动hadoop,启动hive 3.创建数据库,创建文本表 4.映射本地文件的数据到文本 5.hql语句进行词频统计交将结果保存到结果表 ...