第 4 课 创建工作空间与功能包

文章目录

  • 第 4 课 创建工作空间与功能包
    • 1.工作环境的创建
    • 2.ROS功能包的创建

第 4 课 创建工作空间与功能包

  消息和服务的创建、发布器和订阅器的编写、服务端和客户端的编写都是基于Ros功能包进行操作的,因此在进行上述操作前,需要先创建工作空间及功能包。

1.工作环境的创建

  1. 打开命令行终端。
  2. 输入指令“mkdir -p ~/catkin_ws/src”,并按下回车,在指定目录下创建一个名为catkin_ws的工作空间。
    在这里插入图片描述
    在这里插入图片描述

2.ROS功能包的创建

  1. 输入指令“cd ~/catkin_ws/src”,并按下回车,进入catkin_ws的源文件空间(src)目录。
    在这里插入图片描述
  2. 输入指令“catkin_create_pkg beginner_hiwonder std_msgs rospy roscpp”,并按下回车,创建一个名为“beginner_hiwonder”的功能包,添加依赖关系(msgs、rospy、roscpp)。
  • catkin_create_pkg:自动生成功能包 ,catkin_create_pkg指令创建功能包,格式如下:

catkin_create_pkg 功能包名称 依赖项1 依赖项2 …
在这里插入图片描述

  • CmakeLists.txt:编译配置文件,使用 Cmake 编译。
  • package.xml:描述功能包的属性,包含功能包的名字、版本号、作者等。
  1. 输入指令“cd ~/catkin_ws”,并按下回车,返回catkin工作空间。
    在这里插入图片描述
  2. 输入指令“catkin_make”,并按下回车,完成catkin工作区中功能包的构建。
    在这里插入图片描述
  • catkin_make:基于 catkin 构建系统,构建目录中所有的功能包
    在这里插入图片描述
  1. 输入指令“echo “source ~/catkin_ws/devel/setup.bash” >> ~/.bashrc”,将catkin_ws工作空间添加到ROS环境中,即完成功能包的创建。
    在这里插入图片描述
  2. 输入指令“source ~/.bashrc”,并按下回车,即完成路径的添加。
    在这里插入图片描述
  3. 输入指令“sudo vim ~/.bashrc”,并按下回车,检验路径的添加是否完成。
    在这里插入图片描述
  4. 输入进入功能包所在目录的指令“roscd beginner_hiwonder”,并按下回车,验证功能包是否创建成功。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/621598.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

注释的魔力:HTML、JS/jQuery和CSS中的单行与多行注释

HTML注释&#xff1a; 在HTML中&#xff0c;我们使用<!--和-->来创建单行注释。例如&#xff1a; <!-- 这是单行注释 -->而多行注释也类似例如&#xff1a; <!DOCTYPE html> <html><!--这是多行注释这是多行注释这是多行注释--> </html>…

【信息论安全】:信源编码定理

一. 介绍 在点对点的通信中&#xff0c;信源编码定理&#xff08;source coding theorem&#xff09;满足可达性和可逆性。当信道是无噪声时&#xff0c;那么YX&#xff0c;这时就不需要信道编码。但是&#xff0c;信源编码依旧是有效的&#xff0c;可以提高数据传输效率&…

iOS swift UISlider改变进度条的高度和圆形滑块的大小

文章目录 1.改变进度条的高度&#xff08;亲测有效&#xff09;2.改变圆形滑块的大小&#xff08;亲测有效&#xff09; 1.改变进度条的高度&#xff08;亲测有效&#xff09; import UIKitclass CustomSlider: UISlider {// 设置轨道高度var trackHeight: CGFloat 10// 重写…

Navicat 16 for MySQL:打造高效数据库开发管理工具

随着数据的快速增长和复杂性的提升&#xff0c;数据库成为了现代应用开发中不可或缺的一部分。而在MySQL数据库领域&#xff0c;Navicat 16 for MySQL作为一款强大的数据库开发管理工具&#xff0c;正受到越来越多开发者的青睐。 Navicat 16 for MySQL拥有丰富的功能和直观的界…

Jenkins-Maven Git

整合Maven 安装GIT #更新yum sudo yum update #安装git yum install git 安装Maven插件,在插件管理中心&#xff1a; 配置仓库 配置密码认证 我们可以在这个目录下看到Jenkins 帮我们拉取了代码 /env/liyong/data/docker/jenkins_mount/workspace/maven-job 配置maven打包…

[数据结构与算法]数据结构基础、排序算法详解、算法思想详解、领域算法详解------

# 数据结构基础 学习思路 避免孤立的学习知识点&#xff0c;要关联学习。比如实际应用当中&#xff0c;我们经常使用的是查找和排序操作&#xff0c;这在我们的各种管理系统、数据库系统、操作系统等当中&#xff0c;十分常用&#xff0c;我们通过这个线索将知识点串联起来&am…

