《在自主无人系统俱乐部的日子》03 ROS文件系统

今天就主要讲讲文件系统的内容和一些基本操作嘤

看了我们上一讲安装,设置zsh,设置多窗口终端后,我们正式开始ROS的下水。

先来一张图镇楼吧

看起来好像很复杂,实际上也就是很多个板块。

一.文件系统和catkin_ws工作空间

工作空间很好理解啦,但是catkin是啥呢?catkin是ros定制的一个编译构建系统,实际上是Cmake的一个拓展,涉及编译原理的我不懂,也没必要再说下去了qwq。

通过以下几个命令,我们就完成了工作空间的创建:

$ mkdir -p catkin_ws/src
$ cd ~/catkin_ws/
$ catkin_make

这里我们要注意,catkin_make是一个编译命令,他必须在工作空间的根目录,也就是catkin_ws下执行。

在建立完成工作空间之后,我们通常要刷新环境变量,这样系统才知道我们的ros可执行文件在哪里

$ source ~/catkin_ws/devel/setup.bash
# 像我一样使用zsh的同学当然要改一下后缀
$ source ~/catkin_ws/devel/setup.zsh

当然是不是每次都要这样呢??

显然不是,我们可以吧ros的环境变量直接链接到程序里。具体方法下回再写。

build和devel

build中存放的是cmake&catkin缓存和中间文件,而devel则是存着一些生成目标文件,比如头文件,动态、静态的链接库,以及一些可执行文件。这些东西暂时和我们没有太多关系,他都是catkin_make自己搞定的。

 

src 存放代码的地方

我们的日常开发都只和src有关系,这就是一个存放代码的地方。src里放着一个有一个package,这是ros文件的基本单位。由于catkin是递归的查找package的,所以在src中建立一些文件夹,这样你的package也能不受影响的被编辑。

package

package是ROS文件的基本组织形式,是catkin编译的基本单元,一个package可以包含多个可执行文件(节点)。package可以类比成细胞。

那么catkin是怎么知道他是不是package的呢?其实是判断文件夹有没有两个关键文件:"CMakeList.txt" "package.xml"。前者是和编译有关的,我们了解cmakelist就能知道他的作用。

而另外一个文件"package.xml"则定义了package的各种属性,例如包名,版本号,作者,依赖项等等。

通常我们只需要负责修改一些依赖项【build_depend run_depend】来完成对package的设置。

其他文件

scripts:用于存放python文件和python的源文件
msg:包含一些通讯协议之类的
srv:包含服务
include:存放c++的头文件
src:存放c++代码
launch:存放launch文件

launch文件是ros中非常重要的一个环节,下面这篇博客可以作为入门知识补充。

Launch文件的基本内容

 

二.ROS文件系统的一些操作

#查找某个pkg的地址
$ rospack find package_name

#列出本地所有的okg
$rospack list

#列举出某个pkg路径下的信息
$ rosls package_name

#转到pkg目录
$ roscd package_name (file_name)

#创建一个pkg
catkin_create_pkg <pkg_name>[deps]

#安装某个pkg所需的依赖
$ rosdep install <package_name>

啊啊啊要开会了 先写到这里吧~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值