【ROS】机械人开发三--ROS工作空间与功能包

一、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> 文档依赖项

在这里插入图片描述


到这里就结束啦!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_51447215/article/details/127872499