ROS命令(五)

ROS命令(五)

(仅作学习笔记)
1、rostopic: ROS话题
通过在不同的终端窗口中分别运行以下命令来运行turtlesim_node和turtle_teleop_key。

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

rostopic list:列出活动话题
rostopic list命令显示当前正在发送和接收的所有话题的列表。

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

通过将“-v”选项添加到rostopic list命令,可以分开发布话题和订阅话题,并将每个话题的消息类型一起显示。

$ rostopic list -v
Published topics:
* /turtle1/color_sensor [turtlesim/Color] 1 publisher
* /turtle1/cmd_vel [geometry_msgs/Twist] 1 publisher
* /rosout [rosgraph_msgs/Log] 2 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

rostopic echo [话题名称]:实时显示指定话题的消息内容
以下示例实时显示组成/turtle1/pose话题的x、y、theta、linear_velocity和angular_velocity的数据。

$ rostopic echo /turtle1/pose
x: 5.35244464874
y: 5.544444561
theta: 0.0
linear_velocity: 0.0
angular_velocity: 0.0
~ 省略 ~

rostopic find [类型名称]:显示使用指定类型的消息的话题

$ rostopic find turtlesim/Pose
/turtle1/pose

rostopic type [话题名称]:显示指定话题的消息类型
rostopic bw [话题名称]:显示指定话题的消息数据带宽(bandwidth)
rostopic hz [话题名称]:显示指定话题的消息数据发布周期

rostopic info [话题名称]:显示指定话题的信息
在以下示例中,用户可以看到/turtle1/pose话题使用turtlesim/Pose消息类型,发布到/turtlesim节点,并且没有实际订阅的话题。

$ rostopic info /turtle1/pose
Type: turtlesim/Pose
Publishers:
* /turtlesim (http://192.168.1.100:42443/)
Subscribers: None

rostopic pub [话题名称] [消息类型] [参数]:使用指定的话题名称发布消息
以下是使用/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]’
publishing and latching message for 3.0 seconds

每个选项的描述如下。

■■ -1只发布一次消息(实际上只运行一次,但会像以前的结果一样运行3秒)。
■■ /turtle1/cmd_vel 指定的话题名称
■■ geometry_msgs/Twist 要发布的消息类型名称
■■ -- ‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, 1.8]’ 在x轴坐标上以每秒2.0 m的速度移动,以z轴为中心,每秒旋转
1.8rad

2、rosnode:ROS节点

rosnode list 查看活动的节点列表
rosnode ping [节点名称] 与指定的节点进行连接测试
rosnode info [节点名称] 查看指定节点的信息
rosnode machine [PC名称或IP] 查看该PC中运行的节点列表
rosnode kill [节点名称] 停止指定节点的运行
rosnode cleanup 删除失连节点的注册信息

rosnode list:列出正在运行中的所有节点
这是列出连接到roscore的所有节点的命令。如果已经运行了roscore和之前准备好的节点(turtlesim_node,turtle_teleop_key),则可以看到终端中列出了用于在roscore进行日志记录的rosout,以及teleop_turtle和turtlesim节点。

$ rosnode list
/rosout
/teleop_turtle
/turtlesim

中运行的节点是turtlesim_node和turtle_teleop_key。rosnode list列表中有teleop_turtle和turtlesim的原因是运行的节点名称与实际节点名称不同。例如,turtle_teleop_key节点在源文件中设置为“ros :: ini(t argc,argv,“teleop_turtle”);”。
rosnode ping [节点名称]:与指定的节点进行连接测试
以下是测试turtlesim节点是否确实连接到当前使用的计算机。如果已连接,它将从节点收到XMLRPC响应,如下所示。

$ rosnode ping /turtlesim
rosnode: node is [/turtlesim]
pinging /turtlesim with a timeout of 3.0s
xmlrpc reply from http://192.168.1.100:45470/ time=0.377178ms

如果在该节点运行出现问题或通信中断,则显示以下错误消息。

ERROR: connection refused to [http://192.168.1.100:55996/]

rosnode info [节点名称]:检查指定节点的信息
使用rosnode info命令可以查看指定节点的信息。基本上,用户可以检查发布者、订阅者和服务等。此外,还可以检查关于节点运行URI和话题输入/输出的信息。由于会显示大量信息,因此省略了内容。

$ rosnode info /turtlesim
------------------------------------------------
Node [/turtlesim] Publications:
* /turtle1/color_sensor [turtlesim/Color]
~ 省略 ~

rosnode机器[PC名称或IP]:查看此PC上运行的所有节点
可以看到指定设备(PC或终端)上运行的所有节点。

$ rosnode machine 192.168.1.100
/rosout
/teleop_turtle
/turtlesim

rosnode kill [节点名称]:终止指定节点的运行
这是一个终止正在运行的节点的命令。您可以在运行节点的终端窗口中使用[Ctrl+c]直接终止节点,但也可以指定要结束的的节点,如下所示。

$ rosnode kill /turtlesim
killing /turtlesim
killed

如果使用该命令终止了节点,则会在运行该节点的终端窗口上显示如下警告消息,并关闭该节点。

[WARN] [1499668430.215002371]: Shutdown request received.
[WARN] [1499668430.215031074]: Reason given for shutdown: [user request]

rosnode cleanup:删除无法验证连接信息的虚拟节点的注册信息
删除连接信息未被确认的虚拟节点的注册信息。当节点由于意外事件而异常终止时,该命令将从节点目录中删除连接中断的节点。这个命令很少使用,但是它非常有用,因为用户不需要重新运行roscore。

$ rosnode cleanup

3、rosclean:检查及删除ROS日志

rosclean [选项]

该命令检查或删除ROS日志文件。在运行roscore时,对所有节点的记录都会写入日志文件,随着时间的推移,需要定期使用rosclean命令删除这些记录。以下是检查日志使用情况的示例。

$ rosclean check
320K ROS node logs → 意味着ROS日志一共占320KB

当运行roscore时,如果显示以下警告信息,则意味着日志文件超过1GB,如果用户觉得会让系统不堪重负,请使用rosclean命令将其删除。

WARNING: disk usage in log directory [/xxx/.ros/log] is over 1GB.

以下是删除ROS日志存储库(笔者是/home/rt/.ros/log)的所有日志的示例。如果要删除它,请按y按钮将其删除。

$ rosclean purge
Purging ROS node logs.
PLEASE BE CAREFUL TO VERIFY THE COMMAND BELOW!
Okay to perform:
rm -rf /home/pyo/.ros/log
(y/n)?

你可能感兴趣的:(ROS)