文章目录

  • 1 创建工作空间
  • 2 package相关命令
  • 3 rosrun和rosnode命令
  • 4 rostopic相关命令
  • 5 rosmsg相关命令
  • 6 rosservice相关命令
  • 7 rossrv相关命令
  • 8 rosparam相关命令
  • 9 rqt相关命令
  • 10 rosbag相关命令

1 创建工作空间

1、启动ROS

roscore

2、创建工作环境

# 创建工作空间
mkdir -p catkin_ws/src      # 创建代码空间
cd ~/catkin_ws/src          # 进入代码文件夹
catkin_init_workspace       # 初始化当前文件夹

3、创建功能包

cd ~/catkin_ws/src
catkin_create_pkg <package_name> [depend1] [depend2] [depend3]

注意: 同一个工作空间下,不允许存在同名功能包;不同工作空间下,允许存在同名功能包

4、编译ROS程序

# 编译工作空间
cd ~/catkin_ws
catkin_make
catkin_make install

5、添加程序包到全局路径

source ~/catkin_ws/devel/setup.bash      # 设置环境变量
echo $ROS_PACKAGE_PATH                  # 检查环境变量

6、文件操作相关命令

sudo apt install XXX     # 安装ROS功能包
sudo apt purge XXX          # 删除某个功能包
apt search  XXX             # 搜索某个功能包
rosed 包名 文件名            # 修改功能包文件,需要先安装vim

2 package相关命令

1、rospack

rospack是对package管理的工具,命令的用法如下:

rospack命令 作用
rospack help 显示rospack的用法
rospack list 列出本机所有package
rospack depends [package] 显示package的依赖包
rospack find [package] 定位某个package
rospack profile 刷新所有package的位置记录

注:以上命令如果package缺省,则默认为当前目录(如果当前目录包含package.xml)

2、roscd

roscd [package]      # 切换到ROS package所在路径

3、rosls

rosls [package]      # 列出package下的文件

4、rosdep

rosdep 是用于管理ROS package依赖项的命令行工具,用法如下:

rosdep命令 作用
rosdep check [package] 检查package的依赖是否满足
rosdep install [package] 安装package的依赖
rosdep db 生成和显示依赖数据库
rosdep init 初始化/etc/ros/rosdep中的源
rosdep keys 检查package的依赖是否满足
rosdep update 更新本地的rosdep数据库

常用命令演示:
        打开一个终端,输入 roscore 后,再打开一个终端,假设我们要查看 turtlesim,如下:

rospack list             # 查看软件包列表和定位软件包
rospack find turtlesim      # 寻找一个软件包的目录
rosls turtlesim             # 查看软件包
roscd turtlesim             # 切换至软件包目录
rospack depends turtlesim   # 查看软件包的依赖

运行结果如下图:


3 rosrun和rosnode命令

1、rosrun

rosrun [--prefix cmd] [--debug] pkg_name node_name [ARGS]
# rosrun将会寻找PACKAGE下的名为EXECUTABLE的可执行程序,将可选参数ARGS传入。

2、rosnode

rosnode相当于ros节点管理命令,通过此命令可以查看、操作以及监测已经运行的ros节点,详细命令如下:

rosnode命令 作用
rosnode list 列出当前运行的node信息
rosnode info node_name 显示node的详细信息
rosnode kill node_name 结束某个node
rosnode ping 测试连接节点
rosnode machine 列出在特定机器或列表机器上运行的节点
rosnode cleanup 清楚不可到达节点的注册信息

常用命令演示:

rosrun turtlesim turtlesim_node      # 启动小海龟仿真器
rosnode list                        # 查看当前系统运行的ros节点
rosnode info /turtlesim             # 查看节点/turtlesim的信息
rosnode ping /turtlesim             # 测试节点/turtlesim是否正常
rosnode kill /turtlesim             # 关闭节点/turtlesimrosnode ping -all                   # 测试系统所有节点是否正常运行
rosnode kill --all                  # 关闭所有节点

运行结果如下图:



4 rostopic相关命令

rostopic包含rostopic命令行工具,用于显示有关ROS 主题的调试信息,包括发布者,订阅者,发布频率和ROS消息。它还包含一个实验性Python库,用于动态获取有关主题的信息并与之交互。

