一起自学SLAM算法:1.4 ROS调试工具

2023-05-16

 连载文章,长期更新,欢迎关注:


写在前面

第1章-ROS入门必备知识

        1.1 ROS简介

        1.2 ROS开发环境搭建

        1.3 ROS系统架构

        1.4 ROS调试工具

        1.5 ROS节点通信

        1.6 ROS其他重要概念

        1.7 ROS2.0展望

第2章-C++编程范式

第3章-OpenCV图像处理

第4章-机器人传感器

第5章-机器人主机

第6章-机器人底盘

第7章-SLAM中的数学基础

第8章-激光SLAM系统

第9章-视觉SLAM系统

第10章-其他SLAM系统

第11章-自主导航中的数学基础

第12章-典型自主导航系统

第13章-机器人SLAM导航综合实战


虽然ROS系统很复杂,但其附带了大量工具用于ROS开发调试。这些调试工具大致分为命令行工具和可视化工具两种,掌握这些工具能够大大提高开发效率。

1.4.1 命令行工具

ROS命令行工具能在shell终端直接输入使用,类似于Linux命令。这里对经常用到的命令进行介绍,比如运行执行、信息显示、catkin操作和功能包操作这几类相关命令。想了解更多ROS命令,可以参考官方wiki教程。

1.运行执行相关的命令

运行执行相关的命令主要分为3个,即roscore、rosrun和roslaunch。其中roscore是启动主节点master的命令,rosrun是启动单个节点的命令,roslaunch是同时启动多个节点的命令。这几个命令的具体用法,如表1-1所示。

表1-1  运行执行相关的命令

命令

说明

roscore

启动主节点master

rosrun  [功能包名]  [节点名]

启动指定功能包中的某个节点

roslaunch  [功能包名]  [launch文件名]

通过launch文件启动多个节点

2.信息显示相关的命令

rosnode是跟节点相关的命令,rostopic是跟话题相关的命令,rosservice是跟服务相关的命令,rosparam是跟参数相关的命令,rosmsg是跟消息类型相关的命令,rossrv是跟服务类型相关的命令,rosbag是跟数据包相关的命令。这几个命令的具体用法,如表1-2所示。

表1-2  信息显示相关的命令

命令

说明

rosnode  list

rosnode  kill  [节点名]

rosnode  cleanup

rosnode  info  [节点名]

列出当前运行的所有节点

强制停止指定节点的运行

删除失连节点的注册信息

显示指定节点的状态信息

rostopic  list

rostopic  echo  [话题名]

rostopic  pub  [话题名]  [消息类型]  [数据]

rostopic  hz  [话题名]

rostopic  info  [话题名]

列出当前可用的所有话题

实时显示话题中的消息数据

向指定话题发送消息数据

显示指定话题中消息发布频率

显示指定话题的状态信息

rosservice  list

rosservice  args  [服务名]

rosservice  call  [服务名]  [数据]

rosservice  info  [服务名]

列出当前可用的所有服务

显示指定服务的消息参数

向指定服务发起请求

显示指定服务的状态信息

rosparam  list

rosparam  get  [参数名]

rosparam  set  [参数名]

rosparam  dump  [文件名]

rosparam  load  [文件名]

rosparam  delete  [参数名]

列出当前可用的所有参数

获取指定参数的值

设置指定参数的值

将参数保存到指定文件

从文件中载入参数值

删除指定参数

rosmsg  list

rosmsg  show  [消息类型]

rosmsg  package  [功能包名]

显示ROS中可用的所有消息类型

显示指定消息类型的格式

显示指定功能包中用到的所有消息类型

rossrv  list

rossrv  show  [消息类型]

rossrv  package  [功能包名]

显示ROS中可用的所有服务类型

显示指定服务类型的格式

显示指定功能包中用到的所有服务类型

rosbag  record  [可选项]  [话题名]

rosbag  play  [bag文件名]

rosbag  info  [bag文件名]

将指定话题中的消息录制到bag文件

将bag文件中话题的消息回放出来

查看bag文件的状态信息

3.catkin操作相关的命令

