ROS学习笔记#基础篇#(二)——ROS文件系统与创建/编译软件包

一、文件系统的命令行操作

rosbash包中包含了一些有用的bash命令,可以有效提高开发效率。以下为常用的命令:

  • roscd - 更改目录(以软件包,堆栈或位置名称开头)
  • rospd - 相当于roscd
  • rosd - 列出目录堆栈中的目录
  • rosls - 列出ros软件包的文件
  • rosed - 编辑包中的文件
  • roscp - 从包中复制文件
  • rosrun - 运行ros包中的可执行文件(重要
  • rospack - 获取软件包的有关信息

详细说明见helpROS官方教程 | 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.txtpackage.xml,并且将依赖项填进了这两个文件中。
由上文可知,创建软件包beginner_tutorials时已经指定其依赖的功能包有std_msgsrospyroscpp

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>
  
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值