rostopic命令 作用
rostopic list 列出当前所有的topic
rostopic info topic_name 显示某个topic的属性信息
rostopic echo topic_name 显示某个topic的内容
rostopic pub topic_name … 向某个topic发布内容
rostopic bw topic_name 查看某个topic的带宽
rostopic hz topic_name 查看某个topic的频率
rostopic find topic_type 查看某个类型的topic
rostopic type topic_name 查看某个topic的类型(msg)
rostopic delay 显示带有 header 的主题延迟

常用命令演示:

rostopic -h                      # 查看 rostopic 所有操作
rostopic list                   # 查看当前系统中存在的话题
rostopic info /turtle1/pose     # 查看话题/turtle1/pose信息
rostopic echo /turtle1/pose     # 查看话题/turtle1/pose内容,获得小海龟位置信息
rostopic hz /turtle1/pose       # 查看话题/turtle1/pose通信频率
rostopic bw /turtle1/pose       # 查看话题/turtle1/pose通信带宽# 原型:rostopic pub [-1] <topic> <msg_type> [-r 1] -- [args] [args]
# 发布话题/turtle1/cmd_vel,只需要输入rostopic pub /turtle1/cmd_vel后,按两次Tab键,命令会自动补齐,然后加上后面的“-r 1”,
表示发布频率为1Hz,修改z值,将0.0改为1.0,表示绕Z轴按照逆时针方向,角速度为1rad/s。
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear:
x: 0.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 1.0"-r 1

运行效果如下图所示:



5 rosmsg相关命令

rosmsg是用于显示有关 ROS消息类型的信息的命令行工具。

rosmsg命令 作用
rosmsg list 列出系统上所有的消息
rosmsg show msg_name 显示某个消息的描述
rosmsg info msg_name 显示某个消息的信息
rosmsg md5 显示 md5 加密后的消息
rosmsg package 显示某个功能包下的所有消息
rosmsg packages 列出包含消息的功能包

常用命令演示:

rosmsg package turtlesim     # rosmsg package 包名,列出某个包下的所有msg
rosmsg show turtlesim/Pose  # rosmsg show 消息名称,显示消息描述

运行效果如下图所示:


6 rosservice相关命令

rosservice包含用于列出和查询ROSServices的rosservice命令行工具。调用部分服务时,如果对相关工作空间没有配置 path,需要进入工作空间调用 source ./devel/setup.bash ,详细命令如下表:

rosservice命令 作用
rosservice list 显示服务列表
rosservice info 打印服务信息
rosservice type 打印服务类型
rosservice uri 打印服务ROSRPC uri
rosservice find 按服务类型查找服务
rosservice call 使用所提供的args调用服务
rosservice args 打印服务参数

常用命令演示:

rosservice -h                                        # 查看所有service操作
roservice list                                      # 查看 service 列表
rosservice args /spawn                              # 打印服务参数
roservice type /spawn | rossrv show                 # 查看 service 格式并显示数据# roservice call [service] [args],调用 service调用服务,为小乌龟的案例生成一只新的乌龟
rosservice call /spawn "x: 1.0
y: 2.0
theta: 0.0
name: 'turtle2'"
name: "turtle2"

运行效果如下图所示:


7 rossrv相关命令

rossrv是用于显示有关ROS服务类型的信息的命令行工具,如下表:

rossrv命令 作用
rossrv show 显示服务消息详情
rossrv info 显示服务消息相关信息
rossrv list 列出所有服务信息
rossrv md5 显示 md5 加密后的服务消息
rossrv package 列出某个包下所有服务消息
rossrv packages 列出包含服务消息的所有包

常用命令演示:

rossrv list                  # 会列出当前ROS中的所有srv消息
rossrv package turtlesim    # rossrv package 包名,列出某个包下的所有msg
rossrv show turtlesim/Spawn # rossrv show 消息名称,显示消息描述

运行效果如下图所示:


8 rosparam相关命令

rosparam包含rosparam命令行工具,用于使用YAML编码文件在参数服务器上获取和设置ROS参数使用命令行来维护参数服务器,如下表:

