ROS学习之路(一)——ROS文件系统

ROS文件系统

1. 前言

2. catkin工作空间

3. package组成

4. 常用包管理指令

5.实例

1. 前言

一个ROS工程的结构图如下所示:
ROS

2.catkin工作空间

catkin工作空间是组织和管理功能包的文件夹,以catkin工具编译。catkin是ROS定制的编译构建系统,对CMake的扩展。
catkin_make用来初始化工作空间,可以按下面代码使用:

##创建工作空间必须包含src文件夹
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_make

catkin_make 其实起到编译的作用,编译完以后一定要用source刷新环境。**(一定要用) **

source ~/catkin_ws/devel/setup.bash

catkin_make必须在工作目录里面执行其他目录会失败。
用完catkin以后文件目录如下所示:
在这里插入图片描述其中devel包含有头文件、动态链接库、静态链接库、可执行文件等。
通常开发都与src文件夹有关,有各种各样的功能包
在这里插入图片描述package是catkin编译的基本单元。

package组成

package是ROS软件的基本组织形式,catkin编译的基本单元,一个package可以包含多个可执行文件(节点)。
在这里插入图片描述
一个package至少包含CMakeLists.txt、package.xml。
CMakeLists.txt规定catkin编译的规则,例如:源文件、依赖项、目标文件。总体结构如下:

cmake_minimum_required() #CMake的版本号 
project()                #项目名称 
find_package()           #找到编译需要的其他CMake/Catkin package
catkin_python_setup()    #catkin新加宏,打开catkin的Python Module的支持
add_message_files()      #catkin新加宏,添加自定义Message/Service/Action文件
add_service_files()
add_action_files()
generate_message()       #catkin新加宏,生成不同语言版本的msg/srv/action接口
catkin_package()         #catkin新加宏,生成当前package的cmake配置,供依赖本包的其他软件包调用
add_library()            #生成库
add_executable()         #生成可执行二进制文件
add_dependencies()       #定义目标文件依赖于其他目标文件,确保其他目标已被构建
target_link_libraries()  #链接
catkin_add_gtest()       #catkin新加宏,生成测试
install()                #安装至本机

package.xml定义了package属性,例如:包名、版本作者、依赖等。结构如下:

<pacakge>           根标记文件  
<name>              包名  
<version>           版本号  
<description>       内容描述  
<maintainer>        维护者 
<license>           软件许可证  
<buildtool_depend>  编译构建工具,通常为catkin  
<build_depend>      编译依赖项,与Catkin中的  
<run_depend>        运行依赖项

通常只要改:

<buildtool_depend>  编译构建工具,通常为catkin  
<build_depend>      编译依赖项,与Catkin中的 

代码文件有:脚本(shell、python)、C++(头文件、源文件)。
通常在package下面创建scripts文件夹放入*.py、.sh,include文件夹下面放入.h,src下面放入*.cpp。
在package下面还可以放入自定义通信格式:消息(msg)、服务(srv)、动作(action)。
package下面还可以放入launch文件、yaml配置文件。
在这里插入图片描述

4. 常用包管理指令

1. rospack

查找某个pkg的地址

$ rospack find package_name

列出本地所有pkg

$ rospack list

2. roscd(常用)

跳转到某个pkg路径下

$ roscd package_name

3. rosls

列举某个pkg下的文件信息

$ rosls package_name

4. rosed

编辑pkg的文件

$ rosed package_name file_name

5. catkin_creat_pkg

创建一个pkg

$ catkin_creat_pkg <pkg_name>[deps]
##deps表示依赖

6. rosdep

安装某个pkg所需要的依赖

$ rosdep install [pkg_name]

5.实例

$ mkdir -p ~/catkin_ws/src
$ cd catkin_ws
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash
##创建pkg
$ cd src
$ catkin_create_pkg test1
#创建pkg并包含依赖项
$ catkin_create_pkg test2 roscpp rospy std_msgs nav_msgs
##从github上clone文件
$ git clone https://github.com/DroidAITech/ROS-Academy-for-Beginners
##安装所需的依赖包
$ rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y
## 定位某个包的位置
$ rospack find test2
##列举某个pkg下的文件信息
$ rosls topic_demo
##定位包里面的文件、浏览
$ rosed topic_demo CMakeLists.txt
##跳转到某个pkg路径下
$ roscd robot_sim_demo
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值