ROS机器人操作系统命令汇总笔记
ROS shell 命令ROS 执行命令ROS 信息命令ROS catkin 命令ROS 功能包命令rosnode ROS节点rostopic ROS话题rosservice ROS服务rosparam ROS参数rosmsg ROS消息信息rossrv ROS服务信息rosbag ROS日志信息
code review!
文章目录
-
- 1.ROS shell 命令
- 2.ROS 执行命令
- 3.ROS 信息命令
- 4.ROS catkin 命令
- 5.ROS 功能包命令
- 6.rosnode ROS节点
- 7.rostopic ROS话题
- 8.rosservice ROS服务
- 9.rosparam ROS参数
- 10.rosmsg ROS消息信息
- 11.rossrv ROS服务信息
- 12.rosbag ROS日志信息
- 13.只播放感兴趣的topic
- 14.只记录感兴趣的topic,(大写的O为完全名字,小写的o为名字前缀+自动生成的日期)
- 15.一次性读取xxxbag中的所有消息并将内容输出到xxx.yaml文件
- 16.环播放bag命令
- 17.命令行启动ROS节点,同时对节点重命名
- 18.将ROS数据包中的后10秒数据提取为一个新的数据包
- 19.rqt_bag
- 20.rosbag record的--split和--duration参数:根据文件大小或时间自动将记录的数据分割成多个文件进行录制
- 21.rosbag play -s:指定从 bag 文件的哪个时间点开始播放
- 22.rosbag play -u:指定要播放多长时间段的数据
- 23.plotjuggler 包安装的注意点
1.ROS shell 命令
2.ROS 执行命令
3.ROS 信息命令
4.ROS catkin 命令
5.ROS 功能包命令
6.rosnode ROS节点
7.rostopic ROS话题
8.rosservice ROS服务
9.rosparam ROS参数
10.rosmsg ROS消息信息
11.rossrv ROS服务信息
12.rosbag ROS日志信息
13.只播放感兴趣的topic
rosbag play bagpath/bag_name.bag --topic topic1_name topic2_name topicN_name
14.只记录感兴趣的topic,(大写的O为完全名字,小写的o为名字前缀+自动生成的日期)
rosbag record -o bagpath/new_bag_name.bag topic1_name topic2_name topicN_name
15.一次性读取xxxbag中的所有消息并将内容输出到xxx.yaml文件
ros_readbagfile xxxbag | tee xxx.yaml
16.环播放bag命令
rosbag play -l <bagfile>
17.命令行启动ROS节点,同时对节点重命名
ROS命令 __name:=my_record_node
18.将ROS数据包中的后10秒数据提取为一个新的数据包
首先,使用rosbag info
命令获取数据包的起始时间和终止时间。可以通过-y
选项来输出时间信息,然后使用grep
命令来提取所需的时间值,例如:
rosbag info -y your_bag_file.bag | grep "start:"
rosbag info -y your_bag_file.bag | grep "end:"
上述命令会输出数据包的起始时间和终止时间。
要将ROS数据包中的后10秒数据提取为一个新的数据包,可以结合使用rosbag info
和rosbag filter
命令来实现。以下是一个将这两个命令组合在一行中的示例:
rosbag filter your_bag_file.bag filtered_bag_file.bag "t.to_sec() >= $(rosbag info -y your_bag_file.bag | grep "end:" | awk '{print $2}' | awk -F '.' '{print $1}') - 10"
这个命令会读取输入的your_bag_file.bag
数据包,并将满足时间条件的消息写入输出的filtered_bag_file.bag
。
解释一下这个命令的组成部分:
rosbag info -y your_bag_file.bag | grep "end:" | awk '{print $2}' | awk -F '.' '{print $1}'
:这部分命令会获取输入数据包的终止时间,并将其转换为整数形式。首先,rosbag info -y your_bag_file.bag
获取数据包的时间信息,grep "end:"
筛选出终止时间行,awk '{print $2}'
提取出时间值,awk -F '.' '{print $1}'
移除小数部分。t.to_sec() >= $(...) - 10
:这部分命令会将获取的终止时间减去10秒,并将结果作为过滤条件传递给rosbag filter
命令。
19.rqt_bag
20.rosbag record的–split和–duration参数:根据文件大小或时间自动将记录的数据分割成多个文件进行录制
rosbag record
提供了一些有用的参数,用于管理录制数据的大小和时长。这些参数允许用户根据文件大小或时间自动将记录的数据分割成多个文件。以下是 --split
和 --duration
参数的用法:
--split
参数
--split
参数用于根据记录的数据大小自动将bag文件分割成多个较小的文件,以避免产生一个非常大的文件。当文件达到指定的大小时,rosbag record
会自动关闭当前的bag文件,并开始写入一个新的bag文件。
使用示例:
rosbag record -a --split --size=1024
这个命令会记录所有的话题,当bag文件大小达到1024MB时,自动开始一个新的文件。使用 --split
时,生成的文件名会自动包含一个序列号。
--duration
参数
--duration
参数用于根据时间自动分割bag文件。这对于在长时间记录中管理数据文件非常有用。当指定的时间段过去后,rosbag record
会关闭当前的bag文件,并开始写入一个新的bag文件。
使用示例:
rosbag record -a --split --duration=30m
这个命令会记录所有的话题,每30分钟自动将记录分割成一个新的文件。--duration
参数接受的时间格式可以是秒(s),分钟(m),小时(h)等。
注意:可以同时使用 --split
和 --duration
参数来在两个条件中的任意一个达成时分割文件。这可以使得bag文件的管理既不会因为文件过大而不便处理,也不会因为时间过长而数据过多。
示例:
rosbag record -a --split --size=1024 --duration=30m
使用这个命令,如果bag文件大小达到1024MB或者记录时间达到30分钟,rosbag record
将开始写入一个新的文件。
请注意,具体参数的使用可能会随着ROS版本的不同而有所变化,所以建议查看所使用的ROS版本的 rosbag record
文档来获取最准确的信息。
21.rosbag play -s:指定从 bag 文件的哪个时间点开始播放
例如,如果你有一个名为 my_ros_data.bag
的 bag 文件,并且你想跳过开始的前10秒的数据,你可以这样使用 -s
参数:
rosbag play -s 10 my_ros_data.bag
这条命令会从 bag 文件的第10秒开始播放记录的数据。这对于跳过不感兴趣的数据或者直接跳到特定事件发生的时间点非常有用。
请注意,rosbag play
命令还有其他参数可以与 -s
结合使用,以更精细地控制播放过程,例如 -u
(用于指定播放多长时间的数据),-r
(用于改变播放速度),以及 --loop
(用于循环播放 bag 文件) 等。
22.rosbag play -u:指定要播放多长时间段的数据
这个参数通常与 -s
参数结合使用,以指定一个精确的时间窗口来播放bag文件中的数据。
例如,如果你想从 bag 文件的开始播放前 30 秒的数据,你可以使用以下命令:
rosbag play -u 30 <bagfile>
如果你想跳过开始的 15 秒,并且只播放接下来的 10 秒数据,你可以结合使用 -s
和 -u
参数:
rosbag play -s 15 -u 10 <bagfile>
这条命令会从 bag 文件的第 15 秒开始播放,并在 10 秒后停止。
-u
参数非常适合用于分析或调试 bag 文件的特定部分,也可以用于演示时只展示感兴趣的一段记录。
记住,rosbag play
的其它参数可以用来调整播放的行为,例如 -r
改变播放速度,--clock
发布模拟时钟消息等。每个参数都是独立的,可以根据你的需求组合使用。
23.plotjuggler 包安装的注意点
-
sudo apt-get install ros-melodic-plotjuggler
- 安装的包:
plotjuggler
是一个用于数据可视化和调试的工具,可以以图形化界面实时观察和分析数据。 - 功能:
- 安装了
PlotJuggler
的核心功能。 - 这是该工具的基础包,包含其主要的 GUI 界面和插件系统。
- 它本身是一个独立的软件,可以在非 ROS 环境下使用。
- 安装了
- 安装的包:
-
sudo apt-get install ros-melodic-plotjuggler-ros
- 安装的包:
plotjuggler-ros
是PlotJuggler
的 ROS 扩展插件。 - 功能:
- 提供了与 ROS 系统的集成功能,使
PlotJuggler
能够直接订阅 ROS 的话题(topics),并实时读取和显示 ROS 数据。 - 如果你希望在 ROS 项目中使用
PlotJuggler
来可视化 ROS 的话题数据(如传感器数据或自定义数据流),需要安装此插件。
- 提供了与 ROS 系统的集成功能,使
- 安装的包:
-
sudo apt-get install ros-melodic-plotjuggler-msgs ros-melodic-plotjuggler-ros
- 安装的包:
ros-melodic-plotjuggler-msgs
:提供了支持PlotJuggler
和 ROS 数据交互的专用消息类型。ros-melodic-plotjuggler-ros
:同第二条命令,安装 ROS 集成功能。
- 功能:
- 通过安装
ros-melodic-plotjuggler-msgs
,你可以定义、解析和可视化自定义的消息类型(ROS messages)。 - 这些消息类型允许
PlotJuggler
处理更复杂的 ROS 数据结构,而不仅限于标准的数据类型。
- 通过安装
- 安装的包:
总结区别与用途:
命令 | 功能 | 是否需要 ROS |
---|---|---|
sudo apt-get install ros-melodic-plotjuggler |
安装 PlotJuggler 的核心功能,用于数据可视化和调试。 |
否(独立工具) |
sudo apt-get install ros-melodic-plotjuggler-ros |
安装 ROS 插件,使 PlotJuggler 能够订阅 ROS 的话题并实时显示 ROS 数据。 |
是 |
sudo apt-get install ros-melodic-plotjuggler-msgs ros-melodic-plotjuggler-ros |
安装 ROS 插件和消息类型支持,允许处理自定义的 ROS 消息类型,提供更高级的 ROS 数据可视化功能。 | 是 |
安装顺序建议:
-
如果你只需要
PlotJuggler
的 GUI 数据可视化功能,可以只安装:sudo apt-get install ros-melodic-plotjuggler
-
如果你需要在 ROS 项目中使用,建议同时安装 ROS 插件:
sudo apt-get install ros-melodic-plotjuggler ros-melodic-plotjuggler-ros
-
如果你需要处理复杂的 ROS 消息类型(如自定义消息),需要安装:
sudo apt-get install ros-melodic-plotjuggler-msgs ros-melodic-plotjuggler-ros

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)