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

相关文章

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

SpringCloud使用Nacos 配置中心实现配置自动刷新功能使用

《SpringCloud使用Nacos配置中心实现配置自动刷新功能使用》SpringCloud项目中使用Nacos作为配置中心可以方便开发及运维人员随时查看配置信息,及配置共享,并且Nacos支持配... 目录前言一、Nacos中集中配置方式?二、使用步骤1.使用$Value 注解2.使用@Configur

MybatisX快速生成增删改查的方法示例

《MybatisX快速生成增删改查的方法示例》MybatisX是基于IDEA的MyBatis/MyBatis-Plus开发插件,本文主要介绍了MybatisX快速生成增删改查的方法示例,文中通过示例代... 目录1 安装2 基本功能2.1 XML跳转2.2 代码生成2.2.1 生成.xml中的sql语句头2

SpringBoot实现多环境配置文件切换

《SpringBoot实现多环境配置文件切换》这篇文章主要为大家详细介绍了如何使用SpringBoot实现多环境配置文件切换功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 示例代码结构2. pom文件3. application文件4. application-dev文

8种快速易用的Python Matplotlib数据可视化方法汇总(附源码)

《8种快速易用的PythonMatplotlib数据可视化方法汇总(附源码)》你是否曾经面对一堆复杂的数据,却不知道如何让它们变得直观易懂?别慌,Python的Matplotlib库是你数据可视化的... 目录引言1. 折线图(Line Plot)——趋势分析2. 柱状图(Bar Chart)——对比分析3

一文教你Java如何快速构建项目骨架

《一文教你Java如何快速构建项目骨架》在Java项目开发过程中,构建项目骨架是一项繁琐但又基础重要的工作,Java领域有许多代码生成工具可以帮助我们快速完成这一任务,下面就跟随小编一起来了解下... 目录一、代码生成工具概述常用 Java 代码生成工具简介代码生成工具的优势二、使用 MyBATis Gen

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见