ROS系统也是通过命令行操作,总结了下平时工作中使用的命令工具,以后使用多会陆续添加.

查看ROS_PACKAGE_PATH环境变量

$ echo $ROS_PACKAGE_PATH
/home/saneri/catkin_ws/src:/opt/ros/kinetic/share

roscore  命令是你在运行所有ROS程序前首先要运行的命令。

$ roscore

rosrun 命令
rosrun 允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径)。

用法:

$ rosrun [package_name] [node_name]

现在我们可以运行turtlesim包中的 turtlesim_node节点,你会看到打开了一个 turtlesim 窗口:

$ rosrun turtlesim turtlesim_node

rosls 命令
rosls是rosbash命令集中的一部分,它允许你直接按软件包的名称而不是绝对路径执行ls命令(罗列目录).

用法:
# rosls  [ 本地包名称[/子目录] ]

示例:

$ rosls beginner_tutorials/
CMakeLists.txt include package.xml src

roscd 命令
roscd是rosbash命令集中的一部分,它允许你直接切换(cd)工作目录到某个软件包或者软件包集当中。
用法:
# roscd [ 本地包名称[/子目录] ]

示例:

saneri@localhost:~$ roscd roscpp
saneri@localhost:/opt/ros/kinetic/share/roscpp$ pwd
/opt/ros/kinetic/share/roscpp

roscd log命令
使用roscd log可以切换到ROS保存日记文件的目录下。需要注意的是,如果你没有执行过任何ROS程序,系统会报错说该目录不存在。

如果你已经运行过ROS程序,那么可以尝试:

$ roscd log

rosnode 命令
rosnode 显示当前运行的ROS节点信息

rosnode list                  获得运行节点列表
rosnode info node-name 获得特定节点的信息
rosnode ping node-name 测试节点是否连通
rosnode kill node-name 终止节点

rosed 命令
rosed 是 rosbash 的一部分。利用它可以直接通过package名来获取到待编辑的文件而无需指定该文件的存储路径了。
使用方法

$ rosed [package_name] [filename]

例子:

$ rosed roscpp Logger.msg

这个实例展示了如何编辑roscpp package里的Logger.msg文件。

rospack 命令
rospack允许你获取软件包的有关信息

用法:
# rospack find [包名称]
实例:
#要找到一个软件包的目录,使用 rospack find命令

$ rospack find roscpp
/opt/ros/kinetic/share/roscpp

$ rospack list                  #显示出当前的包信息

$ rospack depends1 beginner_tutorials        #显示当前包的一级依赖

$ rospack depends beginner_tutorials     #显示当前包的所有依赖

rostopic 命令
rostopic命令工具能让你获取有关ROS话题的信息。
你可以使用帮助选项查看rostopic的子命令:

$ rostopic -h
Commands:
rostopic bw display bandwidth used by topic(显示主题使用的带宽)
rostopic delay display delay of topic from timestamp in header(从标题中的时间戳显示主题的延迟)
rostopic echo print messages to screen(将消息打印到屏幕)
rostopic find find topics by type(按类型查找主题)
rostopic hz display publishing rate of topic(显示主题的发布率)
rostopic info print information about active topic(打印有关活动主题的信息)
rostopic list list active topics(列出活动主题)
rostopic pub publish data to topic(将数据发布到主题)
rostopic type print topic or field type(打印主题或字段类型)

使用 rostopic list
rostopic list能够列出所有当前订阅和发布的话题,让我们查看一下list子命令需要的参数.

$ rostopic list -h
Usage: rostopic list [/namespace] Options:
-h, --help show this help message and exit(显示此帮助消息并退出)
-b BAGFILE, --bag=BAGFILE
list topics in .bag file(列出.bag文件中的主题)
-v, --verbose list full details about each topic(列出每个主题的完整详细信息)
-p list only publishers(仅列出发布商)
-s list only subscribers(仅列出订阅者)
--host group by host name(按主机名分组)

在rostopic list 中使用 verbose 选项,这会显示出有关所发布和订阅的话题及其类型的详细信息。

$ rostopic list -v

Published topics:
* /turtle1/color_sensor [turtlesim/Color] 1 publisher
* /turtle1/cmd_vel [geometry_msgs/Twist] 1 publisher
* /rosout [rosgraph_msgs/Log] 3 publishers
* /rosout_agg [rosgraph_msgs/Log] 1 publisher
* /turtle1/pose [turtlesim/Pose] 1 publisher Subscribed topics:
* /turtle1/cmd_vel [geometry_msgs/Twist] 1 subscriber
* /rosout [rosgraph_msgs/Log] 1 subscriber
* /statistics [rosgraph_msgs/TopicStatistics] 1 subscriber

仅列出发布者

$ rostopic list -p
/rosout
/rosout_agg
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose

仅列出订阅者

$ rostopic list -s
/rosout
/statistics
/turtle1/cmd_vel

rostopic echo 可以显 示在某个话题上发布的数据.

$ rostopic echo /rosout_agg

rostopic type 命令用来查看所发布话题的消息类型。

$ rostopic type /turtle1/color_sensor
turtlesim/Color
$ rostopic type /turtle1/cmd_vel
geometry_msgs/Twist

我们可以使用rosmsg命令来查看消息的详细情况。

$ rosmsg show geometry_msgs/Twist
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z

使用 rostopic pub
rostopic pub可以把数据发布到当前某个正在广播的话题上。
用法:

$ rostopic pub [topic] [msg_type] [args]

实例:

$ rostopic list                    #查出所有rostopic
/rosout
/rosout_agg
/statistics
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose saneri@localhost:~$ rostopic type /turtle1/cmd_vel #查类型
geometry_msgs/Twist $ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'

以上命令会发送一条消息给turtlesim,告诉它以2.0大小的线速度和1.8大小的角速度开始移动。

$ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'

这条命令以1Hz的频率发布速度命令到速度话题上。

使用 rostopic hz
rostopic hz命令可以用来查看数据发布的频率。
用法:

rostopic hz [topic]

实例:

$ rostopic hz /turtle1/pose
subscribed to [/turtle1/pose]
average rate: 62.486
min: 0.015s max: 0.017s std dev: 0.00047s window: 60
average rate: 62.476
min: 0.015s max: 0.018s std dev: 0.00045s window: 122
average rate: 62.514
min: 0.014s max: 0.020s std dev: 0.00057s window: 185
average rate: 62.506
min: 0.013s max: 0.020s std dev: 0.00061s window: 248

现在我们可以知道了turtlesim正以大约60Hz的频率发布数据给turtle。我们也可以结合rostopic type和rosmsg show命令来获取关于某个话题的更深层次的信息。

$ rostopic type /turtle1/cmd_vel | rosmsg show
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z

到此我们已经完成了通过rostopic来查看话题相关情况的过程。

rosbag 命令
rosbag 将ROS系统运行过程中的数据录制到一个.bag文件中,然后可以通过回放数据来重现相似的运行过程.退出录制时按Ctrl-C退出该命令,你应该会看到在当前目录下一个以年份、日期和时间命名并以.bag作为后缀的文件。

录制所有发布的话题,其中 -a 选项,该选项表示将当前发布的所有话题数据都录制保存到一个bag文件中。

$ rosbag record -a

回放bag文件以再现系统运行过程

$ rosbag play <your bagfile>

1. 以某一频率发布消息(控制bag包播放的频率) : rosbag play -r 2

2.从某一时间节点开始播放发布消息 : rosbag play -s 2

rosbag info 查看bag文件信息

$ rosbag info <your bagfile>

录制数据子集

rosbag record命令支持只录制某些特别指定的话题到单个bag文件中,这样就允许用户只录制他们感兴趣的话题

在bag文件所在目录下执行以下命令:

$ rosbag record -O 2018-12.bag  /turtle1/command_velocity /turtle1/pose

上述命令中的-O参数告诉rosbag record将数据记录保存到名为2018-12.bag 的文件中,同时后面的话题参数告诉rosbag record只能录制这两个指定的话题。

可以使用rosbag info 2018-12.bag 命令查看录制时指定话题的信息.

也可以只指定bag包的文件名,录制所有数据

$ rosbag record -a -O 2018-12.bag

录取指定topic,并且每五分钟分割一次, -e为正则匹配。

# rosbag record --split --duration=5m -e /radar/back_targets /vehicle_speed /imu_data

如果查看视频,可以执行如下命令,就可以实现视频播放功能

rosrun image_view image_view image:=/camera/front_middle compressed

参考文档:http://wiki.ros.org/cn/ROS/Tutorials

ROS常用命令汇总的更多相关文章

  1. 20145222《信息安全系统设计基础》Linux常用命令汇总

    学习Linux时常用命令汇总 通过Ctrl+f键可在该网页搜索到你想要的命令. Linux中命令格式为:command [options] [arguments] //中括号代表是可选的,即有些命令不 ...

  2. Oozie命令行常用命令汇总[转]

    Oozie命令行常用命令汇总 有时候脚本跑多了就不愿意在OozieWeb端去看脚本的运行情况了.还好Oozie提供了很多命令行命令.能通过命令行直接检索自己想看到的脚本信息.在这里简单进行一下总结.一 ...

  3. vim常用命令汇总

    vim常用命令汇总: http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html 定位 本行第一个字符 ctrl+$ ...

  4. 【Linux】Linux 常用命令汇总

    查看软件xxx安装内容:dpkg -L xxx 查找软件库中的软件:apt-cache search 正则表达式 查找软件库中的软件:aptitude search 软件包 查找文件属于哪个包:dpk ...

  5. Docker笔记:常用命令汇总

    Docker常用命令汇总 启动服务 [root@localhost ~]# service docker start Redirecting to /bin/systemctl start docke ...

  6. [svc][op]vim常用命令汇总

    vim常用命令汇总: 定位 本行第一个字符 ctrl+$ 本行最后一个字符 0gg 文章首行 ctrl+G 文章行尾 u 撤销(Undo) 删除 D 从当前位置删除到行尾 ("d$" ...

  7. ROS常用命令

    ROS常用命令 打印ros环境变量 $ echo $ROS_PACKAGE_PATH 确认环境变量已经设置正确 export | grep ROS 环境变量设置文件 sudo gedit ./.bas ...

  8. ROS常用命令或经常碰到的问题

    本篇博客会随时更新. 一.常用命令 1.添加环境变量 gedit ~/.bashrc 2.ubuntu系统监视器 gnome-system-monitor 二.问题 1.sudo apt-get up ...

  9. 【Ubuntu】常用命令汇总,整理ing

    Ubuntu 常用命令(在此页面中Ctrl+F即可快速查找) 在Ubuntu系统使用过程中,会不断地接触到命令行操作,下面对一些常用的命令进行汇总,方便查找. 1.文件操作 1.1 文件复制拷贝 cp ...

随机推荐

  1. [USACO18JAN]Cow at Large P

    Description: 贝茜被农民们逼进了一个偏僻的农场.农场可视为一棵有 \(N\) 个结点的树,结点分别编号为 \(1,2,\ldots, N\) .每个叶子结点都是出入口.开始时,每个出入口都 ...

  2. python系统编程(一)

    进程的创建-fork 1. 进程 VS 程序 编写完毕的代码,在没有运行的时候,称之为程序 正在运行着的代码,就成为进程 进程,除了包含代码以外,还有需要运行的环境等,所以和程序是有区别的 2. fo ...

  3. MySQL数据库引擎MyISAM和InnoDB的区别介绍

    MySQL数据库有多种存储引擎:比如:MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB).EXAMPLE.FEDERATED.ARCHIVE.CSV.BL ...

  4. 【搜索】传感器 @upcexam6023

    时间限制: 1 Sec 内存限制: 128 MB 题目描述 SR最近新买了一款电子桌游 这个玩具内部是M个围成一圈的传感器.每个传感器都有开和关两种工作状态,分别用1和0表示.显然,从不同的位置触发沿 ...

  5. ssh以root用户远程登录失败

    参考文献: http://blog.csdn.net/lichangzai/article/details/39379153 http://blog.csdn.net/yasi_xi/article/ ...

  6. 【管用】 使用VMtools实现主机Windows与虚拟机Linux文件共享

    实现windows主机与linux虚拟机文件共享,有很多方法,包括使用samba文件服务器等,本文介绍通过vmware虚拟机软件中的vmtools工具来实现文件共享. 一.环境 1.主机:Window ...

  7. USE " cc.exports.* = value " INSTEAD OF SET GLOBAL VARIABLE"

    Cocos2d-x 3.5的lua项目生成后,变成了MVC模式,并且,加入了一个全局变量的检测功能.也就是说,你不小心用了全局变量,他会提示你出错! 比如 local temp = 1 temp = ...

  8. 20170814 新鲜:EChart新增了日历图,要想办法用起来

    比如我可以用下面这个图来展示某个电站的年报,看他之后一年每一天的发电量.  或者是在月报的时候看这个月每天的发电量.这个最妙的时候,他可以通过旁边的图例来筛选,从而产生一个动态的效果.   还有可以在 ...

  9. Map network drive遇到报错“The network folder specified is currently mapped using a different user name and password”,怎么办?

    --------------------------- Windows --------------------------- The network folder specified is curr ...

  10. PHP 实现自动加载

    自动载入主要是省去了一个个类去 include 的繁琐,在 new 时动态的去检查并 include 相应的 class 文件. 先上代码: //index.php <?php class Cl ...