catkin_init_workspace是用于初始化catkin工作空间的命令,catkin_create_pkg是创建功能包的命令,catkin_make是编译功能包的命令。这几个命令的具体用法,如表1-3所示。

表1-3  catkin操作相关的命令

命令

说明

catkin_init_workspace

初始化catkin工作空间

catkin_create_pkg  [功能包名]  [依赖功能包] ...

创建一个功能包

catkin_make  [可选项]

编译功能包

4.功能包操作相关的命令

rospack是查询功能包信息的命令,rosinstall是安装功能包更新的命令,rosdep是功能包依赖的命令。这几个命令的具体用法,如表1-4所示。

表1-4  功能包操作相关的命令

命令

说明

rospack  list

rospack  depends  [功能包名]

rospack  profile

列出本机上所有功能包

查询指定功能包的所有依赖功能包

为系统重建功能包索引

rosinstall

为功能包自动安装更新

rosdep  check  [功能包名]

rosdep  install  [功能包名]

rosdep  init

rosdep  update

检测指定功能包的依赖关系

安装指定包的依赖功能包

rosdep初始化

rosdep更新

1.4.2 可视化工具

除了上面提到的命令行工具,这里的可视化工具是很好的补充。下面重点介绍rviz和rqt两个开发过程中频繁使用的可视化工具。

1.rviz

rviz是ROS自带的三维可视化工具,可以让用户通过图形界面非常方便地开发调试ROS。比如可视化显示激光雷达、深度相机、超声波等传感器的数据、显示机器人的三维几何模型、显示路径规划实时轨迹、发送导航目标点等。启动rviz的方法很简单,命令如下。

#在终端,先启动roscore
roscore
#在另一个终端,启动rviz
rviz

rviz正常启动后,就会进入默认的主界面,如图1-8所示。界面主要分为上侧菜单区、左侧显示内容设置区、中间显示区、右侧显示视角设置区、下侧ROS状态区。

 图1-8  rviz主界面

启动rviz界面后,首先要对Global Options进行设置,Global Options里面的参数是一些全局显示相关的参数。其中的Fixed Frame参数是全局显示区域依托的坐标系,我们知道机器人中有很多坐标系,坐标系之间有各自的转换关系,有些是静态关系,有些是动态关系,不同的Fixed Frame参数有不同的显示效果。在rviz中用户可以灵活地添加想要显示的ROS话题,点击rviz界面左下角add按钮,选择你要查看的话题就行了。

在后面的机器人导航中,会经常用到rviz中设置初始位置和发送目标点的功能。点击2D Pose Estimate按钮,然后在地图中找到机器人大致的位置后再次点击鼠标左键并保持按下状态,拖动鼠标来指定机器人的朝向,最后松手就完成对机器人初始位置的设定了。通过2D Nav Goal按钮让机器人自动导航到我们的指定的位置。

为了能使用当前设置好的显示项启动以后的rviz,可以将当前的rviz显示风格以配置文件的方式保存,下次启动rviz时只需要载入这个配置文件就能进入相应的显示风格。很简单,点击rviz左上角file菜单,在下拉中选择Save Config As,在弹出来的对话框中给配置文件取一个名字,然后直接Save,*.rviz配置文件会被保存到系统中rviz默认的目录。下次启动rviz时,通过点击rviz左上角file菜单,在下拉中选择Open Config,打开相应的配置文件就行了。

2.rqt

除了上面的rviz可视化工具,ROS中还提供了支持用户自己开发的图形化工具rqt。rqt是基于Qt来开发的,因此rqt用户可以自由添加和编写插件来实现自己的功能。启动rqt的方法很简答,命令如下。

#在终端,先启动roscore
roscore
#在另一个终端,启动rqt
rqt

rqt正常启动后,就会进入默认的主界面,如图1-9所示。主界面内置了很多默认的插件,显示、调试、配置等丰富的功能。

 图1-9  rqt主界面

由于rqt包含的插件太多了,很难列举出所有插件来逐一介绍。下面列出一些很常用的rqt插件:

  • rqt_graph       显示ROS网络中节点连接关系图
  • rqt_tf_tree      显示ROS网络中tf关系树状图
  • rqt_plot        为ROS中的消息数据绘制曲线图
  • rqt_reconfigure  在图形界面中配置ROS参数
  • rqt_image_view  显示ROS中的图像数据
  • rqt_bag         显示rosbag文件中的数据结构

