目前选定的ROS版本已经安装完毕,该配置的参数和环境完成了配置,Linux和ROS的命令我们也熟悉了一些,必要的概念也做了相应的理解,而工作空间也已经创建,所以是时候开始正式使用ROS了。
这一节主要说明节点的使用。节点指ROS执行任务的进程。
首先,我们要做的是打开一个命令终端:
ctrl+alt+t
输入roscore,roscore是运行其他ROS程序(例如节点)的前提。
我们可以查看一下目前都运行有哪些节点:
rosnode list
没错,目前只有一个节点处于运行状态:
/rosout
这个节点是收集和记录节点调试输出信息用的,所以它总是在运行。你如果好奇这个节点的内部信息,可以使用这个命令显示:
rosnode info /rosout
你可以看到它的发布主题和订阅主题,当然主题的消息类型你也可以看到,就在主题之后的方括号里:
Node [/rosout]
Publications:
* /rosout_agg [rosgraph_msgs/Log]
Subscriptions:
* /rosout [unknown type]
Services:
* /rosout/set_logger_level
* /rosout/get_loggers
contacting node http://machine_name:54614/ ...
Pid: 5092
它具有的服务也显示在订阅主题“Subscriptions:”位置的下方,有两个服务:
现在,如果你想看看其他节点,就不得不运行它们了,可使用命令:
rosrun
这个命令一次只能运行一个包内节点,运行格式:
rosrun package_name node_name
也就是“rosrun 包名 节点名”,例如,你运行了那个常被用于测试的小乌龟节点:
rosrun turtlesim turtlesim_node
如果输入正确,一切正常,此时会出现一个蓝色背景的小乌龟窗体:
你再使用命令:
rosnode list
会发现此时多了一个节点在运行:
/rosout
/turtlesim
当然ROS特性强大,允许我们修改节点的名称:
rosrun turtlesim turtlesim_node _name:=wugui_turtle
此时再次查看运行的节点:rosnode list,会看到节点名字已经被修改:
/rosout
/wugui_turtle
我们还可以看看它的连通性:
rosnode ping wugui_turtle
到此,节点是怎样运行和如何查看节点信息等知识技能你都get到了,接下来的任务是继续说明主题和服务等其他概念,这些概念都是以节点为基础产生的,节点才是ROS的核心,其他都是为节点服务的。所以节点你已经有所了解,其他概念也只是水到渠成了。