【ROS】ROS1工具详解
1、roscore
1.1 说明
运行roscore,将会启动三个功能:ROS Master主节点、ROS参数服务器和记录ROS日志输出节点
1.2 用法
roscore [可选参数]
1.3 参数详解
-
-h, --help,帮助信息
-
-p PORT, --port=PORT,指定端口号,默认是11311,如果指定了端口,需要设置环境变量ROS_MASTER_URI,让其它节点知道这个端口,例如: export ROS_MASTER_URI=http://YourPC:1234/
-
-v,打印详细信息 ,加上-v,启动时多了如下几行
… loading XML file [/opt/ros/melodic/etc/ros/roscore.xml]
… executing command param [rosversion roslaunch]
Added parameter [/rosversion]
… executing command param [rosversion -d]
Added parameter [/rosdistro]
Added core node of type [rosout/rosout] in namespace [/] -
-w NUM_WORKERS, --numworkers=NUM_WORKERS,自定义工作线程个数
-
-t TIMEOUT, --timeout=TIMEOUT,自定义socket连接超时时间,单位秒
-
–master-logger-level=MASTER_LOGGER_LEVEL设置日志等级(‘debug’, ‘info’, ‘warn’, ‘error’, ‘fatal’)
-
–sigint-timeout=SIGINT_TIMEOUT,使用SIGINT信号来杀死核心core的超时时间,单位秒
-
–sigterm-timeout=SIGTERM_TIMEOUT,使用SIGTERM信号来杀死核心core的超时时间,单位秒
2、rosrun
2.1 说明
rosrun先加载包,然后尝试在包里找可执行程序;如果找到了就运行这个可执行程序
2.2 用法
rosrun [--prefix cmd] [--debug] 包名 可执行程序 [可执行程序的参数]
2.3 参数详解
-
–debug,打印调试信息,例如在运行小乌龟时,添加–debug后,增加的信息如下:
$ rosrun --debug turtlesim turtlesim_node
[rosrun] Looking in catkin libexec dirs:
/opt/ros/melodic/lib/turtlesim
/opt/ros/melodic/share/turtlesim
[rosrun] Looking in rospack dir: /opt/ros/melodic/share/turtlesim
[rosrun] Searching for turtlesim_node with permissions /111
[rosrun] Running /opt/ros/melodic/lib/turtlesim/turtlesim_node -
–prefix,rosrun调用exec执行命令,例如使用gdb调试时
$ rosrun --prefix ‘gdb -ex run --args’ turtlesim turtle_teleop_key
GNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1
……
Use arrow keys to move the turtle. ‘q’ to quit.
Thread 1 “turtle_teleop_k” received signal SIGINT, Interrupt.
……
(gdb)
3、rostopic
3.1 说明
rostopic用来打印ROS的话题信息
例如:列出小乌龟的话题
~$ rostopic list
/rosout
/rosout_agg
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose
3.2 用法
rostopic后跟子命令,子命令如下:
- rostopic bw 按主题显示使用的带宽
- rostopic delay 显示主题相对于时间戳的延迟
- rostopic echo 将消息打印到屏幕
- rostopic find 按类型查找主题
- rostopic hz 显示主题的发布率
- rostopic info 打印有关活动主题的信息
- rostopic list 列出活动主题
- rostopic pub 将数据发布到主题
- rostopic type 打印主题或字段类型
3.3 参数详解
3.3.1 rostopic bw
- -h 打印帮助信息,下面的命令相同,不再赘述
- -w 设置统计次数,当超过这个次数后,就不再打印带宽信息,默认是100
3.3.2 rostopic delay
- -w 设置统计次数,当超过这个次数后,就不再打印延时信息,默认是100
- –tcpnodelay,使用TCP_NODELAY,禁用Nagle算法,Nagle算法的作用是减少小包的数量
3.3.3 rostopic echo
- -b BAGFILE, --bag=BAGFILE,从 .bag文件中获取信息
- -p,使用友好的格式打印
-w NUM_WIDTH,固定宽度的数值
–filter=FILTER-EXPRESSION,筛选信息
–nostr 不显示非字符串
–noarr 不现实数组
-c, --clear打印下一条时,先清理屏幕
-a, --all,显示.bag文件的所有信息,必须和-b一起使用
-n COUNT,显示指定个数的信息
–offset,显示和当前时间的偏移,单位秒
3.3.4 rostopic hz
用法:rostopic hz [options] /topic_0 [/topic_1 [topic_2 […]]]
参数:
- -w WINDOW, --window=WINDOW,统计屏率
- –filter=EXPR,过滤
- –wall-time使用现实时间
- –tcpnodelay,使用TCP_NODELAY,禁用Nagle算法,Nagle算法的作用是减少小包的数量
3.3.5 rostopic list
- -b BAGFILE, --bag=BAGFILE 列出在 .bag 中的主题
- -v, --verbose列出主题的详细信息
- -p,只列出发布者
- -s,只列出订阅者
- –host列出主机名
~$ rostopic list --host
Host [lesen-system-product-name]:/rosout/rosout_agg
3.3.6 rostopic pub
用法: rostopic pub /topic type [args…]
参数:
- -v,打印详细信息
- -r RATE, --rate=RATE,发布速率
- -1, --once ,发布一次然后退出
- -f FILE, --file=FILE,从YAML文件中读取
- -l, --latch,使能锁存
- -s, --substitute-keywords,添加关键字
- –use-rostime使用rostime作为时间戳,否则使用walltime(实际时间)
4、rosservice
4.1 说明
rosservice用来管理ROS本身的服务
4.2 用法
rosservice后跟子命令,子命令如下:
- rosservice args,打印服务参数
- rosservice call,使用提供的参数调用服务
- rosservice find,按服务类型查找服务
- rosservice info,打印有关服务的信息
- rosservice list,列出活动服务
- rosservice type,打印服务类型
- rosservice uri,打印服务ROSRPC的uri
5、rosnode
5.1 说明
rosnode用来打印节点信息
5.2 用法
rosnode后跟子命令,子命令如下:
- rosnode ping,测试是否能和节点ping通
- rosnode list,列出活跃的节点
- rosnode info,打印节点信息
- rosnode machine,列出在特定计算机上运行的节点
- rosnode kill,杀死指定的节点
- rosnode cleanup,清除无法访问节点的注册信息
6、rosparam
6.1 说明
rosparam用从ROS参数服务上获取、设置、删除参数
6.2 用法
rosparam后跟子命令,子命令如下:
- rosparam set,设置参数
- rosparam get,获取参数
- rosparam load,从文件中加载参数
- rosparam dump,将参数写入文件
- rosparam delete,删除参数
- rosparam list,列出所有参数的名字
7、rosmsg
7.1 说明
rosmsg用于显示ROS消息的信息
7.2 用法
rosmsg后跟子命令,子命令如下:
- rosmsg show,显示消息内容
- rosmsg info,列出消息的别名
- rosmsg list,列出所有的消息
- rosmsg md5,显示消息的md5值
- rosmsg package,列出指定包中的消息
- rosmsg packages,列出指定多个包中的消息
8、rossrv
8.1 说明
rossrv用于显示ROS的服务类型
8.2 用法
rossrv后跟子命令,子命令如下:
- rossrv show,显示服务描述
- rossrv info,显示服务别名
- rossrv list,列出所有的服务类型
- rossrv md5,显示服务类型md5值
- rossrv package,列出指定包的服务类型
- rossrv packages,列出指定多个包的服务类型
9、robbag
9.1 说明
bag是ROS中的一种文件格式,用于存储ROS消息数据。rosbag命令可以记录、回放和操作bag。
9.2 用法
robbag后跟子命令,子命令如下:
- robbag check,确定一个bag是否可以在当前系统中播放,或者是否可以迁移
- robbag compress,压缩一个或多个bag文件
- robbag decompress,解压缩一个或多个bag文件
- robbag decrypt,解密缩一个或多个bag文件
- robbag encrypt,加密缩一个或多个bag文件
- robbag filter,过滤bag里的指定内容
- robbag fix,修复bag文件中的消息,以便在当前系统中播放
- robbag info,总结一个或多个bag文件的内容
- robbag play,以时间同步的方式播放一个或多个bag文件的内容
- robbag record,记录指定主题的bag文件
- robbag reindex,重新索引一个或多个bag过滤器
10、rospack
10.1 说明
rospack用于查看包信息
10.2 用法
- -q,不输出错误报告
rospack后跟子命令,子命令如下:
- rospack cflags-only-I [–deps-only] [package]
- rospack cflags-only-other [–deps-only] [package]
- rospack depends [package] (alias: deps)
- rospack depends-indent [package] (alias: deps-indent)
- rospack depends-manifests [package] (alias: deps-manifests)
- rospack depends-msgsrv [package] (alias: deps-msgsrv)
- rospack depends-on [package]
- rospack depends-on1 [package]
- rospack depends-why --target= [package] (alias: deps-why)
- rospack depends1 [package] (alias: deps1)
- rospack export [–deps-only] --lang= --attrib= [package]
- rospack find [package]
- rospack langs
- rospack libs-only-L [–deps-only] [package]
- rospack libs-only-l [–deps-only] [package]
- rospack libs-only-other [–deps-only] [package]
- rospack list
- rospack list-duplicates
- rospack list-names
- rospack plugins --attrib= [–top=] [package]
- rospack profile [–length=] [–zombie-only]
- rospack rosdep [package] (alias: rosdeps)
- rospack rosdep0 [package] (alias: rosdeps0)
- rospack vcs [package]
- rospack vcs0 [package]