ROS基础(2)——工作空间

一、工作空间

1、工作空间的概念

ros工作空间简单来说相当于工程或者项目,编写ros程序之前,首先需要创建ros工作空间。
在这里插入图片描述

2、创建工作空间

mkdir -p ~/wheeltec/src    #创建文件夹
cd ~/wheeltec/src             #进入文件夹
catkin_init_workspace      #初始化工作空间

在这里插入图片描述
第三步如果不成功可能是没有安装插件
在这里插入图片描述
输入:

sudo apt install catkin

再执行第三步,完成
在这里插入图片描述

3、编译工作空间

cd ..     #返回上一级路径
catkin_make  # 编译工作空间

出现问题
编译时我出现了:cmake error incmakelists.txt:no cmake_cxx_compiler could be found
在这里插入图片描述
解决办法:

sudo apt-get update
sudo apt-get install -y build-essential

然后再编译即可成功

如果只编译其中的功能包而不是全部:

catkin_make -DCATKIN_WHITELIST_PACKAGES="package_name"   #编译单独功能包

如果运行完上面单独的功能包,在运行catkin_make就还是在运行上面的包,此时解除就需要输入:

catkin_make -DCATKIN_WHITELIST_PACKAGES=""  

此外还有自定义编译线程

catkin_make -j -l 

4、设置环境变量

添加环境变量

source devel/setup.bash    
cd ~ 
nano .bashrc 
source ..../devel/setup.bash 
source .bashrc

查看ROS的环境变量

echo $ROS_PACKAGE_PATH   

在这里插入图片描述

二、功能包

1、功能包的概念

在这里插入图片描述

2、功能包的内容

include:           .h文件
src:                .cpp文件
launch:             launch文件
urdf :              .urdf文件
config:             参数文件,yaml,srv,msg,action
scripts:            可执行脚本文件(Python)
CMakeLists.txt :    定义编译的规则
package.xml :       定义package的属性

3、创建功能包

catkin_create_pkg <package_name> [depend1] [depend2] [depend3] 

示例:
创建一个名为new_package的功能包,它的依赖是std_msgs还有rospy和rosapp

catkin_create_pkg new_package std_msgs rospy roscpp

在这里插入图片描述
在这里插入图片描述

4、导入功能包

详细步骤参考此文

三、CMakeLists.txt

1、CMakeLists.txt文件的作用:定义编译规则的文件

文本资料
cmakelists的wiki网址

2、 最常用的cmakelists宏

cmake_minimum_required() CMake版本
project() 项目名称
find_package() 添加依赖
catkin_package() 编译生成信息导出
add_executable() 生成可执行文件
target_link_libraries() 可执行文件链接到库

3、其他的cmakelists宏

add_message_files() 添加话题消息类型文件
add_service_files() 添加服务消息类型文件
add_action_files() 添加行为消息类型文件
generate_messages() 生成消息文件
include_directories() 添加头文件路径
add_dependencies() 添加依赖项
add_library() 生成自定义的库
install() 安装规则

四、package.xml

1、package.xml文件的作用: 功能包的描述信息

文本资料
package.xml的wiki网址

2、 必要的package.xml标签

在这里插入图片描述

3、可选的package.xml标签

指定依赖项为编译、 导出、 运行需要的依赖
<build_depend> 编译依赖项
<build_export_depend> 导出依赖项
<exec_depend> 运行依赖(旧版本是<run_depend>)
<test_depend> 测试用例依赖项
<buildtool_depend> 编译构建工具
<doc_depend> 文档依赖项

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值