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

2023-11-19

常用ROS命令概述

ROS常用命令可以按照其使用场景分为ROSshell命令、ROS执行命令、ROS信息命令、ROS catkin命令与ROS功能包命令。虽然很难从一开始就很熟练地使用所有的命令,但是随着使用的次数增多,你会发现常用的几个ROS命令就大概18个左右,你也会用得更加得心应手。

参考链接: ros重要命令.
参考书籍:《ROS_Robot_Programming》作者:表允晳 赵汉哲 郑黎蝹 林泰勋

本文只供大家学习相关知识使用,不以任何商业盈利为目的,转载或分享请注明相关来源。如涉及到相关侵权,请联系我删除。

1 ROS shell命令

ROS shell命令又被称为rosbash。这使我们可以在ROS开发环境中使用Linux中常用的bash shell命令。主要使用前缀是ros且带有多种后缀的命令,例如cd、pd、d、ls、ed、cp和run。相关命令如下:

命令 重要度 命令释义 详细说明 参考模板
roscd ★★★ ros+cd(changes directory) 移动到指定的ROS功能包目录 roscd [功能包名称]
rosls ★☆☆ ros+ls(lists files) 显示ROS功能包的文件和目录 rosls [功能包名称]
rosed ★☆☆ ros+ed(editor) 编辑ROS功能包的文件 rosed [功能包名称] [文件名称]
roscp ★☆☆ ros+cp(copies files) 复制ROS功能包的文件
rospd ☆☆☆ ros+pushd 添加目录至ROS目录索引
rosd ☆☆☆ ros+directory 显示ROS目录索引中的目录

相对常见的为roscdroslsrosed命令。

说明:
ROS shell命令的使用环境
想要使用ROS shell命令,需要用以下命令安装rosbash,并且只能在设置了source /opt/ros/<ros distribution>/setup.bash的终端窗口中可以使用。可通过下面命令进行安装:

sudo apt-get install ros-<ros distribution>-rosbash

2 ROS 执行命令

ROS 执行命令管理ROS节点的运行。最重要的是,roscore被用作节点之间的名称服务器。执行命令是rosrun和roslaunch。rosrun运行一个节点,当运行多个节点或设置各种选项时使用roslaunch。rosclean是删除节点执行时记录的日志的命令。

命令 重要度 命令释义 详细说明 参考模板
roscore ★★★ ros+core master(ROS名称服务) + rosout(日志记录) + parameter server(参数管理) roscore [选项]
rosrun ★★★ ros+run 运行单个节点 rosrun [功能包名称] [节点名称]
roslaunch ★★★ ros+launch 运行多个节点或设置运行选项 roslaunch [功能包名称] [launch文件名]
rosclean ★★☆ ros+clean 检查或删除ROS日志文件 rosclean [选项]

3 ROS 信息命令

ROS 信息命令ROS信息命令用于识别话题、服务、节点和参数等信息。尤其是rostopic、rosservice、rosnode和rosparam经常被使用,并且rosbag是ROS的主要特征之一,它具有记录数据和回放功能,大家一定要掌握。

命令 重要度 命令释义 详细说明 参考模板
rostopic ★★★ ros+topic 确认ROS话题信息 rostopic [选项]/[选项+话题/类型名称] 也可以通过pub指定话题发布消息
rosservice ★★★ ros+service 确认ROS服务信息 rosservice [选项]/[选项+服务/类型名称] 也可以通过call用输入的参数请求服务
rosnode ★★★ ros+node 确认ROS节点信息 rosnode [选项]/[选项+节点名称]
rosparam ★★★ ros+param(parameter) 确认和修改ROS参数信息 rosparam [选项]/[选项+参数/文件名称]
rosbag ★★★ ros+bag 记录和回放ROS消息 rosbag [选项]/[选项+文件名称]
rosmsg ★★☆ ros+msg 显示ROS消息类型 rosmsg [选项]/[选项+消息/功能包名称]
rossrv ★★☆ ros+srv 显示ROS服务类型 rossrv [选项]/[选项+服务/功能包名称]
rosversion ★☆☆ ros+version 显示ROS功能包的版本信息 ———
roswtf ☆☆☆ ros+wtf 检查ROS系统 ———

