catkin 工作空间 - Package 组成
Posted sch01ar
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了catkin 工作空间 - Package 组成相关的知识,希望对你有一定的参考价值。
package 是 ROS 软件的基本组织形式,ROS 就是由一个个的 package 组成的
package 是 catkin 的编译基本单元
一个 package 可以包含多个可执行文件(节点)
package 下要包含这两个文件 CMakeLists.txt、package.xml
CMakeLists.txt 规定 catkin 编译的规则,例如:源文件、依赖项、目标文件
cmake_minimum_required() # 指定 catkin 最低版本 project() # 指定软件包的名称 find_package() # 指定编译时需要的依赖项 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 的属性,例如:包名、版本号、作者、依赖等
<package> <!--根标签--> <name> <!--包名--> <version> <!--版本号--> <description> <!--包描述--> <maintainer> <!--维护者--> <license> <!--软件许可--> <buildtool_depend> <!--编译工具--> <build_depend> <!--编译时的依赖--> <run_depend> <!--运行时的依赖--> </package> <!--根标签-->
代码文件:
package:CMakeLists.txt、package.xml、script(放 shell 脚本或 python 脚本)、include(放 C 的头文件 .h)、src(放 C 的源文件.cpp,也能放 python 的源文件)
自定义通信格式:
消息(msg)、服务(srv)、动作(action)
package:CMakeLists.txt、package.xml、msg(存放 .msg 文件)、srv(存放 .srv 文件)、action(存放 .action 文件)
launch 以及配置文件:
launch文件(launch)、配置文件(yaml)
package:CMakeLists.txt、package.xml、config(.yaml)、launch(.lanuch)
常用的包管理指令:
创建一个 package:catkin_creat_pkg <pkg_name> [deps]
std_msgs 为通信的依赖,nav_msgs 为导航的依赖
查找某个 package 的地址:rospack find package_name
列出本地所有的 package:rospack list
[email protected]:~$ rospack list
跳转到某个 package 路径下:roscd package_name
列举某个 package 下的文件信息:rosls package_name
编辑 package 中的文件:rosed package_name file_name
[email protected]:~$ rosed test CMakeLists.txt
安装某个 package 所需的依赖:rosdep install [package_name]
以上是关于catkin 工作空间 - Package 组成的主要内容,如果未能解决你的问题,请参考以下文章