ROS机器人应用(6)—— 激光雷达建图和导航

2023-05-16

文章目录

  • 一、激光雷达建图
  • 二、建图算法切换及其优缺点
  • 三、自主导航
  • 四、多点导航

一、激光雷达建图

  1. 小车开机,连接WIFI,密码:dongguan。
  2. 启动激光建图(服务端)
ssh -Y wheeltec@192.168.0.100
roslaunch turn_on_wheeltec_robot mapping.launch 

在这里插入图片描述

  1. 查看建图效果(客户端)
rviz

可以使用键盘控制、APP遥控、PS2遥控、航模遥控进行控制小车运动。
在这里插入图片描述

在这里插入图片描述

  1. 建图完成,保存地图 (服务端)
    保存方法1:
# 一键保存
roslaunch turn_on_wheeltec_robot map_saver.launch 

在这里插入图片描述

保存方法2:

# 打开地图路径
cd /home/wheeltec/wheeltec_robot/src/turn_on_wheeltec_robot/map
# 保存地图
rosrun map_server map_saver -f 地图名
  1. 文件挂载,查看地图
# 文件挂载
sudo mount -t nfs 192.168.0.100:/home/wheeltec/wheeltec_robot /mnt

在这里插入图片描述

注:地图文件可以使用PhotoShop进行编辑

建图
mapping.launch
小车初始化节点:turn_on_wheeltec_robot.launch
雷达节点:rplidar.launch
gmapping建图节点:algorithm_gmapping.launch

二、建图算法切换及其优缺点

  • 连接小车wifi

  • 文件挂载后,建图算法的切换

sudo mount -t nfs 192.168.0.100:/home/wheeltec/wheeltec_robot /mnt

mapping.launch 修改mapping_model 的default值
在这里插入图片描述

  • 并进行SSH登录, 并启动建图算法。
ssh -Y wheeltec@192.168.0.100
  • gmapping
    目前比较常用的建图算法。构建大地图时所需内存和计算量都会增加,因此
    不适合构建大场景地图。因为没有回环检测,所以在回环闭合时可能会造成地图错位。
    在这里插入图片描述
  • hector
    不需要里程计,人抱着小车走也可以建图。效果不如gmapping,适合因条
    件限制没有里程计的机器人。
    在这里插入图片描述

建图时转向速度尽量缓慢,建议0.1rad/s 以下。

  • cartographer
    直接订阅odom,不需要robot_pose_ekf。其tf 发布频率200HZ 大于
    robot_pose_ekf 的20HZ,robot_pose_ekf 发布的tf 会被覆盖。
    在这里插入图片描述
  • karto
    与gmapping 差不多,更适合用于创建大地图,同时其地图刷新比较慢。
    在这里插入图片描述

三、自主导航

1.小车开机,连接WIFI,密码:dongguan

2.SSH远程登录:ssh wheeltec@192.168.0.100,密码:dongguan

3.把小车放置在地图起点/rviz手动设置起点

4.运行导航(服务端):
roslaunch turn_on_wheeltec_robot navigation.launch

5.运行rviz(客户端):
rviz

6.使用rviz的2DNavGoal功能

小车不运动同时没有路径规划显示:检查.bashrc文件ip地址()


额外补充和launch文件讲解

1.地图文件

2.手动发布目标点
rostopic pub /move_base_simple/goal
四元数
x = ax * sin(theta/2)
y = ay * sin(theta/2)
z = 1* sin(180°/2) =1
w = cos(180°/2) =0

3.navigation.launch


整体导航工作原理与参数配置讲解
navigation_stack

四、多点导航

1.小车开机,连接WIFI,密码:dongguan

2.SSH远程登录:ssh wheeltec@192.168.0.100,密码:dongguan

3.把小车放置在地图起点或者rviz手动设置起点

4.运行导航(服务端):
roslaunch turn_on_wheeltec_robot navigation.launch

5.运行rviz(客户端):
rviz

6.rviz添加path_ponit(MarkerArray数据格式)话题订阅,进行可视化

7.使用rviz的Publish Point功能

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

ROS机器人应用(6)—— 激光雷达建图和导航 的相关文章