除了通过从上面的rqt主界面启动rqt的各种插件,还可以在命令行中直接启动某个rqt插件。以rqt_graph插件为例,启动方法如下。

#在终端,先启动roscore
roscore
#在另一个终端,启动rqt_graph插件
rqt_graph

源码仓库

  • Github下载:github.com/xiihoo/Books_Robot_SLAM_Navigation

  • Gitee下载(国内访问速度快):gitee.com/xiihoo-robot/Books_Robot_SLAM_Navigation

参考文献

【1】 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.

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

一起自学SLAM算法:1.4 ROS调试工具 的相关文章

  • ROS2踩坑记录

    Vscode 显示 找不到module 以此选择 设置 Python 在setting json中编辑 在 python autoComplete extraPaths 中添加额外的第三方库路径 如 opt ros foxy lib pyt
  • GMAPPING的参数设置

    二 运行gmapping 我总结了运行gmapping的两种方法 1 基于命令行 rosrun gmapping slam gmapping scan scan delta 0 1 maxUrange 4 99 xmin 5 0 ymin
  • 用Eigen库练习代数运算方式以便后续对刚体旋转和移动做基础

    include
  • Ceres Solver从零开始手把手教学使用

    目录 一 简介 二 安装 三 介绍 四 Hello Word 五 导数 1 数值导数 2解析求导 六 实践 Powell函数 一 简介 笔者已经半年没有更新新的内容了 最近学习视觉SLAM的过程中发现自己之前学习的库基础不够扎实 Ceres
  • ROS 笔记(01)— Ubuntu 20.04 ROS 环境搭建

    ROS 官网 https www ros org ROS 中文官网 http wiki ros org cn 1 系统和 ROS 版本 不同的 ROS 版本所需的 ubuntu 版本不同 每一版 ROS 都有其对应版本的 Ubuntu 切记
  • 无人车

    1 无人车四大核心技术 自动驾驶实际包含三个问题 一是我在哪 二是我要去哪 三是如何去 第一个问题是环境感知和精确定位 无人车需要的是厘米级定位 厘米级定位是无人驾驶的难点之一 不光是车辆本身的语义级定位 还有一个绝对坐标定位 第二个问题是
  • 在Ubuntu 14.04.2 LTS上安装Qt

    Qt是一个跨平台的应用程序框架 广泛用于开发具有GUI界面的应用软件以及命令行工具 几乎所有操作系统都可以使用Qt 如Windows Mac OS X Android等 用于开发Qt应用程序的主要编程语言是C 但是可以使用诸如Python
  • LOAM算法详解

    激光SLAM 帧间匹配方法 Point to Plane ICP NDT Feature based Method 回环检测方法 Scan to Scan Scan to Map LOAM创新点 定位和建图的分离 里程计模块 高频低质量的帧
  • Object SLAM: An Object SLAM Framework for Association, Mapping, and High-Level Tasks 论文解读

    是一篇来自机器人顶刊T RO的文章 发表于2023 5 An Object SLAM Framework for Association Mapping and High Level Tasks 论文 An Object SLAM Fram
  • Ubuntu安装ROS

    原文链接 https blog csdn net qq 44830040 article details 106049992 这也是我在ubuntu里面安装ROS的第N次 以前每次安装过程都忘记总结了 导致每次安装ROS都浪费了很多的时间用
  • Eigen几何模块的使用方法

    include
  • 《学习篇》学会这18个常用ROS命令集合就能入门ROS了

    常用ROS命令概述 ROS常用命令可以按照其使用场景分为ROSshell命令 ROS执行命令 ROS信息命令 ROS catkin命令与ROS功能包命令 虽然很难从一开始就很熟练地使用所有的命令 但是随着使用的次数增多 你会发现常用的几个R
  • (ros/qt报错) FATAL: ROS_MASTER_URI is not defined in the environment

    安装qt之后 明明打开roscore但是qt运行跟ros有关的节点时报错 FATAL 1450943695 306401842 ROS MASTER URI is not defined in the environment Either
  • 《机器人操作系统入门》课程代码示例安装出错解决方法

    问题描述 学习 机器人操作系统入门 课程时 在Ubuntu 16 04 上安装了kinetic 安装ROS Academy for Beginners时依赖总是报错 如下所示 rosdep install from paths src ig
  • ROS1 ROS2学习

    ROS1 ROS2学习 安装 ROS ROS1 ROS2 命令行界面 ROS2 功能包相关指令 ROS 命令行工具 ROS1 CLI工具 ROS2 CLI工具 ROS 通信核心概念 节点 Node 节点相关的CLI 话题 Topic 编写发
  • 在 Python 3 中导入 Rosbag

    我正在尝试从 Python 3 读取 rosbag 文件 我安装了 ROS2 Eloquent Elusor 它应该支持 Python 3 当我跑步时 import rosbag bag rosbag Bag test bag 从Pytho
  • 什么是 void `std::allocator`?即:`std::allocator`

    自动生成ROS 机器人操作系统 message C 头文件包含如下类型定义 typedef std msgs Header
  • 可以在catkin工作区之外创建ROS节点吗?

    我想在catkin工作区之外创建一个ROS发布者节点 可以创建吗 当然可以 像对待任何其他 cpp 库或 python 包一样对待 ROS 在Python中你必须保留PYTHONPATH环境变量指向ros包 opt ros kinetic
  • 高翔博士Faster-LIO论文和算法解析

    说明 题目 Faster LIO 快速激光IMU里程计 参考链接 Faster LIO 快速激光IMU里程计 iVox Faster Lio 智行者高博团队开源的增量式稀疏体素结构 Faster Lio是高翔博士在Fast系列的新作 对标基
  • ROS中spin和rate.sleep的区别

    我是 ROS 新手 正在尝试了解这个强大的工具 我很困惑spin and rate sleep功能 谁能帮助我了解这两个功能之间的区别以及何时使用每个功能 ros spin and ros spinOnce 负责处理通信事件 例如到达的消息