4 ROS catkin命令

ROS catkin命令ROS的catkin命令用于使用catkin 构建系统来构建功能包。

命令 重要度 详细说明 参考模板
catkin_create_pkg ★★★ 自动生成功能包 catkin_create_pkg [功能包名称] [依赖性功能包1] [依赖性功能包2] …
catkin_make ★★★ 基于catkin 构建系统的构建 catkin_make --[选项]
catkin_eclipse ★★☆ 把用catkin 构建系统生成的功能包修改,使得可以在Eclipse 环境中使用 catkin_eclipse
catkin_prepare_release ★★☆ 发布时用到的日志整理和版本标记 catkin_prepare_release
catkin_generate_changelog ★★☆ 发布时生成或更新CHANGELOG.rst文件 catkin_generate_changelog
catkin_init_workspace ★★☆ 初始化catkin 构建系统的工作目录 catkin_init_workspace
catkin_find ★☆☆ 搜索catkin catkin_find [功能包名称]

5 ROS 功能包命令

ROS 功能包命令用于操作ROS功能包,比如显示功能包信息、安装相关功能包等。

命令 重要度 命令释义 详细说明 参考模板
rospack ★★★ ros+pack(age) 显示与ROS功能包相关的信息 rospack [选项] [功能包名称]
rosinstall ★★☆ ros+install 安装ROS附加功能包 ——
rosdep ★★☆ ros+dep(endencies) 安装该功能包的依赖性文件 rosdep [选项]
roslocate ☆☆☆ ros+locate 与ROS功能包信息有关的命令 roslocate [选项] [功能包名称]
roscreate-pkg ☆☆☆ ros+create-pkg 自动生成ROS功能包 (用于旧的rosbuild系统) ——
rosmake ☆☆☆ ros+make 构建ROS功能包(用于旧的rosbuild系统) ——

更多精彩内容,可以关注我的个人微信公众号

也欢迎志同道合者互相交流学习,微信:Zhihua_Steven

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

《学习篇》学会这18个常用ROS命令集合就能入门ROS了 的相关文章

  • 如何在线程创建和退出时调用函数?

    include
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • Linux 中 m 标志和 o 标志将存储在哪里

    我想知道最近收到的路由器通告的 m 标志和 o 标志的值 从内核源代码中我知道存储了 m 标志和 o 标志 Remember the managed otherconf flags from most recently received R
  • 为什么 Linux 没有 DirectX API?

    在考虑现代显卡的 Windows 系统上 DirectX API 的驱动程序端实现时 我想知道为什么此实现在非 Windows 系统 尤其是 Linux 上不可用 由于明显缺乏此功能 我只能假设有一个我无视的充分理由 但在我的原始理解中 我
  • 调用 printf 系统子例程在汇编代码中输出整数错误[重复]

    这个问题在这里已经有答案了 来回 在windows7控制台窗口中运行gcc s2 asm 然后生成一个exe文件 运行a exe 然后崩溃 为什么 s2 asm 代码由以下源代码生成 int m m 1 iprint m s2 asm请参考
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • tcpdump 是否受 iptables 过滤影响?

    如果我的开发机器有iptables规则到FORWARD一些数据包 这些数据包是否被 tcpdump 捕获 我有这个问题 因为我知道存在其他链称为INPUT如果数据包路由到 它会过滤发往应用程序的数据包FORWARD链 它会到达吗tcpdum
  • linux-x64 二进制文件无法在 linuxmusl-x64 平台上使用错误

    我正在安装Sharp用于使用 package json 的 Nodejs 项目的 docker 映像上的映像压缩包 当我创建容器时 我收到有关 Sharp 包的以下错误 app node modules sharp lib libvips
  • 如何阻止ubuntu在使用apt安装或更新软件包时弹出“Daemons using outdatedlibraries”? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我最近新安装了 Ubuntu 22 04 LTS 我发现每次使用 apt 安装或更新软件包时 它都会询问我有关Which servic
  • C 语言的符号表

    我目前正在开发一种执行模式匹配的静态分析工具 我在用Flex https github com westes flex生成词法分析器 我编写了代码来管理符号表 我不太有经验C 所以我决定将符号表实现为线性链表 include
  • 如何获取 (Linux) 机器的 IP 地址?

    这个问题和之前问的几乎一样如何获取本地计算机的IP地址 https stackoverflow com questions 122208 get the ip address of local computer 问题 但是我需要找到一个的I
  • 使用 MAX_ORDER / 包含 mmzone.h

    根据https www kernel org doc Documentation networking packet mmap txt https www kernel org doc Documentation networking pa
  • 使用 shell 脚本将行附加到 /etc/hosts 文件

    我有一个新的 Ubuntu 12 04 VPS 我正在尝试编写一个安装脚本来完成整个 LAMP 安装 我遇到问题的地方是在 etc hosts文件 我当前的主机文件如下所示 127 0 0 1 localhost Venus The fol
  • 从 Xlib 转换为 xcb

    我目前正在将我的一个应用程序从 Xlib 移植到 libxcb 但在查找有关我有时使用的 XInput2 扩展的信息时遇到了一些麻烦 libxcb 中有 XInput2 实现吗 如果是的话 在哪里可以找到文档 目前我在使用此功能时遇到问题
  • 与 pthread 的进程间互斥

    我想使用一个互斥体 它将用于同步对两个不同进程共享的内存中驻留的某些变量的访问 我怎样才能做到这一点 执行该操作的代码示例将非常感激 以下示例演示了 Pthread 进程间互斥体的创建 使用和销毁 将示例推广到多个进程作为读者的练习 inc
  • Mac OS X 上的 /proc/self/cmdline / GetCommandLine 等效项是什么?

    如何在不使用 argc argv 的情况下访问 Mac OS X 上的命令行 在 Linux 上 我会简单地阅读 proc self cmdline or use GetCommandLine在 Windows 上 但我找不到 Mac OS