随机推荐

  • Linux下vscode无法查看定义?

    今天要用到vscode查到c 43 43 程序 但是发现vscode无法查看程序的定义 于是找了一下解决方法 vscode无法转到定义可能是因为没有安装插件 由于我需要使用C 43 43 所以我这里安装的是C 43 43 插件 第一步 第二
  • 冒泡排序的实现(基于顺序表)

    对于冒泡排序的含义以及图示表示 这里就不再赘述 这篇博客已经说的很明白了 添加链接描述 于是就用代码实现了一下基于顺序表的冒泡排序 因为一直看的时大话数据结构这本书 于是把上面介绍的三种实现方法都在代码中实现一下 具体实现与书中有一些出入
  • ambiguating new declaration of 问题的解决

    今天在运行代码的时候 一直在报这样的错误 ambiguating new declaration of int NewPartition seqlist int int 查看了许久 原来是头文件中的声明类型与函数实现的声明类型不一致造成的
  • opencv中的MatConstIterator,NAryMatIterator迭代器的使用

    第一个迭代器 MatConstIterator迭代器 使用迭代器计算一个三通道三维数组中 34 最长元素 34 这个代码实现过程中 照着书中的代码抄下来一直报错 后来在查阅代码的时候 发现了问题所在 具体已经在代码中标明了 include
  • 用python实现查询天气的功能

    附上代码 import urllib request import gzip import json print 39 天气查询 39 def get weather data city name 61 input 39 请输入要查询的城市
  • 1.Docker 安装

    安装 wget 命令 yum install wget 安装docker wget q O https get docker com sh O 下载并以指定的文件名保存 以 39 39 作为file参数 xff0c 那么数据将会被打印到标准
  • linux下sudo apt-get update 报Err http://security.ubuntu.com precise-security InRelease 等

    今天在进行linux更新的时候一直报错 尝试了很多办法都不行 于是找到一个方法 切实可行 以根用户运行 cd var lib apt lists rm rm var cache apt archives lock rm var lib dp
  • HTTP Authentication之Basic认证、Digest认证

    本文为博主原创 xff0c 未经许可严禁转载 本文链接 xff1a https blog csdn net zyooooxie article details 109691608 前面说到 Fiddler 的QuickExec Filter
  • Qt学习笔记(5) — Qt 类库【C++】

    目录 一 Qt核心特点1 元对象系统2 信号与槽的关联方式 二 Qt全局定义 xff08 常用头文件 xff09 1 lt QtGlobal gt 头文件1 xff09 数据类型定义2 xff09 函数3 xff09 宏定义 三 容器类1
  • 【C++】STL学习小总结

    经过自学以及查找资料汇总的一些记录 STL概述 长久以来 xff0c 软件界一直希望建立一种可重复利用的东西 xff0c 以及一种得以制造出 可重复运用的东西 的方法 xff0c 从函数 functions xff0c 类别 classes
  • ssh连接云服务器失败,能ping通但是连接不上

    环境 xff1a 腾讯云服务器 远程工具 xff1a xshell 7 问题描述 使用xshell远程工具时 xff0c 输入云服务器地址 xff0c 输入用户名密码之后显示 Connection established To escape
  • cheom 修改文件权限

    Chmod命令主要用于修改 设置文件权限 chmod 修改文件权限主要有两种方式 xff1a 字母法与数字法 1 字母法 xff1a chmod u g o a 43 61 r w x 文件名 以上是chmod的用法 xff0c 每个括号是
  • 通俗易懂的布谷鸟算法与莱维飞行,(附求解函数最小值matlab源码)

    1 从布谷鸟的育雏到布谷鸟算法2 布谷鸟算法3 萊维飞行与公式 1 的深层含义4 附 xff1a CS算法求解函数最小值代码5 源码下载6 参考文献 1 从布谷鸟的育雏到布谷鸟算法 布谷鸟不会做窝 xff0c 也不会育雏 xff0c 在春末
  • kubernetes容器网络接口(CNI) midonet网络插件的设计与实现

    相关原理概述 先来讲讲什么是CNI CNI xff08 容器网络接口 xff09 是一种操作容器网络规范 xff0c 包含方法规范 xff0c 参数规范等 CNI只关心容器的网络连接 xff0c 在容器创建时分配网络资源 xff0c 并在删
  • 驱动篇:字符设备驱动综合实例(一)(摘录)

    驱动篇 xff1a 字符设备驱动综合实例 xff08 一 xff09 1 按键的设备驱动 在嵌入式系统中 按键的硬件原理比较简单 通过一个上拉电阻将处理器的外部中断 或 GPIO 引脚拉高 电阻的另一端连接按钮并接地即可实现 如图 12 1
  • 安卓学习日记(一):了解安卓架构(linux内核层、系统运行库层、应用框架层、应用层)

    首先为了理解安卓系统是怎么工作的 xff0c 就先来看一下android的系统架构 xff0c 其架构大至可以分为四层 xff1a linux内核层 系统运行库层 应用框架层和应用层 xff0c 那就先说说这几层 1 linux内核层 xf
  • 解决每次上线更新文件需要手动清除缓存的问题-------js 、css自动清除浏览器缓存方法

    说明 1 分享页更新后 xff0c 浏览器总是有缓存 xff0c 须手动清理才能加载修改后的CSS和JS xff0c 故在加载地址后动态添加一个随机数 xff08 或时间戳 xff09 来确保每次加载的文件都不同来消除缓存 2 在加载js文
  • 目标检测——Yolo系列(YOLOv1/2/v3/4/5/x/6/7/8)

    文章目录 目标检测概述目标检测概述基础知识和术语 YOLOv1YOLOv2YOLOv3YOLOv4YOLOv5YOLOxYOLOv6YOLOv7YOLOv8对比 目标检测概述 目标检测概述 什么是目标检测 xff1f 滑动窗口 xff08
  • ROS机器人应用(1)—— 搭建ROS虚拟机环境

    文章目录 搭建ROS虚拟机环境1 连接小车wifi2 下载vmware虚拟机3 下载ubuntu系统镜像4 远程登录5 常见问题6 简单操作演示 搭建ROS虚拟机环境 1 连接小车wifi 小车开机后会发出wifi xff0c 我们可以使用
  • ROS机器人应用(6)—— 激光雷达建图和导航

    文章目录 一 激光雷达建图二 建图算法切换及其优缺点三 自主导航四 多点导航 一 激光雷达建图 小车开机 xff0c 连接WIFI xff0c 密码 xff1a dongguan 启动激光建图 xff08 服务端 xff09 span cl