目录
一、文件系统的命令行操作
rosbash包中包含了一些有用的bash命令,可以有效提高开发效率。以下为常用的命令:
roscd- 更改目录(以软件包,堆栈或位置名称开头)rospd- 相当于roscdrosd- 列出目录堆栈中的目录rosls- 列出ros软件包的文件rosed- 编辑包中的文件roscp- 从包中复制文件rosrun- 运行ros包中的可执行文件(重要)rospack- 获取软件包的有关信息
详细说明见help或ROS官方教程 | ROS文件系统介绍。
二、创建ROS软件包
以下内容主要参考ROS官方教程 | 创建ROS程序包 与 《机器人操作系统入门》课程讲义。
2.1、catkin软件包的组成
首先你已经根据 搭建ROS开发环境教程 创建catkin_ws工作空间。
使用catkin_create_pkg命令来创建一个新的catkin软件包:
$ cd ~/catkin_ws/src
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
安装tree并查看catkin_ws文件树结构,如下:
$ sudo apt-get install tree
$ tree -F ~/catkin_ws/
主要结构如下:
catkin_ws/
└── src/
└── beginner_tutorials/
├── CMakeLists.txt
├── include/
│ └── beginner_tutorials/
├── package.xml
└── src/
可见src文件夹下生成了beginner_tutorials软件包,其中以下2个文件为不可缺少的基本文件:
package.xml— 包含对软件包的描述信息CMakeLists.txt— 用于生成make所需要的makefile文件
一个简单的工作空间的文件结构如下:
workspace_folder/ -- WORKSPACE
└── src/ -- SOURCE SPACE
├── CMakeLists.txt -- 'Toplevel' CMake file, provided by catkin
├── package_1/
│ ├── CMakeLists.txt -- CMakeLists.txt file for package_1
│ └── package.xml -- Package manifest for package_1
...
└── package_n/
├── CMakeLists.txt -- CMakeLists.txt file for package_n
└── package.xml -- Package manifest for package_n
每个目录下只能有一个软件包,这意味着在同一个目录下不能有嵌套的或者多个软件包存在。
2.2、软件包依赖关系
上文中使用catkin_create_pkg创建了软件包beginner_tutorials,其语法为:
$ catkin_create_pkg package_name [dependencies [dependencies ...]]
其中dependencies即指定软件包package_name依赖的功能包。catkin_create_pkg 帮你完成了软件包的初始化,填充好了 CMakeLists.txt和 package.xml,并且将依赖项填进了这两个文件中。
由上文可知,创建软件包beginner_tutorials时已经指定其依赖的功能包有std_msgs、rospy、roscpp。
2.2.1、一级依赖
现在我们可以使用rospack命令工具来查看软件包beginner_tutorials的一级依赖关系,如下:
$ rospack depends1 beginner_tutorials
终端返回beginner_tutorials的一级依赖包:
roscpp
rospy
std_msgs
这些依赖关系记录在package.xml文件中,查看package.xml文件:
$ roscd beginner_tutorials
$ cat package.xml
关键内容如下:
<package>
...
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>

最低0.47元/天 解锁文章
593

被折叠的 条评论
为什么被折叠?



