在博客《复习笔记之——ROS(robot operating system)》中,已经给出了ROS文件框架及对应的一些术语的介绍,这里就不再重复了,直接介绍其他重要的
参考资料为:http://wiki.ros.org/Books/ROS_Robot_Programming_English
目录
主节点
主节点(master)负责节点到节点的连接和消息通信。roscore是它的运行命令,当运行主节点时,可以注册每个节点的名字,并根据需要获取信息。没有主节点,就不能在节点之间建立访问和消息交流(如话题和服务)。主节点使用XML远程过程调用XMLRP, XML-Remote Procedure Call)与节点进行通信。XMLRPC是一种基于HTTP的协议,主节点不与连接到主节点的节点保持连接。换句话说,节点只有在需要注册自己的信息或向其他节点发送请求信息时才能访问主节点并获取信息。通常情况下,不检查彼此的连接状态。由于这些特点,ROS可用于非常大而复杂的环境。当启动ROS时,主节点将获取用户设置的ROS_MASTER_URI变量中列出的URI地址和端口。除非另外设置,默认情况下,URI地址使用当前的本地IP,端口使用11311。
catkin
catkin是指ROS的构建系统。ROS的构建系统基本上使用CMake(Cross Platform Make),并在功能包目录中的CMakeLists.txt文件中描述构建环境。在ROS中,将CMake修改成专为ROS定制的catkin构建系统。catkin从ROS Fuerte版本开始进行alpha测试,并从Groovy版本开始核心功能包转换为catkin,且从Hydro版本开始应用于大部分功能包。catkin 构建系统让用户方便使用与ROS相关的构建、功能包管理以及功能包之间的依赖关系等。(以前是rosbuild)
roscore
roscore是运行ROS主节点的命令。也可以在另一台位于同一个网络内的计算机上运行它。但是,除了支持多roscore的某些特殊情况,roscore在一个网络中只能运行一个。运行ROS时,将使用您在ROS_MASTER_URI变量中列出的URI地址和端口。如果用户没有设置,会使用当前本地IP作为URI地址并使用端口11311。
rosrun
rosrun是ROS的基本运行命令。它用于在功能包中运行一个节点。节点使用的URI地址将存储在当前运行节点的计算机上的ROS_HOSTNAME环境变量作为URI地址,端口被设置为任意的固有值。
roslaunch
如果rosrun是执行一个节点的命令,那么roslaunch是运行多个节点的概念。该命令允许运行多个确定的节点。其他功能还包括一些专为执行具有诸多选项的节点的ROS命令,比如包括更改功能包参数或节点名称、配置节点命名空间、设置ROS_ROOT和ROS_PACKAGE_PATH以及更改环境变量等。
roslaunch使用*.launch文件来设置可执行节点,它基于可扩展标记语言(XML),并提供XML标记形式的多种选项。
状态图
上面描述的节点、话题、发布者和订阅者之间关系可以通过状态图(graph)直观地表示。它是当前正在运行的消息通信的图形表示。但不能为一次性服务创建状态图。执行它是通过运行rqt_graph功能包的rqt_graph节点完成的。有两种执行命令:rqt_graph和rosrun rqt_graph rqt_graph。
TCP/IP
传输控制协议(TCP,Transmission Control Protocol)是一种传输控制协议,通常被称为TCP/IP。从互联网协议层的角度来看,它基于IP(Internet Protocol)且使用传输控制协议TCP,以此保证数据传输,并按照发送顺序进行发送/接收。
TCPROS消息和服务中使用的基于TCP/IP的消息方式称为TCPROS,而UDPROS消息及服务中使用的基于UDP的消息方式称为UDPROS。在ROS中,常用的是TCPROS。
CMakeLists.txt
ROS 构建系统的catkin基本上使用了CMake,因此在功能包目录的CMakeLists.txt文件中描述着构建环境
package.xml
包含功能包信息的XML文件,描述功能包名称、作者、许可证和依赖包。