go-zero

官网地址 go-zero初探 常见问题及常用命令 1、配置go的镜像&#xff0c;存在的可以不用进行配置&#xff0c;用官方的镜像下载太慢或下载不下来 go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct 2、自动生成api后需要运行一下go mod tidy。用来加载…

启英泰伦推出「离线自然说」,离线语音交互随意说,不需记忆词条

离线语音识别是指不需要依赖网络&#xff0c;在本地设备实现语音识别的过程&#xff0c;通常以端侧AI语音芯片作为载体来进行数据的采集、计算和决策。但是语音芯片的存储空间有限&#xff0c;通过传统的语音算法技术&#xff0c;最多也只能存储数百条词条&#xff0c;导致用户…

python 入门基础 Introduction to Python Fundamentals

文章目录 注释单行注释多行注释 pass字符串格式化format%f-string(py3.6之后可用) 数据结构intstrboolfloat列表(list)字典(dict)集合枚举迭代器其他元组(tuple) 数值运算流程控制文件操作函数面向对象类方法继承与多态 对象复制上下文管理 异常模块包属性异步网络 注释 单行注…

Elasticsearch 索引文档时create、index、update的区别【学习记录】

本文基于elasticsearch7.3.0版本。 一、思维导图 elasticsearch中create、index、update都可以实现插入功能&#xff0c;但是实现原理并不相同。 二、验证index和create 由上面思维导图可以清晰的看出create、index的大致区别&#xff0c;下面我们来验证下思维导图中的场景&…

照片删除了怎么恢复回来

照片&#xff0c;对我们来说&#xff0c;这两个字眼再熟悉不过了&#xff0c;每一张照片都包含无比重要的意义&#xff0c;相信在大家的心目中&#xff0c;这些包含意义的照片都是无价的。怎样找回删除的照片&#xff1f; 既然这些照片对我们来说意义非凡&#xff0c;那如果不小…

通过 C++/WinRT 实现高级并发和异步

将工作卸载到 Windows 线程池 协同例程与任何其他函数的类似之处在于&#xff0c;调用方将会阻塞到某个函数向其返回了执行为止。 另外&#xff0c;协同例程返回的第一个机会是第一个 co_await、co_return 或 co_yield。 因此&#xff0c;在协同例程中执行受计算限制的工作之…

使用Guava Retrying优雅的实现业务异常重试

上次写过一篇如何使用spring retry来实现业务重试的文章&#xff1a;https://blog.csdn.net/Kingsea442/article/details/135341747 尽管 Spring Retry 工具能够优雅地实现重试&#xff0c;但它仍然存在两个不太友好的设计&#xff1a; 重试实体被限定为 Throwable 子类&#…

c++多久会被Python或者新语言取代?

c多久会被Python或者新语言取代&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「c的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&am…

方法重写。

altinsert 静态方法和非静态方法不一样 重写只与非静态方法有关 重载是指在一个类中定义多个同名的方法或者函数&#xff0c;但是这些方法或者函数的参数列表不同&#xff0c;即参数的类型、个数或者顺序不同。当调用这个同名方法或者函数时&#xff0c;编译器会根据实际传入的…

Elasticsearch的基本功能和使用

Elasticsearch &#xff0c;简称为 ES&#xff0c;是一款非常强大的开源的高扩展的分布式全文 检索引擎&#xff0c;可以帮助我们从海量数据中快速找到需要的内容,它可以近乎实时的 存储、检索数据.还可以可以实现日志统计、分析、系统监控等功能. 官网:https://www.elastic.c…

QT+jenkins window环境实现一键自动化构建打包签名发布

jenkins + QT 自动化构建打包 1.官网下载地址: Jenkins download and deployment,下载最新版本的安装包并安装。安装过程中,会要求你输入端口号并记住。 2.java下载地址:Java Downloads | Oracle,下载最新版本的安装包并安装。 3.浏览器输入网址:127.0.0.1: port, port为…

【Docker】镜像的构建与上传下载阿里云

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《Docker实战》。&#x1f3af;&#x1f3af; &…

C++ Primer 6.4 函数重载 知识点+练习题

C Primer 6.4 函数重载 定义重载函数重载和const形参const_cast和重载重载与作用域练习题 定义重载函数 void lookup(int a); void lookup(double b); void lookup(int a,double b); 此三个函数构成函数重载&#xff0c;具体调用时根据传入实参进行匹配void lookup(int a); bo…

【iOS】UIColor、CGColor、CIColor的区别和联系

编者在实验室小组的指导下&#xff0c;仿写了许多App&#xff0c;其中UI的颜色模仿也是令人头痛的点。设计颜色一般使用UIColor类方法直接获取颜色&#xff1a; 有时会使用 (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alph…