【ROS】机械人开发--ROS工作空间与功能包
创始人
2024-01-21 05:08:43
0

机械人开发--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  [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

必要标签:

根标签

。。。
       包名
    开源许可
 维护者
 描述
     版本号

可选标签:

        指定依赖项为编译、 导出、 运行需要的依赖
  编译依赖项
 导出依赖项
         运行依赖(旧版本是         测试用例依赖项
    编译构建工具
 文档依赖项

在这里插入图片描述


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

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...