1.ROS文件系统的组成
ROS 文件是由
Packages
和
Manifests
(
package.xml
)组成。
Packages:功能包,是
ROS
软件中的基本单元,包含节点源码、配置文件、数据定义等。
Manifest(
package xml
):功能包的描述文件,用于定义功能包相关元信息之间的依赖关系,这些信息包括版本、维护者和许可协议等。
2.了解ROS的基本术语
下表是对 ROS 的部分基本术语的解释说明:
术语名称
|
说明
|
节点管理器
(ROSMaster
)
|
负责节点之间的连接与消息通信。
|
节点(
Node
)
|
在
ROS
中运行的最小处理单元,通常是一个可执行文件。每 个节点可使用话题或服务与其它节点进行通信。
|
消息(
Message
)
|
是
int
、
float
和
boolean
等数据类型的变量。
|
话题(
Topic
)
|
一种单向异步通信机制。通过发布消息到话题或订阅话题的 形式,可以在节点之间实现数据的传输。话题的类型由对应 消息的类型决定。
|
发布(
Publish
)
|
以与话题内容对应的消息类型发送数据。
|
发布者(
Publisher
)
|
为执行发布,发布者节点在主节点上注册自己的话题等多种信息,并向希望订阅的订阅者节点发送消息。
|
订阅(
Subscrib
)
|
以与话题内容对应的消息类型接收数据。
|
订阅者(
Subscriber
)
|
为执行订阅,订阅者节点在主节点上注册自己的话题等多种信息,并从主节点接收所有发布了此节点需订阅话题的发布者节点的信息
|
服务(
Service
)
|
一种双向同步通信机制。服务客户端请求对应于特定目的任务的服务,服务服务端进行服务响应。
|
服务服务器 (Service Server
)
|
以请求作为输入,响应作为输出的节点。
|
服务客户端
(
Service Client
)
|
以响应作为输入,请求作为输出的节点。
|
3.了解 ROS 的常用文件
下表是对 ROS 中部分常用文件的介绍说明:
术语名称
|
说明
|
urdf
文件
|
描述机器人所有元素的模型文件,包含连杆(
link
)、关节(
joint
)、 运动学参数(axis
)、动力学参数(
dynamics
)、可视化模型(
visual
) 和碰撞检测模型(collision
)。
|
srv
文件
|
存放在
srv
文件夹下,用于定义
ROS 服务消息,包含请求和响应两个部分,请求与响应之间使用符号“
---
”进行分隔。
|
msg
文件
|
存放在
msg
文件夹下,用于定义
ROS
话题消息。
|
package.xml
|
描述功能包的属性,包含功能包的名字、版本号、作者等。
|
CmakeLists.txt
|
编译配置文件,使用
Cmake
编译。
|
launch
文件
|
启动文件,包含系统性启动机器人所需的
node
和
services
。
|
4.了解常用命令
ROS 命令可以大致分为五个类型:
ROS shell
命令、
ROS
执行命令、
ROS
信息命令、ROS catkin 命令、
ROS
功能包命令。下面是部分常用的基本命令,大家可简单学习一下:
-
ROS shell 命令
命令
|
命令释义
|
详细说明
|
roscd
|
ros+cd(changes directory)
|
移动到指定的
ROS
功能包目录
|
rosls
|
ros+ls(lists files)
|
显示
ROS
功能包的文件和目录
|
rosed
|
ros+ed(editor)
|
编辑
ROS
功能包的文件
|
roscp
|
ros+cp(copies files)
|
复制
ROS
功能包的文件
|
rospd
|
ros+pushd
|
添加目录至
ROS
目录索引
|
rosd
|
ros+directory
|
显示
ROS
目录索引中的目录
|
-
ROS 执行命令
命令
|
命令释义
|
详细说明
|
roscore
|
ros+core
|
启动
ROS Master
节点管理器
|
rosrun
|
ros+run
|
启动
ROS
节点
|
roslaunch
|
ros+launch
|
启动
launch
文件
|
rosclean
|
rosclean
|
检查或删除
ROS
日志文件
|
-
ROS 信息命令
命令
|
命令释义
|
详细说明
|
rostopic
|
ros+topic
|
确认
ROS
话题信息
|
rosservice
|
ros+service
|
确认
ROS
服务信息
|
rosnode
|
ros+node
|
确认
ROS
节点信息
|
rosparam
|
ros+param(parameter)
|
确认和修改
ROS
参数信息
|
rosbag
|
ros+bag
|
记录和回放
ROS
消息
|
rosmsg
|
ros+msg
|
显示
ROS
消息类型
|
rossrv
|
ros+srv
|
显示
ROS
服务类型
|
rosversion
|
ros+version
|
显示
ROS
功能包的版本信息
|
roswtf
|
ros+wtf
|
检查
ROS
系统
|
-
ROS catkin 命令
命令
|
详细说明
|
catkin_create_pkg
|
自动生成功能包
|
catkin_make
|
基于
catkin
构建系统,构建目录中所有的功能包
|
catkin_eclipse
|
修改以
catkin
构建系统生成的功能包,使其能在
Eclipse环境中使用
|
catkin_prepare_release
|
更新由命令“
catkin_generate_changelog
”生成的CHANGELOG.rst 文件
|
catkin_generate_changelog
|
在发布时生成或更新
CHANGELOG.rst
文件
|
catkin_init_workspace
|
初始化
catkin
构建系统的工作目录
|
catkin_find
|
搜寻所有正在使用的工作目录
|
-
ROS 功能包命令
命令
|
命令释义
|
详细说明
|
rospack
|
ros+pack(age)
|
查看与
ROS
功能包相关的信息
|
rosinstall
|
ros+install
|
安装
ROS
附加功能包
|
rosdep
|
ros+dep(endencies)
|
安装指定功能包的依赖性文件
|
roslocate
|
ros+locate
|
显示
ROS
功能包相关信息
|
roscreate-pkg
|
ros+create-pkg
|
自动生成
ROS
功能包(用于旧的
rosbuild 系统)
|
rosmake
|
ros+make
|
构建
ROS
功能包(用于旧的
rosbuild
系统)
|