news 2026/8/7 16:37:23

《ROS1学习笔记2——创建工作空间和功能包》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《ROS1学习笔记2——创建工作空间和功能包》

文章目录

  • 1、创建工作空间
    • 1.1、创建工作空间
    • 1.2、编译工作空间
    • 1.3、设置环境变量
    • 1.4、检查环境变量
  • 2、创建功能包
    • 2.1、创建功能包
    • 2.2、编译功能包
    • 2.3、设置环境变量并检查
  • 3、功能包特殊文件
    • 3.1、CMakeLists.txt
    • 3.2、package.xml

1、创建工作空间

工作空间(workpace)是一个存放工程开发相关文件的文件夹

  • scr:代码空间
  • build:编译空间
  • devel:开发空间
  • install:安装空间在这里插入图片描述

1.1、创建工作空间

mkdir-p demo_ws/src cd demo_ws/src catkin_init_workspace

用vscode打开该工作空间,会发现多出一个makelist文件

1.2、编译工作空间

返回工作空间跟目录下,对工作空间进行编译

cd..catkin_make


此时的文件目录如下

可以看到自动生成了build和devel文件,还缺少install
catkin_make install自动生成install文件
此时文件目录如下:

1.3、设置环境变量

source devel/setup.bash

1.4、检查环境变量

echo$ROS_PACKAGE_PATH


改变环境变量的目的是:让系统能够正确找到和使用你的 ROS 工作空间中的包。
此时终端打印出了两条路径:
:后面是我原本ros的路径
:前面的路径是我改变环境变量后新增的。

2、创建功能包

catkin_creat_pkg <pakage_name>[depend1] [depend2] [depend…]
pakage_name:你功能包的名字
[depend1] [depend2] [depend…]:加上工程所需的依赖,可加可不加,此处加了之后,代码会自动在CMakeLists.txt(创建功能包自动生成的)中的查找依赖里添加进去。

2.1、创建功能包

首先进入src目录下,在此创建功能包

cd src catkin_create_pkg demo_topic_pub roscpp rospy std_msgs geometry_msgs turtlesim


创建功能包后,生成如下文件:

2.2、编译功能包

返回工作空间目录下,进行编译

cd..catkin_make

编译成功后,会显示出功能包

2.3、设置环境变量并检查

此步骤与1.3、1.4相同,此处略去。

此时前期准备工作已完成,接下来就可以在该工作空间中编写代码。

3、功能包特殊文件

功能包下包含CMakeLists.txt文件与package.xml文件

3.1、CMakeLists.txt


在该文件中:
指定了需要 CMake 3.0.2 或更高版本
定义项目名称为demo_topic_pub,
并且查找相应的依赖包,此处提前加入的包是我们在创建功能包时手动添加的依赖。

3.2、package.xml

功能包的清单文件,该文件申明了功能包的名称,版本编号,管理者,构建类型,许可证,依赖信息等。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 16:37:19

Windows 11源码编译vLLM实战指南

1. 为什么要在Windows 11上源码编译vLLM&#xff1f; 在Windows 11环境下进行vLLM的源码编译&#xff0c;可能是大多数开发者最后才会考虑的方案——毕竟官方文档主要针对Linux环境优化。但现实中有三种典型场景会迫使你走这条路&#xff1a; 企业开发环境限制 &#xff1a;某…

作者头像 李华
网站建设 2026/8/7 16:35:43

回答知识总结03

14、什么是聚簇索引和非聚簇索引聚簇索引叶子节点存放完整行数据&#xff0c;一张表只能一个&#xff1b;二级索引叶子只存主键&#xff0c;检索时常需要回表查询聚簇索引获取全部字段。15、什么是回表通过二级索引查到主键&#xff0c;再根据主键去聚簇索引查询完整数据的过程…

作者头像 李华
网站建设 2026/8/7 16:35:07

Unity AudioSource 3D音效与动态距离衰减全解析

1. 项目概述在Unity里做3D游戏&#xff0c;声音处理是个绕不开的坎。你肯定遇到过这种情况&#xff1a;一个怪物在你身后咆哮&#xff0c;听起来却像在你耳边低语&#xff1b;或者远处爆炸声的震撼力&#xff0c;和近处踩碎一片树叶的响动差不多。这背后的核心&#xff0c;就是…

作者头像 李华
网站建设 2026/8/7 16:34:13

兼职网站建设招聘信息详解:如何避坑接单与提升报价

说心里话,看到“兼职网站建设招聘信息”这几个字,我的第一反应不是兴奋,而是想给你倒杯凉茶。为什么呢?因为这几年,这行当里的水,真的深得像一口看不见底的古井。很多刚想靠这点技能补贴家用的朋友,甚至是那些半路出家、想转行 freelancing 的设计师和程序员,一头扎进去…

作者头像 李华
网站建设 2026/8/7 16:31:42

VS快捷键全解析:提升开发效率的必备技巧

1. VS快捷键全解析&#xff1a;从基础操作到高阶效率提升 作为一款功能强大的集成开发环境&#xff0c;Visual Studio&#xff08;简称VS&#xff09;的快捷键系统是其高效使用的核心。我使用VS开发已有八年时间&#xff0c;从最初的手忙脚乱到现在的行云流水&#xff0c;快捷键…

作者头像 李华
网站建设 2026/8/7 16:30:50

尿液分析:用于医学诊断和预测分析的综合尿液分析数据集

摘要&#xff1a;尿液分析数据集是一个用于医学诊断和预测分析的综合性数据集&#xff0c;包含为分析和预测泌尿系统及相关健康状况而收集的尿液分析记录。 数据集简介 数据集概述 尿液分析数据集是一个用于医学诊断和预测分析的综合性数据集&#xff0c;包含为分析和预测泌尿…

作者头像 李华