ROS1快速入门学习笔记 - 04创建工作环境与功能包

2024-04-24 06:28

本文主要是介绍ROS1快速入门学习笔记 - 04创建工作环境与功能包,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、定义

  1. 工作空间(workspace)是一个存放工程开发相关文件的文件夹。
  • src:代码空间(Source Space)
  • build: 编辑空间(Build Space)
  • devel:开发空间(Development Space)
  • install:安装空间(Install Space)

二、创建工作空间

1. 创建工作空间

mkdir -p ~/catkin_ws/src
cd~/catkin_ws/src
catkin_init_workspace

 (输入catkin_init_workspace后会在src目录下生成一个CMakeLists.txt文件)

2.  编译工作空间

cd ~/catkin_ws/
catkin_make

此时会在catkin_ws下产生build、devel、src三个文件夹;

使用

catkin_make install

会产生install文件夹 

src里面存放功能包的源码;install存放最终生成的可执行文件;devel存放在开发过程中可执行文件和库;build是编译过程中一些空间文件或二进制文件

3. 设置环境变量

source devel/setup.bash

4. 检查环境变量

echo $ROS_PACKAGE_PATH

 

三、创建功能包

1.创建功能包

cd ~/catkin_ws/src
catkin_create_pkg<功能包名字>[依赖1][依赖2][依赖3]

(<>和[]不用加)

例如:(依赖是指这个功能包在编译的过程中需要依赖哪些其他别的功能包) 

catkin_create_pkg test_pkg std_msgs rospy roscpp

功能包名字和依赖分别为:<tset_pkg>[std_msgs][rospy][roscpp] (std_msgs为ros定义的标准的消息结构)

打开创建的功能包,里面存在四个文件[include]、[src]、[CMakeLists.txt]、[package.xml]

[src]用来存放功能包的代码,如cpp文件等其他代码文件

[include]用来存放c++的.h头文件

[CmakeLists.txt]和[package.xml]这两个文件是每个功能包必须存放的两个文件,这样才能标志这个文件夹是一个功能包,而不是一个普通的文件夹。

2. 编译功能包

cd ~/catkin_ws/src
catkin_make

设施环境变量 

source~/catkin_ws/devel/setup.bash

 检查环境变量(确保功能包存放在src文件下)

echo $ROS_PACKAGE_PATH

package.xml文件通过xml语言描述功能包相关的信息,功能包的依赖信息(依赖信息不存在会报错)。

CmakeLists.txt用来描述功能包的编译规则;使用Cmake的语法(基于gcc的编译器)。

同一工作空间下,不允许存在同名的功能包;不同工作空间下,允许存在同名的功能包。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

这篇关于ROS1快速入门学习笔记 - 04创建工作环境与功能包的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/930994

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Spring创建Bean的八种主要方式详解

《Spring创建Bean的八种主要方式详解》Spring(尤其是SpringBoot)提供了多种方式来让容器创建和管理Bean,@Component、@Configuration+@Bean、@En... 目录引言一、Spring 创建 Bean 的 8 种主要方式1. @Component 及其衍生注解

基于Java和FFmpeg实现视频压缩和剪辑功能

《基于Java和FFmpeg实现视频压缩和剪辑功能》在视频处理开发中,压缩和剪辑是常见的需求,本文将介绍如何使用Java结合FFmpeg实现视频压缩和剪辑功能,同时去除数据库操作,仅专注于视频处理,需... 目录引言1. 环境准备1.1 项目依赖1.2 安装 FFmpeg2. 视频压缩功能实现2.1 主要功

使用Python实现无损放大图片功能

《使用Python实现无损放大图片功能》本文介绍了如何使用Python的Pillow库进行无损图片放大,区分了JPEG和PNG格式在放大过程中的特点,并给出了示例代码,JPEG格式可能受压缩影响,需先... 目录一、什么是无损放大?二、实现方法步骤1:读取图片步骤2:无损放大图片步骤3:保存图片三、示php

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程