【ROS Rikirobot基础-使用系列 第四章节】Rikirobot小车使用激光雷达进行自动导航

2023-05-16

利用激光雷达进行自动导航

这里我们教大家使用的是利用激光雷达导航,关于深度摄像头的导航我们后面会教大家使用
1、上电启动小车,主控端执行启动小车的命令:

roslaunch rikirobot bringup.launch

2、主控端启动导航的命令,等待启动完成:

roslaunch rikirobot navigate.launch
这里写图片描述

3、在远程端打开可视频工具rviz,在远程端运行下面命令,然后把出现的窗口最大化,然后左上角,有一个File->OpenConfig,然后到catkin_ws/src/rikirobot_project/rikirobot/rviz这个路径下面打开navigate.rviz,等待窗口把数据加载完成,导航的第一步就是要初始化位姿,用“2D Pose Estimate”,在地图的可视区域拖一下,记住拖一下不是随便拖,是你机器人的实际位置,在地图上显示的这个区域拖一下,那个箭头带表方向,这个也很重要,这个意思就是你告诉机器人,你在地图上的定位是错误的,你应该在我给定的这个位置(tip:如果不想每次给定位姿,你可以在建图时,机器人的起始位置是在那里,你导航时一样,把机器人放到这个位置,就不用估计位姿),位姿校正完成后,我们就用“2D Nav Goal”发送目标,这个作用是告诉你,你现在去我指定的地方,也是在地图的可视化区域拖一下,然后小车此时自动规化路径,自己避开地图上的障碍物,到达目的地,而且是可以动态避障的,你在一定距离内出现在地图区域,它也可以重新规化路径,绕过你这个动态的障碍物:

rosrun rviz rviz
这里写图片描述

关于导航中出现的问题

1、为什么导航时遇到障碍物要转几次才能绕过去呢?
因为算法在遇到障碍物后,需求重新计算后,通过旋转重新规化路径,才能完成。当然如果你用好的主控,路导航算法,通过参数上的调整,可以让车提前感知到后,提前计算,提前规化。
2、为什么我的车在过道或者障碍物前不停的转,像傻掉一样了?
这是因为你的动态区域就是障碍物的缓冲区域,如上图的蓝色区域,这种情况是在告诉你,你现在的过道或者障碍已经小于我设定值,我过不去了,但我通过不停的旋转也没有找到第二条可以到达你给定的位置,通过软件上调整动态区域的参数来优化上面问题,但参数不是调整的越小越好,如果太小了,缓冲区域太小,小车有可能会撞上障碍物,要记住,它是机器,是按算法约束的条件来执行的。
3、为什么导航多次,运行时间久了,导航就会出现偏差,或者到达的位置不准确?
这是因为我们车是由硬件组成的,硬件是有误差的,这种误差最终会反馈到里程计上,里程计就会影响小车在实际运动过程中到达的位置,如果我们的车1m的误差有1cm,通过长时间运行会不断的扩大 这个误差,如果导航过程已经出现误差,也可以重新通过校正位姿来修正,也就是告诉小车,嗨,你现在的位置不对,你在应该在这里。
4、关于导航过程出现的一些其它的错误与警告怎么办?
由于ROS导航时系统非常大,你看启动导航时加载的参数都有几十个,出现的警告与错误,都是由于条件不满足而导致的,大家可以根据相关的警告或者错误自己百度或者谷歌。

最后的最后

Rikirobot提供两驱动、四驱动、麦克纳姆轮、Omni全向三轮、Omni全向四轮、履带、阿克曼(舵机转向)、大型负载的各种ROS车,有配套指导、及完善售后。
QQ交流群:130486387
RIKIROBOT店铺连接
下面是店铺的二维码与Rikirobot的交流群,有兴趣的可以扫一扫。
店铺二维码QQ交流群
这里写图片描述

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

【ROS Rikirobot基础-使用系列 第四章节】Rikirobot小车使用激光雷达进行自动导航 的相关文章

