一、概述
ROS执行命令管理ROS节点的运行。最重要的是,roscore
被用作节点之间的名称服务器。执行命令是rosrun
和roslaunch
。rosrun
运行一个节点,当运行多个节点或设置各种选项时使用roslaunch
。rosclean
是删除节点执行时记录的日志的命令。
命令 | 重要度 | 命令释义 | 详细说明 |
---|---|---|---|
roscore | ★★★ | ros+core | master(ROS名称服务) + rosout(日志记录) + parameter server(参数管理) |
rosrun | ★★★ | ros+run | 运行节点 |
roslaunch | ★★★ | ros+launch | 运行多个节点或设置运行选项 |
rosclean | ★★☆ | ros+clean | 检查或删除ROS日志文件 |
二、介绍
1. roscore:运行roscore
roscore
roscore
命令会运行主节点,主节点管理节点之间的消息通信中的连接信息。主节点是使用ROS时必须首先被运行的必要元素。ROS 主节点由roscore
运行命令来驱动,并作为XMLRPC
服务器运行。主节点接收多种信息的注册,如节点的名称、话题和服务名称、消息类型、URI地址和端口号,并在收到节点的请求时将此信息通知给其他节点。此外,会运行rosout
,这个命令用于记录ROS中使用的ROS标准输出日志,例如DEBUG、INFO、WARN、ERROR和FATAL
。它还运行一个管理参数的参数服务器。
当执行roscore
时,将用户设置的ROS_MASTER_URI
作为主URI
,并且驱动主节点。用户可以在~/.bashrc
设置ROS_MASTER_URI
。
从结果可以看出如下信息:日志保存在/root/.ros/log/
目录中;可以使用[Ctrl+c]
退出roscore
;roslaunch server、ROS_MASTER_URI
等信息;/rosdistro
和/rosversion
的参数服务器;/rosout
节点正在运行。
2. rosrun:运行ROS节点
rosrun [功能包名称] [节点名称]
rosrun
是执行指定的功能包中的一个节点的命令。以下例子运行turtlesim
功能包的turtlesim_node
节点。
rosrun turtlesim turtlesim_node
3. roslaunch:运行多个ROS节点
roslaunch [功能包名称] [launch文件名]
roslaunch
是运行指定功能包中的一个或多个节点或设置执行选项的命令。通过运行openni_launch
功能包,可以运行20个以上的节点和10个以上的参数服务器,如camera_nodelet_manager、depth_metric、depth_metric_rect
和depth_points
。因此,使用launch
文件启动的方式对于运行多个节点非常有用,这是ROS中常用的执行方法。
roslaunch openni_launch openni.launch
请注意,要运行此示例并获得相同的结果,必须安装相关功能包ros-kinetic-openni-launch
。如果未安装,请使用以下命令进行安装:
sudo apt-get install ros-kinetic-openni-launch
4. rosclean:检查及删除ROS日志
rosclean [选项]
该命令检查或删除ROS日志文件。在运行roscore
时,对所有节点的记录都会写入日志文件,随着时间的推移,需要定期使用rosclean
命令删除这些记录。
以下是检查日志使用情况的示例:
rosclean check
672K ROS node logs → 意味着ROS日志一共占672KB
当运行roscore
时,如果显示以下警告信息,则意味着日志文件超过1GB:
WARNING: disk usage in log directory [/xxx/.ros/log] is over 1GB.
如果用户觉得会让系统不堪重负,请使用rosclean
命令将其删除:
roslcean purge
以下是删除ROS日志存储库(本人是/root/.ros/log
)的所有日志的示例。如果要删除它,请按y
按钮将其删除: