ROS学习笔记3:ROS 的文件工程结构(2) - package

package是什么

ROS软件的基本组织形式,catkin编译的基本单元。

一个package可以包含多个可执行文件(节点)

## 如何判断一个文件夹是package

一个功能包被catkin认为一个package必须有以下两个文件:

  • CMakeList.txt
  • package.xml

package中有什么

CMakeLists.txt

规定catkin编译的规则。

例如:如何编译,要编译哪些代码,需要哪些依赖、需要生成哪些目标文件、如何链接

CMakeLists.txt中的一些语句及其功能:

语句功能
cmake_minimum_required()指定catkin的最低版本
project()指定软件包的名称
find_packege()指定编译时需要的依赖项
add_message_files()添加消息文件
add_service_files()添加服务文件
add_action_files()添加动作文件
generate_messages()生成消息、服务、动作
catkin_package()指定catkin信息给编译系统生成CMake文件
add_library()指定生成库文件
add_executable()指定生成可执行文件
target_link_libraries()指定可执行文件去链接哪些库
catkin_add_gtest()添加测试单元
install()生成可安装目标

package.xml

定义了package的属性,例如包名、版本号、作者、依赖等。

写法:

<pakage>	<!--根标签-->
	<name>				<!--包名-->
    <version>			<!--版本号-->
    <description>		<!--包描述-->
    <maintainer>		<!--维护者-->
    <license>			<!--软件许可-->
    <buildtool_depend>	<!--编译工具-->
    <build_depend>		<!--编译时的依赖-->
    <run_depend>		<!--运行时的依赖-->
</pakage>    <!--根标签-->

代码文件

来源:

  • 脚本(shell, python)
  • C++(头文件、源文件)

一般将Python和shell脚本放到‘scripts’文件夹中,把C++头文件放到‘include’文件夹中,把C++源文件放在’src‘文件夹中(’src’文件夹中还可放可以被其他包import的Python文件)。

自定义的通信格式

消息(msg)、服务(srv)、动作(action),分别放在’/msg’、’/srv’、’/action’文件夹。
在这里插入图片描述

launch以及配置文件

  • launch文件:放置在’/launch’文件夹中,实现一次运行多个可执行文件
  • 配置文件(yaml):放置在’/config’,参数设置,一般用.yaml格式

package的文件组织

package的文件组织

常用包管理指令

  • rospack

    查找某个package的地址:

    rospack find package_name
    

    列出本地所有package:

    rospack list
    
  • roscd

    跳转到某个package路径下:

    roscd package_name
    
  • rosls

    列出某个package下的文件信息

    rosls package_name
    
  • rosed

    编辑package中的文件

    rosed package_name file_name
    
  • catkin_create_pkg

    创建一个package:

    catkin_create_pkg <pkg_name> [deps]
    
  • rosdep

    安装某个package所需的依赖(通常用来安装git clone下来的package的依赖)

    rosdep install [pkg_name]
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值