rosparam命令 作用
rosparam set param_key param_value 设置参数
rosparam get param_key 显示参数
rosparam load file_name 从外部文件加载参数
rosparam dump filename 保存参数到外部文件
rosparam delete 删除参数
rosparam list 列出所有参数名称

常用命令演示:

rosparam list                        # 列出所有参数
rosparam set name nuaa              # rosparam set [parame_name] [args],设置service parameter
rosparam get name                   # 获得parameter
rosparam delete name                # 删除parameterrosparam load xxx.yaml             # rosparam load [file_name] [namespace],从外部文件加载参数
rosparam dump yyy.yaml              # 将参数写出到外部文件

运行效果如下图所示:


9 rqt相关命令

rqt是一个基于qt开发的可视化工具,拥有扩展性好、灵活易用、跨平台等特点,相关命令如下:

1、rqt_graph

rqt_graph是来显示通信架构,可以通过计算图显示当前有哪些Node和topic在运行,可以直观的看到ROS的通信架构和信息流,方便我们的理解。

2、rqt_plot

rqt_plot将一些参数,尤其是动态参数以曲线的形式绘制出来。当我们在开发时查看机器人的原始数据,我们就能利用rqt_plot将这些原始数据用曲线绘制出来,可以极大的帮助我们了解数据的变化态势,理解数据流的作用,用曲线来显示我们的操作,精确直观。

3、rqt_console

rqt_console里存在一些过滤器,我们可以利用它方便的查到我们需要的日志。

常用命令演示:

rqt_graph                            # 查看系统中运行的计算图
# 图形化显示 topic
rosrun rqt_graph rqt_graph
rosrun rqt_plot rqt_plot

了解更多,请参考:rqt工具箱。


10 rosbag相关命令

rosbag是一套用于记录和回放ROS主题的工具。它旨在提高性能,并避免消息的反序列化和重新排序。rosbag对软件包来操作,一个包是ROS用于存储ROS消息数据的文件格式,rosbag命令可以记录、回放和操作包。指令列表如下:

rosbag命令 作用
rosbag cheak 确定一个包是否可以在当前系统中进行,或者是否可以迁移
rosbag decompress 压缩一个或多个包文件
rosbag filter 解压一个或多个包文件
rosbag fix 在包文件中修复消息,以便在当前系统中播放
rosbag help 获取相关命令指示帮助信息
rosbag info 总结一个或多个包文件的内容
rosbag paly 以一种时间同步的方式回放一个或多个包文件的内容
rosbag record 用指定主题的内容记录一个包文件
rosbag reindex 重新索引一个或多个包文件

常用命令演示:

rosbag record -a -O 目标文件         # 开始录制,并将目标文件保存在当前文件夹
rosbag info 文件名                 # 查看文件
rosbag paly 文件名                 # 回放文件
rosbag record -a                    # 录制所有topic变化

补充:

rosbag通过命令行能够对软件包进行很多的操作,更重要的拥有代码API,可以对包进行重新编写。增加一个ROS API,用于通过服务调用与播放和录制节点进行交互。了解更多,请参考:rosbag使用。

