机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时,如何获取对方的话题、以及消息载体的格式呢?
在 ROS 同提供了一些实用的命令行工具,可以用于获取不同节点的各类信息,常用的命令如下:
作用
rosnode ping 测试到节点的连接状态
rosnode list 列出活动节点
rosnode info 打印节点信息
rosnode machine 列出指定设备上节点
rosnode kill 杀死某个节点
rosnode cleanup 清除不可连接的节点
rosnode ping:测试到节点的连接状态
rosnode info:打印节点信息(重要常用)
rosnode cleanup:清除无用节点,启动乌龟节点,然后 ctrl + c 关闭,该节点并没被彻底清除,可以使用 cleanup 清除节点
roscore
cd demo01_ws/
source ./devel/setup.bash
rosrun plumbing_pub_sub demo03_pub_person
cd demo01_ws/
source ./devel/setup.bash
rosrun plumbing_pub_sub demo04_sub_person
rostopic bw 显示主题使用的带宽
rostopic delay 显示带有 header 的主题延迟
rostopic echo 打印消息到屏幕
rostopic find 根据类型查找主题
rostopic hz 显示主题的发布频率
rostopic info 显示主题相关信息
rostopic list 显示所有活动状态下的主题
rostopic pub 将数据发布到主题
rostopic type 打印主题类型
cd demo01_ws/
source ./devel/setup.bash
rosrun plumbing_pub_sub demo03_pub_person
rostopic pub /主题名称 消息类型 消息内容
rostopic pub /chatter std_msgs gagaxixi
roscore
cd demo01_ws/
source ./devel/setup.bash
rosrun plumbing_pub_sub demo03_pub_person
cd demo01_ws/
source ./devel/setup.bash
rosrun plumbing_pub_sub demo04_sub_person
rosservice args 打印服务参数
rosservice call 使用提供的参数调用服务
rosservice find 按照服务类型查找服务
rosservice info 打印有关服务的信息
rosservice list 列出所有活动的服务
rosservice type 打印服务类型
rosservice uri 打印服务的 ROSRPC uri
rosservice args /spawn
x y theta name
rosservice call /spawn "x: 1.0
y: 2.0
theta: 0.0
name: 'xxx'"
name: "xxx"
//生成一只叫 xxx 的乌龟
roscore
cd demo01_ws/
source ./devel/setup.bash
rosrun plumbing_server_client demo01_server
rosservice
rosmsg show 显示消息描述
rosmsg info 显示消息信息
rosmsg list 列出所有消息
rosmsg md5 显示 md5 加密后的消息
rosmsg package 显示某个功能包下的所有消息
rosmsg packages 列出包含消息的功能包
//rosmsg package 包名
rosmsg package turtlesim
//rosmsg show 消息名称
rosmsg show turtlesim/Pose
结果:
float32 x
float32 y
float32 theta
float32 linear_velocity
float32 angular_velocity
roscore
cd demo01_ws/
source ./devel/setup.bash
rosrun plumbing_pub_sub demo03_pub_person
cd demo01_ws/
source ./devel/setup.bash
rosrun plumbing_pub_sub demo04_sub_person
rosmsg
rossrv show 显示服务消息详情
rossrv info 显示服务消息相关信息
rossrv list 列出所有服务信息
rossrv md5 显示 md5 加密后的服务消息
rossrv package 显示某个包下所有服务消息
rossrv packages 显示包含服务消息的所有包
//rossrv package 包名
rossrv package turtlesim
//rossrv show 消息名称
rossrv show turtlesim/Spawn
结果:
float32 x
float32 y
float32 theta
string name
---
string name
roscore
cd demo01_ws/
source ./devel/setup.bash
rosrun plumbing_server_client demo01_server
rossrv
rosparam set 设置参数
rosparam get 获取参数
rosparam load 从外部文件加载参数
rosparam dump 将参数写出到外部文件
rosparam delete 删除参数
rosparam list 列出所有参数
rosparam list
//默认结果
/rosdistro
/roslaunch/uris/host_helloros_virtual_machine__42911
/rosversion
/run_id
rosparam set name huluwa
//再次调用 rosparam list 结果
/name
/rosdistro
/roslaunch/uris/host_helloros_virtual_machine__42911
/rosversion
/run_id
rosparam delete:删除参数
rosparam load(先准备 yaml 文件):从外部文件加载参数
rosparam dump:将参数写出到外部文件
roscore
rosparam