ROS程序设计系列 - 2.ROS Package
- 1. 源由
- 2. 关键要点
- 2.1 ROS包组成
- 2.2 消息解耦
- 2.3 包版本管理
- 2.4 编译配置
- 2.5 ROS C++ Client Library
- 2.5.1 Initialization and spinning
- 2.5.2 Node handle
- 2.5.3 Logging
- 2.5.4 Subscribe and Publisher
- 2.5.5 Parameters
- 2.6 Object Oriented Programming
- 2.7 RViz
- 3. 课程视频
- 4. 补充 - Eclipse IDE
- Step 1:配置Eclipse编译环境
- Step 2:选择Workspace路径
- Step 3:导入已经存在的工程
- Step 4:建立工程Index信息
- Step 5:工程相关文件目录
1. 源由
在《ROS程序设计系列 - 1.ROS介绍》简单介绍了下ROS中间件的一些基本概念,对已有示例进行了最基本的构建和运行等基本操作。
接下来,就是如何构建一个自己的ROS包?
2. 关键要点
2.1 ROS包组成
- 配置
- 源码
include/src
- 自测试
test
- 启动脚本
launch
- 其他
CMakeLists.txt/package.xml
2.2 消息解耦
在前面介绍的时候,提及Node之间的交互采用ROS消息进行消息解耦。在ROS包在设计的时候,尽量将对外消息独立分立出来。
- 设计先行的落地操作:API接口定义
- 组件实现以及依赖应用的并行开发要求
- HLD/LLD分离解耦,快速大通顶层逻辑
2.3 包版本管理
版本管理对于软件设计来说是重中之重,更是研发节奏的体现。
关于包的顶层设计依赖关系,里程碑节点,维护人员,版本(Alpha/Beta/Debug/Release)等都需要很好的进行安排协调,其落地操作方式就是这个文件的维护。
2.4 编译配置
ROS包采用CMake进行工程管理方式,相关的编译选项、源代码文件、目标交付件名称都在这里进行定义。
2.5 ROS C++ Client Library
ROSCPP是一个基础包,完成了以下基本功能:
- Initialization and spinning
- Node handle
- Logging
- Subscribe and Publisher
- Parameters
2.5.1 Initialization and spinning
2.5.2 Node handle
2.5.3 Logging
2.5.4 Subscribe and Publisher
- Subscribe
- Publisher
2.5.5 Parameters
- ROS Parameter Server
- invoke C++ API
2.6 Object Oriented Programming
2.7 RViz
略,详见:https://wiki.ros.org/rviz
3. 课程视频
Programming for Robotics, Lecture 2 Your first ROS package
4. 补充 - Eclipse IDE
IDE环境有很多,笔者也不喜欢Eclipse,其实整个包组成知道,一个Notepad也能解决问题。
注:根据各自习惯和喜好,选择适合自己的就是好的。