网站开发流程电话自助友链平台
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 系统) |