ROS基础篇(四)-- 调试时,常用的命令有哪些相关推荐

  1. Linux基础学习四:Linux常用的命令(非常详细)

    常用的命令  文档帮助命令 help 用法: 命令 --help 示例: dhclient --help man 用法: man 命令 示例:man dhclient空格:下一页b:上一页q:退出   ...

  2. 3D MAX入门篇(1)常用快捷命令及两种基础建模方式

    3D MAX入门篇(1)常用快捷命令及两种基础建模方式 基于图片的对程型模型----画线式建模 1.在界面画一个平面 2.调整平面大小,确认与要插入的图片尺寸一样 3.通过添加样条线绘制出模型的一半 ...

  3. 【QT开发笔记-基础篇】| 第二章 常用控件 | 2.12 表格控件 QTableWidget

    本节对应的视频讲解:B_站_链_接 QTableWidget 是 Qt 中的表格控件,可以行列的形式来展示数据 1. 属性和方法 QTableWidget 有很多属性和方法,完整的可查看帮助文档. 在 ...

  4. Android调试时常用的adb命令

    Android调试时常用的adb命令 1.adb shell am am是Activity Manager的缩写,使用此命令可以从控制台启动Activity.Service,打开或关闭进程,发送广播等 ...

  5. LINUX学习基础篇(十二)痕迹命令

    LINUX学习基础篇(十二)痕迹命令 系统痕迹命令 w命令 who命令 last命令 lastlog命令 lastb命令 系统痕迹命令 系统中有一些重要的痕迹日志文件,如/var/log/wtmp./ ...

  6. Linux基础(7)Linux常用解压缩命令

    Linux基础(1)Linux简介 Linux基础(2)VMware虚拟机系统安装 Linux基础(3)Linux常用文件处理命令 Linux基础(4)Linux常用权限管理命令 Linux基础(5) ...

  7. 数据分析师的编程之旅——Python基础篇(8)常用内置模块文档

    作者:李禹锋,重庆芝诺大数据分析有限公司数据挖掘工程师. 先来一点题外话,说明一下为什么要改名字.首先呢,许多业外人士对于程序员和工程师都有个误解,虽然都自嘲是码农,但并不代表程序员就是一个社会地位低 ...

  8. [项目过程中所遇到的各种问题记录]工具篇——.NET开发时常用的工具类库

    在日常开发的过程当中我们总是会根据项目的开发需求将一些公用的类或者方法进行抽象封装,这些类或方法的抽象封装可能是基于某个项目或者多个项目,最常见的应该就是SQLHelper了,这些类库在实际使用的过程 ...

  9. Java基础---Markdown基本语法和常用dos命令

    学习第二天 其实是学了好几天,写第二篇文章 先来写一下Markdown的语法吧 一.Markdown 1.1首先需要创建Markdown文件 ​ 上一篇讲了如何安装Markdown文本编辑器,所以我的 ...

  10. 【3】web安全入门篇-渗透测试中常用的命令

    1.linux命令 渗透测试中常用的linux命令 上面博客提到的基本都能满足需求 2.cmd命令 常用的cmd命令 cmd命令和linux命令常用的对于web入门的萌新可以看看上面博客,多敲一敲用的 ...

最新文章

  1. USACO Barn Repair
  2. 【c语言】蓝桥杯基础练习 01字串
  3. VS2013安装MVC5
  4. 自动登录DISCUZ,发帖的代码(部分)
  5. HIVE 查询显示列名 及 行转列显示
  6. java native code_原生代码(native code)
  7. 怎样学习和阅读技术书籍?
  8. OpenCV3学习(10.4)基于KNN的背景/前景分割算法BackgroundSubtractorKNN算法
  9. 洛谷——P1100 高低位交换
  10. 什么是IDS/IPS?
  11. python伪装浏览器https_Python3 伪装浏览器的方法示例
  12. linux中安装多个mysql_Linux环境中安装多个MySQL服务笔记
  13. linux下用户态程序coredump生成方法
  14. icepak计算机机箱热仿真,基于ANSYSIcepak的密闭机箱散热仿真分析.PDF
  15. 概率论的学习和整理--番外5:等差数列求和公式,等比数列求和公式,以及比较 数列,函数,级数等相似概念
  16. 怎么删除计算机病毒,电脑中病毒删不掉怎么办?
  17. 动画入门(登陆动画)
  18. 宾果消消消鸿蒙版,宾果消消消官方版
  19. Ian Goodfellow回忆GAN诞生故事:几杯啤酒喝出“20年来最酷的深度学习想法”
  20. idea debug报错无法调试 Disconnected from the target VM

热门文章

  1. 思科ccnp网络工程师必看SDh工作原理
  2. 网络防火墙开发二三事 转
  3. android启动第三方浏览器问题
  4. 论坛源码推荐(12月24日):OS X原生开源游戏模拟器OpenEmu iOS 7条形码扫描器
  5. Centos搭建socks5代理服务器
  6. Command Line Tools下载不下来,则可以去官网下载
  7. 可以在搜索中突出显示网页上的多个单词_使用片段嵌入进行文档搜索
  8. 数据中心机房搬迁实施方案流程
  9. AutoRunner安装出错怎么解决
  10. html动态背景个人引导页,Web前端动态背景特效合集