随机推荐

  • 哈工大 csapp lab5

    实验报告 实 验 五 题 目 LinkLab 链接 专 业 计算机科学与技术 学 号 190110812 班 级 7 学 生 刘新晨 指 导 教 师 吴锐 实 验 地 点 G707 实 验 日 期 2021 5 16 计算机科学与技术学院
  • Linux 常用命令介绍

    文章目录 1 初级 1 pwd命令 2 cd命令 3 ls命令 实例练习 2 中级 1 Linux文件操作 1 创建文件 2 删除文件 2 Linux文件夹操作 1 创建文件夹 2 删除文件夹 3 Linux文件和文件夹拷贝 4 Linux
  • 使用 cloc 统计你的代码量

    转自 使用 cloc 统计你的代码量 今天发现一个特别好用的工具 cloc 可以用它统计代码的行数 它可以识别多种开发语言 并在计算的时候忽略掉注释和空行 我记得我上次申请软件著作权的时候 申请表格中要求提交代码量 当时为了计算行数 我写了
  • 51单片机——LED点阵屏

    51单片机 LED点阵屏 LED点阵屏 LED点阵屏原理 74HC595串转并芯片 源代码 例程一 静态笑脸 效果展示 例程二 笑脸 gt 平脸 gt 哭脸 效果展示 LED点阵屏 c51的LED点阵屏其实就是一个8 8像素的屏幕 一共有6
  • Qt程序的编译和发布(实验报告)

    实验 1 编译和发布 Qt 程序 目的与要求 掌握创建 Qt 程序的方法 掌握发布 Qt 程序的方法 学会为 Qt 程序添加应用程序图标 了解 Qt 发布需要的 DLL 动态库文 实验准备 搭建好 Qt 开发环境 了解 Qt Creator
  • 如何查看当前使用的Shell类型

    1 在终端输入命令 echo SHELL echo SHELL 2 在终端输入命令 echo 0 数字0 这个命令不是所有Shell都支持 echo 0 3 在终端输入命令ps 查看当前运行的shell是什么 如图1所示 有一个进程是bas
  • 【react】新旧生命周期对比

    componentWillUpdate componentWillReceiveProps componentWillMount 上述这三个生命周期在V18以上的版本中 使用时要加上UNSELF name
  • php正则表达式 验证密码,用于强密码验证的PHP正则表达式

    参见英文答案 gt Reference Password Validation 1个 我在网上看到了以下正则表达式 8 d W n A Z a z 它只在字符串中有效 contain at least 1 upper case letter
  • EF循环依赖

    1 项目场景 项目场景 1 本项目采用了EF架构来建立实体与实体之间的关联关系 2 一个部门对应多个摄像头 1 部门实体 public partial class DepartmentEntity 部门实体 public int Id ge
  • Netty中的零拷贝机制

    零拷贝机制 Zero Copy 是在操作数据时不需要将数据从一块内存区域复制到另一块内存区域的技术 这样就避免了内存的拷贝 使得可以提高CPU的 零拷贝机制是一种操作数据的优化方案 通过避免数据在内存中拷贝达到的提高CPU性能的方案 1 操
  • C++ 中的虚函数及虚函数表

    C 中的虚函数及虚函数表 一 虚函数及虚函数表的定义 二 虚函数表指针和虚函数表的创建时机 三 虚函数实现多态的原理 一 虚函数及虚函数表的定义 虚函数 虚函数就是在基类中定义一个未实现的函数名 使用虚函数的核心目的就是通过基类访问派生类定
  • MyBatis写入Json字段及Json字段转对象

    阅读本文章大概需要一分钟 一 背景 最近在设计表结构的时候 根据需求 将一个字段的类型设计为Json字段 而对于还没有操作过数据库Json字段的我就有点懵了 之前从未遇到这种情况 所以也是一步步研究一步步踩坑 最后终于是把Json字段读取的
  • 【css】overflow溢出隐藏

    overflow scroll 溢出部分显示滚动条 不溢出也显示滚动条 overflow auto 溢出的时候才显示滚动条 不溢出不显示滚动条
  • 二:云函数细则说明及部署流程

    目录 细则说明 代码结构 初始化及生成数据库管理工具 导出回调 完整示例 部署流程 本地云函数 云端云函数 细则说明 代码结构 通常一个云函数中 往往有着这样的代码结构 环境初始化 const cloud require wx server
  • C#软件开发实例.私人订制自己的屏幕截图工具(一)功能概览

    本实例全部文章目录 一 功能概览 二 创建项目 注册热键 显示截图主窗口 三 托盘图标及菜单的实现 四 基本截图功能实现 五 针对拖拽时闪烁卡顿现象的优化 六 添加配置管理功能 七 添加放大镜的功能 八 添加键盘操作截图的功能 九 使用自定
  • 在区块链世界中的token到底是什么?

    token的概念很广泛 在计算机领域中 无论是基础的网络架构还是服务系统的身份验证等 都有涉及到token的概念 然而在这里我想阐述的是在区块链世界中的token是什么 相信对区块链有些了解的朋友 都或多或少的听过或者看过关于token的描
  • C++——oo的魅力之多态

    文章目录 多态的概念 多态的定义和实现 多态的构成条件 虚函数重写的两个例外 协变 基类和派生类虚函数返回值类型不同 析构函数的重写 基类和派生类析构函数名字不同 c 11 override 和 final 关键字 重载 重写 覆盖 隐藏
  • 全国大学生信息安全竞赛真题(CTF)

    web篇 https blog csdn net csu vc article details 78011716 https www cnblogs com iamstudy articles 2017 quanguo ctf web wr
  • 查看Python之禅,使用的命令以及初级学习的简单那注意事项

    cmd终端进入Python的执行终端 输入import this就可以查看到Python代码编写的原则
  • 《学习篇》学会这18个常用ROS命令集合就能入门ROS了

    常用ROS命令概述 ROS常用命令可以按照其使用场景分为ROSshell命令 ROS执行命令 ROS信息命令 ROS catkin命令与ROS功能包命令 虽然很难从一开始就很熟练地使用所有的命令 但是随着使用的次数增多 你会发现常用的几个R