随机推荐

  • 激光slam基础入门笔记2——位姿表示与变换矩阵

    前言 xff1a 初步了解位置与位姿 xff1a 参考链接 xff1a 机器人学 1 0 位置与姿态概述 已注销 的博客 CSDN博客 位置和姿态 二维空间位姿表示与变换矩阵推导 xff1a 参考链接 xff1a 机器人学 1 1 二维空间
  • 【githubgirl】自主导航无人机的硬件组成与搭建方案

    不久前 xff0c 浙江大学 FASTLAB 实验室 xff0c 在 GitHub 上开源了一套自主导航无人机的硬件组成与搭建方案 xff1a Fast Drone 250 该项目可应用于无人机在未知环境中的自主飞行 xff0c 集群飞行等
  • React路由传参的几种方式

    react路由传值有三种方式 xff1a 1 props params 方法 xff0c 该方法可以传递一个或多个值 xff0c 但是每个值的类型都是字符串 xff0c 没法传递一个对象 xff1b 2 query方法 xff0c 该方法类
  • 文章五:Python 网络爬虫实战:使用 Beautiful Soup 和 Requests 抓取网页数据

    一 简介 本篇文章将介绍如何使用 Python 编写一个简单的网络爬虫 xff0c 从网页中提取有用的数据 我们将通过以下几个部分展开本文的内容 xff1a 网络爬虫的基本概念Beautiful Soup 和 Requests 库简介选择一
  • 无人机目标检测:使用YOLOv4在VisDrone数据集上进行目标检测任务

    在本篇博客中 我们将探讨如何使用YOLOv4在VisDrone数据集上进行无人机目标检测任务 目标检测是计算机视觉中的一个重要任务 可以用于自动驾驶汽车 无人机监测和视频分析等多种应用 YOLOv4是一种实时目标检测算法 以其速度和准确性而
  • rospy的publisher和init_node

    文章目录 1 xff0c class Publiser xff08 发布者 xff09 2 rospy init node 初始化节点 1 xff0c class Publiser xff08 发布者 xff09 废话不多说 xff0c 先
  • ros功能包

    使用ROS的功能包使用以下常见的机器视觉应用 1 xff09 摄像头标定 xff1a 摄像头本身存在光学畸变 xff0c 可以使用camera calibration功能包实现双目和单目摄像头的标定 2 xff09 基于opencv的人脸识
  • 如何彻底关闭Win10自动更新,Win10永久关闭自动更新的方法

    如何彻底关闭Win10自动更新 xff1f Win10自动更新的问题是很多用户都遇到的问题 xff0c 很多时候我们关闭了自动更新 xff0c 过一段时间系统又自动更新了 xff0c 由于win10自动更新非常顽固 xff0c 所以我们要从
  • 函数模板及库函数

    函数模板 xff08 function template xff09 是一个独立于类型的函数 xff0c 可作为一种模式 xff0c 产生函数的特定类型版本 使用函数模板可以设计通用型的函数 xff0c 这些函数与类型无关并且只在需要时自动
  • Vmware虚拟机Ubuntu的ssh远程登陆--笔记

    SSH远程登录 apt更新网路更新ssh配置了解的部分 SecureCRTPortable登陆 apt更新 版本号 xff1a Ubuntu 16 04 环境 xff1a Vmware 17 2 网路 首先 xff0c 先检查网络是否畅通
  • Docker的常用命令

    一 Docker中几个重要的概念 镜像 和容器 是docker中两个非常重要的 概念 镜像 xff08 Image xff09 xff1a Docker 将应用程序及其所需的依赖 函数库 环境 配置等文件打包在一起 xff0c 称为镜像 容
  • Linux-C语言编写-UDP服务器客户端通信流程简介(代码)

    目录 一 xff0c 服务器 1 创建数据报套接字 2 填充结构体 3 绑定服务器的ip和端口 4 接收来自客户端的消息 recvfrom 5 关闭套接字 6 详细代码 二 xff0c 客户端 1 创建数据报套接字 2 填充结构体 xff0
  • C++三阶贝塞尔曲线

    文章目录 1 贝塞尔曲线2 示意图3 c 43 43 代码实现 1 贝塞尔曲线 贝塞尔曲线阶数等于控制点个数n 1将控制点首尾相连并且取每段连线上一点P xff0c 再将每个线段上的P点连接设第一个控制点为P1 xff0c 第二个为P2 x
  • Ubuntu 图达通激光雷达可视化/获取点云

    文章目录 0 ILA 平台网页预览1 Ubuntu的安装2 安装Ubuntu对应版本ros3 激光雷达接线4 解压SDK文件5 启动ros可视化点云6 录制点云7 播放录制文件8 rosbag文件 gt pcd文件 0 ILA 平台网页预览
  • Python的while循环

    目录 一 计数器 二 while循环使用 三 不同循环的使用环境判断 xff1a 四 while循环使用break和continue 五 while的嵌套使用 一 计数器 计数器 xff0c 是一个叫法 xff0c 代表的是一个功能 用于记
  • 字符串结束符

    在C语言中 xff0c 存储一个字符串通常用一个char 数组 在C语言中 xff0c 为了方便存储 xff0c 要求在最后一个字符的后面存储一个0 xff08 一个字节 xff09 这个0称为 字符串结束符 xff0c 常用 0 表示 在
  • 一起自学SLAM算法:1.1 ROS简介

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 一起自学SLAM算法:1.2 ROS开发环境搭建

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其
  • 戴尔电脑恢复系统后,D盘被加密Bitlocker,要求输入48位密钥,才能打开D盘---解决过程

    一 前言 今天DELL电脑恢复系统后 xff0c D盘被加密 xff08 D盘图标上有一把黄色的锁 xff09 xff0c 鼠标双击准备打开D盘 xff0c 提示了一个密钥ID xff0c 让输入48位码解密 xff0c 被microsof
  • 一起自学SLAM算法:1.4 ROS调试工具

    连载文章 xff0c 长期更新 xff0c 欢迎关注 xff1a 写在前面 第1章 ROS入门必备知识 1 1 ROS简介 1 2 ROS开发环境搭建 1 3 ROS系统架构 1 4 ROS调试工具 1 5 ROS节点通信 1 6 ROS其