Gmapping建图

Gmapping建图Gmapping实战前文中,我们总共做了以下几件事:完成了基于ros小车框架安装。完成了小车下位机的安装。完成了上位机安装,并连接到ros系统,可以发布odom话题,使用键盘控制gmapping数据集测试。激光雷达选型与安装。接下来我们来完成使用gmapping的建图与导航工作。首先下载安装激光雷达的驱动程序,当然只针对我买的这一款,不是做广告,这家的技术售后简直就是垃圾,唯一…

大家好,又见面了,我是你们的朋友全栈君。

Gmapping实战

前文中,我们总共做了以下几件事:

  1. 完成了基于ros小车框架安装。
  2. 完成了小车下位机的安装。
  3. 完成了上位机安装,并连接到ros系统,可以发布odom话题,使用键盘控制
  4. gmapping数据集测试。
  5. 激光雷达选型与安装。

接下来我们来完成使用gmapping的建图与导航工作。

首先下载安装激光雷达的驱动程序,当然只针对我买的这一款,不是做广告,这家的技术售后简直就是垃圾,唯一优点就是便宜,程序是有问题的,建议直接下载我改过的,原版程序不会发布/tf话题。
在这里插入图片描述

我改过的驱动程序

使用程序时建议看一下激光雷达连接的那个串口,在launch文件改为对应串口,记得开放串口权限。

接下来就是一下步骤:

roscore

新开终端:

roslaunch ros_arduino_python arduino.launch

这个是小车的节点。小车坐标系是base_link,可以看我之前的博客修改。

新开终端:

rosrun gmapping slam_gmapping

新开终端:
gmapping的节点。

roslaunch delta_2b_lidar delta_2b_lidar.launch

激光雷达的节点。

新开终端:

rosrun rqt_tf_tree rqt_tf_tree

在这里插入图片描述
我们可以看到,从map到base的坐标转换是完整的。

新终端:

rviz rviz

添加话题/map,可以看到:
在这里插入图片描述
这是我测试时拍的,为了测试是否正常工作,我把小车拎起来了,所以图就成了这个鬼样子。

总结

目前这个基于gmapping的小车已经基本完成,这一系列博客介绍了这一小车的完成过程,代码层面我基本上都是自己改过的,没必要在这种简要说明中详细分析。如有兴趣可以按照这一系列博客完成自己的小车。安装步骤比较详细,需要写的代码博客也给出了下载链接(小车还有进一步的开发,代码暂时先不上github了,可以先从博客的百度链接下载),希望大家能以此对ros机器人操作系统产生兴趣。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148947.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月25日 下午10:36
下一篇 2022年6月25日 下午10:36


相关推荐

  • 外汇平台搭建,外汇交易社区,外汇支付通道,通过区块链如何改变外汇「建议收藏」

    外汇平台搭建,外汇交易社区,外汇支付通道,通过区块链如何改变外汇「建议收藏」在过去几年中,由区块链驱动的比特币对全球财务,特别是外汇行业产生了重大影响。这种创新的加密货币在全球范围内大肆挥霍,并成为头条新闻,很快就能感受到它的存在。虽然比特币很可能继续对外汇行业产生影响,但它实际上是锁定链,这种货币背后的技术,将对外汇行业产生更显着和不可逆转的影响。外汇产业的当前景观外汇市场是全球最大,最具流动性的市场。该行业每周五天,每天24小时开放,主要位于伦敦,而纽约市的每日…

    2025年10月24日
    4
  • LinkedList基本用法「建议收藏」

    LinkedList基本用法「建议收藏」LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用.LinkedList的构造函数如下1.publicLinkedList(): ——生成空的链表2.publicLinkedList(Collectioncol): 复制构造函数1、获取链表的第一个和最后一个元素[java] viewplaincopy

    2022年6月17日
    22
  • C++基础篇 — vector的resize函数和reserve函数

    对于C++的vector容器模板类,存在size和capacity这样两个概念,可以分别通过vector的size()和capacity()方法获得该vector当前的size和capacity值。相应的,vector提供了两个方法来分别对size和capacity进行操作,它们就是resize方法和reserve方法。首先,对于size和capacity,这是两个比较容易混淆的概念。

    2022年4月7日
    98
  • java中scanner意思_Java中的Scanner

    java中scanner意思_Java中的ScannerScanner对象是一个简单的文本扫描仪,**可以使用正则解析文本字符串**。我们使用Scanner最多的地方可能就是读取键盘输入,但是Scanner的功能远比此强大。对于Scanner的进一步理解还是在LeetCode的一道算法题上,题目大意是输入一组分式加法构成的字符串,要求输出分式相加的结果。首先是输入”-2/3+2/3-4/5″,接着求其和。首先第一步需要解析字符串为所需的数据,我使用了s…

    2022年7月8日
    33
  • 宝马宣布与Mobileye合作,想让每辆车都成为行走的数据源

    宝马宣布与Mobileye合作,想让每辆车都成为行走的数据源

    2022年3月13日
    43
  • 父游标、子游标及共享游标

    游标是数据库领域较为复杂的一个概念,因为游标包含了sharedcursor和sessioncursor。两者有其不同的概念,也有不同的表现形式。共享游标的概念易于与SQL语句中定义的游标相混淆。本

    2021年12月26日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号