ROS学习--ROS工程(2)


前言


ROS空间结构


一、工作空间结构

在工作空间的目录下,可以使用`$tree`可以查看文件结构; 如果没有安装tree可以在空座空间目录下使用
$sudo apt install tree

命令来安装tree
catkin_make编译的流程是首先在src文件夹中寻找package源代码包,我们可以将多个package包放入src文件夹中,然后在build文件夹中生成catkin或者cmake中间或缓冲文件,在devel文件夹中生成编译完的目标文件。
build和devel一般是自动生成,我们一般将ROS程序或者其他源文件放入src文件夹中。
在这里插入图片描述

1.package

在ROS中只有package才能被编译,catkin_make所编译的对象也是package,在ROS中主要的两种编程语言:C++和python,他们所编写的源码需要放置在package文件夹中。
一个package可以编译出多个目标文件。

2.package中结构

package包中主要有以下文件结构
1)config:这是放功能包中的配置文件,主要由用户创建
2)include:用来放置功能包中所需要用到的配置文件,c++
3)scripts:来放置可以直接运行的python文件
4)src:放置需要编译的C++文件
5)launch:用来放置功能包的启动文件
6)msg:放置自定义消息类型
7)srv:放置自定义服务类型
8)action:自定义动作指令
9)package.xml:功能包描述文件
10)CMakeLists:放置功能包编译规则
11)models:存放机器人或者仿真场景的3D模型
12)urdf:放置机器人描述模型

一般在package中必须有CMakeLists和package.xml这两个文件。其他看情况添加。

2.1package.xml

package.xml是存放描述package的描述信息的,里面包含package名称,版本号、内容描述、编译依赖、运行依赖等信息。
package.xml是遵循xml标签文本的写法,通常包含以下标签:

标签名称作用
<package>根标记文件
<name>包名
<version>版本号
<description>内容描述
<maintainer>维护者
<license>软件许可证
<buildtool_depend>编译构建工具,一般为catkin
<depend>这是最常用的一个命令,指定依赖项为编译、导出、运行所用依赖项
<build_depend>编译依赖项
<build_export_depend>导出依赖项
<exec_depend>运行依赖项
<test_depend>测试依赖项
<doc_depend>文档依赖项

二、创建一个package

对于package的创建需要用到catkin_create_pkg的命令;
$cd ~/catkin_ws/src
$catkin_create_pkg packagename pkg_depend1 pkg_depend2 .....
//包的名字  依赖项1 依赖项2 .。。。。

2.1 package相关命令

rospack是对package管理工具

rospack命令作用
rospack help获取rospack的用法
rospack list列举出本机所有的package
rospack depend 【package】显示package的依赖包
rospack find 【package】找到某个package
rospack profile刷新所有package的位置记录
roscd作用
roscd 【package】cd到ROS package所在路线
rosls命令作用
rosls 【package】列出ROS package下的文件

rosdep是用于管理package依赖项的命令工具

rosdep命令作用
rosdep check 【package】检查package依赖是否满足
rosdep install 【package}安装package的依赖项
rosdep db生成和显示依赖数据库
rosdep init初始化/etc/ros/rosdep中的源
rosdep keys检查package依赖是否满足
rosdep update更新本地的rosdep数据库
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值