最近学ROS,想对可能有用的命令(加粗)做个笔记
节点命令:rosnode
rosnode ping 测试到节点的连接状态
rosnode list 列出活动节点
rosnode info 打印节点信息
rosnode machine 列出指定设备上节点
rosnode kill 杀死某个节点
rosnode cleanup 清除不可连接的节点
话题通信相关:
1、rostopic
用于显示有关ROS 主题的调试信息,包括发布者,订阅者,发布频率和ROS消息。
rostopic list 显示所有活动状态下的主题
rostopic info 显示主题相关信息 --包含–> rostopic type 打印主题类型
rostopic echo 打印消息到屏幕
rostopic delay 显示带有 header 的主题延迟
rostopic find 根据类型查找主题
rostopic pub 将数据发布到主题
rostopic hz 显示主题的发布频率
rostopic bw 显示主题使用的带宽
2、rosmsg
用于显示有关 ROS消息类型的 信息的命令行工具。
rosmsg list 列出所有消息 (搭配 | grep -i 更好哦)
rosmsg package 显示某个功能包下的所有消息
rosmsg packages 列出包含消息的功能包
rosmsg md5 显示 md5 加密后的消息
就我目前来看,这两个输出是一样的,各位谁知道区别欢迎评论区留言呀!!!
rosmsg show 显示消息描述
rosmsg info 显示消息信息
服务通信相关
1、rosservice
用于列出和查询ROSServices
调用部分服务时,如果对相关工作空间没有配置 path,需要进入工作空间调用 source ./devel/setup.bash
rosservice list 列出所有活动的服务
rosservice info 打印有关服务的信息 (包含下面三条)
rosservice uri 打印服务的 ROSRPC uri
rosservice type 打印服务类型
rosservice args 打印服务参数
rosservice call 使用提供的参数调用服务(仅用于简单测试,个人认为不如 rosrun ***/client argv1 argv2 ……的好)
rosservice find 按照服务类型查找服务
2、rossrv
用于显示有关ROS服务类型的信息的命令行工具,与 rosmsg 使用语法高度雷同。
rossrv list 列出所有服务信息(搭配 | grep -i 更好哦)
rossrv package 显示某个包下所有服务消息
rossrv packages 显示包含服务消息的所有包
rossrv md5 显示 md5 加密后的服务消息
依旧是看不到区别,还请评论区大佬教我!
rossrv show 显示服务消息详情
rossrv info 显示服务消息相关信息
参数服务:rosparam
(需要cd到workspace才能正常使用)
rosparam set 设置参数
rosparam get 获取参数
rosparam delete 删除参数
rosparam load 从外部文件加载参数
rosparam dump 将参数写出到外部文件
rosparam list 列出所有参数
rosparm get / 列出所有参数及其值 (自觉比list 好用)
roslaunch
启动launch文件
roslaunch 包名 launch文件名
launch文件格式:
<launch>
<!-- 包含 -->
<include file = "$(find 包名)/launch/xxx.launch" />
<!-- 其他节点 -->
<node pkg="helloworld" type="demo_hello" name="hello" output="screen" />
<node pkg="turtlesim" type="turtlesim_node" name="t1"/>
<node pkg="turtlesim" type="turtle_teleop_key" name="t1_key1" />
</launch>
文件存储于
功能包名 /launch/ **.launch
pkg="包名" | 节点所属的包 |
type="nodeType" | 节点类型(与之相同名称的可执行文件) |
name="nodeName" | 节点名称(在 ROS 网络拓扑中节点的名称) |
args=“xxx xxx xxx” (可选) | 将参数传递给节点 |
machine=“机器名” (可选) | 在指定机器上启动节点 |
respawn="true"or “false” (可选) | 如果节点退出,是否自动重启 |
respawn_delay=“N” (可选) | 如果 respawn 为 true, 那么延迟 N 秒后启动节点 |
required="true"or “false” (可选) | 该节点是否必须,如果为 true,那么如果该节点退出,将杀死整个 roslaunch |
ns=“xxx” (可选) | 在指定命名空间 xxx 中启动节点,用于避免重名问题 |
clear_params="true " or “false” (可选) | 在启动前,删除节点的私有空间的所有参数(慎用) |
output="log“ or “screen” (可选) | 日志发送目标,可以设置为 log 日志文件,或 screen 屏幕,默认是 log |