机械人开发三--ROS工作空间与功能包
- 一、ROS工作空间
- 1.1 概念
- 1.2 创建工作空间
- 1.3 编译工作空间
- 1.4 设置环境变量
- 1.5 添加环境变量
- 二、功能包
- 2.1 概念
- 2.2 功能包的内容
- 2.3 创建功能包
- 三、CMakeLists.txt文件
- 四、package.xml文件
一、ROS工作空间
1.1 概念
工作空间
(workspace):存放工程文件的文件夹。
具体组成为:
1.2 创建工作空间
① 创建文件夹
mkdir -p ~/catkin_ws/src
② 进入文件夹
cd ~/catkin_ws/src
③ 初始化工作空间
catkin_init_workspace
1.3 编译工作空间
④ 返回上一级
cd ..
⑤ 编译工作空间
catkin_make
1.4 设置环境变量
⑥ 设置环境变量
source devel/setup.bash
⑦ 查看ROS的环境变量
echo $ROS_PACKAGE_PATH
1.5 添加环境变量
命令行输入:
vi ~/.bashrc
最后一行添加:
source ~/ros/catkin/devel/setup.bash
根据你创建的目录路径来。
别的命令
编译单独功能包::
catkin_make -DCATKIN_WHITELIST_PACKAGES="package_name"
多线程编程:
catkin_make -j -l
多线程编程用于提高编译速度,但要根据你CPU的数量决定,超过的话会出问题
j
:多少核编程
l
:多少线程编程
例子:
二、功能包
2.1 概念
功能包(package):存放用户功能代码的文件夹。
具体如下:
2.2 功能包的内容
include
文件夹: 包含.h文件(必要)launch
文件: launch文件src
文件夹: 包含.cpp文件(必要)urdf
文件夹:.urdf文件config
这类的文件夹:包含参数文件scripts
这类的文件夹:包含可执行脚本文件(python脚本)CMakeLists.txt
文件:定义编译的规则(必要)package.xml
文件: 定义功能包(package)的属性(必要)
2.3 创建功能包
catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
使用示例:
catkin_create_pkg new_package std_msgs rospy roscpp
三、CMakeLists.txt文件
定义编译的规则
官方介绍网站:
cmakelists
常用的cmakelists宏:
- cmake_minimum_required() :CMake版本
- project() :项目名称
- find_package() :添加依赖
- catkin_package() :编译生成信息导出
- add_executable() :生成可执行文件
- target_link_libraries() :可执行文件链接到库
部分文件截图:
其他的cmakelists宏:
add_message_files() 添加话题消息类型文件
add_service_files() 添加服务消息类型文件
add_action_files() 添加行为消息类型文件
generate_messages() 生成消息文件
include_directories() 添加头文件路径
add_dependencies() 添加依赖项
add_library() 生成自定义的库
install() 安装规则
四、package.xml文件
功能包的描述信息,文件使用的是标签语言
官方介绍网站:
package.xml
必要标签:
根标签
<package format="2">
。。。
</package>
<name> 包名
<license> 开源许可
<maintainer> 维护者
<description> 描述
<version> 版本号
可选标签:
<depend> 指定依赖项为编译、 导出、 运行需要的依赖
<build_depend> 编译依赖项
<build_export_depend> 导出依赖项
<exec_depend> 运行依赖(旧版本是<run_depend>)
<test_depend> 测试用例依赖项
<buildtool_depend> 编译构建工具
<doc_depend> 文档依赖项
到这里就结束啦!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)