随机推荐

  • JDK 中使用js调用java类、方法

    最近研究阅读这个APP 其主要功能就是通过一个个书源 从而实现移动端阅读的体验 比如说某些在线小说阅读网站 会加上相应的广告 从而影响用户阅读体验 于是阅读这个APP就是做了类似净化阅读体验 但是小说阅读网站千千万万 如果去适配每个小说阅读
  • Spring项目在tomcat启动时调用action

    1 实现ServletContextListener接口 添加 64 WebListener注解 2 按照示例写代码 xff1a 第一个是开启时 xff0c 第二个是销毁时
  • ubuntu16.04安装opencv3.4

    参考blog https blog csdn net u013066730 article details 79411767 直接进行 完全没问题 sudo apt get install build essential libgtk2 0
  • 使用switch-case语句输出成绩等级

    问题描述 xff1a 输入一个0 100范围内发分数 xff0c 在不同的等级范围内输出不同的值 xff0c 要求使用switch case控制 0 60 等级为E 60 70 等级为D 70 80 等级为C 80 90 等级为B 90 1
  • 输出图案(六)---输出空心矩形

    输入矩形的宽 xff0c 高 xff0c 输出该空心矩形 xff0c 用 来进行表示 参考代码1 xff1a span class hljs comment include lt stdio h gt span span class hlj
  • C语言中交换两个数的方法

    问题描述 xff1a 程序中有两个数a b 其中a 61 4 b 61 5 xff0c 现在希望交换两个数的值 xff0c 使得a 61 5 b 61 4 在这里我总结了一下目前我已经掌握的C语言中交换两个数的方法 xff0c 主要如下几种
  • 输出平行四边形图案(多种方案)

    问题描述 xff1a 使用 在控制台打印平行四边形 例如 xff1a 平行四边形中最长的一行输出的 是5个 xff0c 则平行四边为 xff1a span class hljs bullet span span class hljs emp
  • 自己实现strcat函数

    问题描述 xff1a 自己实现一个MyStrcat函数 xff0c 要和C语言库函数的strcat函数完成同样的功能 问题分析 xff1a 首先我们要了解一下strcat函数它到底做了什么事情 1 函数原型 char strcat char
  • 简易文件打包程序

    对指定目录下面的文件进行打包 简易解包程序参考博客另外一篇文章 xff1a http blog csdn net yi ming he article details 77689453 打包方式 xff1a 把目录下面的文件名 xff0c
  • 简易解包程序

    对压缩包进行解压 简易压缩程序请参考博客的另外一篇文章 xff1a http blog csdn net yi ming he article details 77689405 解包方式 xff1a 根据打包建立的索引表 xff0c 找到对
  • linux 挂载错误Transport endpoint is not connected

    mount了mfs后 xff0c 重新挂载之后 xff0c 出现如下错误 xff1a usr local mfs bin mfsmount H 192 168 103 101 mnt fuse bad mount point 96 mnt
  • 新字体的永久注册

    CString GetCurrentModuleDir TCHAR szPath MAX PATH 43 1 61 0 if 0 61 61 GetModuleFileName HMODULE amp ImageBase szPath MA
  • yolov5/v7/v8自动检测多个文件夹及截取锚框

    目前yolo仅支持检测图片或单个文件夹 xff0c 但在很多时候需要对成百上千个文件夹中图片进行检测 xff0c 再根据得到的位置信息txt文件来截取图片 xff0c 如何一步完成呢 xff0c 详情见下文 在detect py中将save
  • 带参数的宏定义、函数与内联函数

    文章目录 前言一 宏定义1 基本用法2 带参数的宏定义 二 函数1 定义与声明2 调用 三 内联函数 inline总结 前言 在实际项目开发 xff0c 尤其是嵌入式软件项目中 xff0c 经常可以看到大量宏定义的分布 xff0c 其中又多
  • C++语言为什么跨平台?

    xfeff xfeff 现在主流的手机平台很多 xff0c 比如 xff1a Windows开发的Windows Phone xff08 WP 34 X 34 xff09 Apple 苹果公司 开发的ios xff0c Google 谷歌
  • CMake 中的list操作

    Cmake 中定义了一系列的数组操作 xff0c 使用方法如下 list INSERT lt list gt lt element index gt lt element gt lt element gt list REMOVE ITEM
  • 解决error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such file

    原文转自CSDN xff0c 本文有删减 一 问题 运行hydra时 xff0c 提示错误 xff1a hydra error span class hljs keyword while span loading span class hl
  • 栈(超简单讲解版

    没错又是我来了 xff08 上一篇DFS还没写好就先来写队列与栈了哈哈哈哈 是很简单的内容呢 xff08 比DFS简单到哪里去了 先来认识一下栈 什么是栈 xff1f 度娘是这样说的 xff1a 栈 xff08 stack xff09 又名
  • ROS下使用stm32 与rosserial进行通信的开发说明及源代码示例

    关于stm32下的ROS开发环境介绍说明 xff0c 此开发环境是在Linux下使用stm32的标准库 STM32F10x StdPeriph Driver3 5 xff0c 进行stm32开发 xff0c 整体开发框架已搭建完成 xff0
  • 【ROS Rikirobot基础-使用系列 第四章节】Rikirobot小车使用激光雷达进行自动导航

    利用激光雷达进行自动导航 这里我们教大家使用的是利用激光雷达导航 xff0c 关于深度摄像头的导航我们后面会教大家使用 1 上电启动小车 xff0c 主控端执行启动小车的命令 xff1a roslaunch rikirobot bringu