ros学习记录2 ros文件系统

2.ROS的工程结构/文件系统

2.1 catkin 工作空间

catkin: ROS定制的编译构建系统,是对CMake的扩展,

在工作空间组织和管理功能包的文件夹,用catkin工具来编译

查看工作空间

printenv | grep ROS

有时候会用到catkin命令,使用命令行安装:

sudo apt install python-catkin-tools

2.1.1 建立工作空间

$ mkdir -p tutorial_ws/src #创建catkin工作空间(名字自定义,但是要有src文件夹)

$ cd ~/catkin_ws #回到工作空间,catkin_make必须在工作空间下执行
$ catkin_make #开始编译
$ source ~/catkin_ws/devel/setup.bash #刷新坏境 !!! 要把这句话写进~/.bashrc里面

sudo gedit ~/.bashrc
source ~/.bashrc

=新的工作空间路径要添加到最后,不然会自动忽略!!!

确认环境变量添加成功:printenv | grep ROS

或者
echo $ROS_PACKAGE_PATH
上述指令完成后的文件结构:
在这里插入图片描述
我们需要写的代码都在src里面,build和devel是catkin_make自动生成的

src里面放的是packages,packag是编译的最基本单元,在编译时, catkin编译系统会递归的查找和编译 src/ 下的每一个源代码包
在这里插入图片描述

2.1.1 package(功能包)

package

  • ros软件的基本组织形式
  • catkin编译的基本单元
  • 一个package可以包含多个可执行文件(节点)

功能包的常见文件(夹)组成
在这里插入图片描述

  • src/: 存放ROS的源代码, 包括C++的源码和(.cpp)以及Python的module(.py)

  • include/: 存放C++源码对应的头文件

  • scripts/: 存放可执行脚本, 例如shell脚本(.sh)、 Python脚本(.py)

  • msg/: 存放自定义格式的消息(.msg)

  • srv/: 存放自定义格式的服务(.srv)

  • models/: 存放机器人或仿真场景的3D模型(.sda, .stl, .dae等)

  • urdf/: 存放机器人的模型描述(.urdf或.xacro)

  • launch/: 存放launch文件(.launch或.xml)
    在这里插入图片描述
    如果想要catkain编译系统识别为package,就必须包含,CMakeLists.txt和package.xml文件

  • CMakeLists.txt: 定义package的包名、 依赖、 源文件、 目标文件等编译规则, 是package
    不可少的成分

    会自动生成一个模板,照着改就行了
    在这里插入图片描述

  • package.xml: 描述package的包名、 版本号、 作者、 依赖等信息, 是package不可少的成分

  • 这个文件也是自动生成一个模板,一般只要更改<build_depend>和<run_depend>
    在这里插入图片描述

  • 代码放在哪里?

  • package里面也可以放自定义通信格式:

    • 消息msg
    • 服务srv
    • 动作action
      在这里插入图片描述
  • package里面还可以存放launch以及配置文件

    • launch文件(launch):一次性运行多个可执行文件
    • 配置文件(yaml)
      在这里插入图片描述
  • 总结
    在这里插入图片描述

  • 常用指令
    在这里插入图片描述

  • 创建功能包

    ~/catkin_ws/src下:

    catkin_create_pkg test_tutorials std_msgs rospy roscpp

  • 编译功能包:

    首先切换到自己的ROS工作空间: $ cd ~/catkin_ws
    如果你想编译整个工作空间里面的包:$ catkin_make
    如果你只想编译工作空间某一个包:$ catkin_make -DCATKIN_WHITELIST_PACKAGES= "包名"
    例如:
    $ catkin_make -DCATKIN_WHITELIST_PACKAGES="beginner_tutorials"

2.1.2 metapackage

metapackage:自身没有什么内容, 但是依赖了很多包
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值