2021-07-20

2023-10-30

一个简单的ROS工程项目搭建详细过程(适合新手)

创建工作区(workspace)
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace ##在catkin_ws下的src文件夹路径下执行该语句
虽然这时候工作区是空的,但是我们依然可以进行编译:

$ cd ~/catkin_ws/
$ catkin_make ##在catkin_ws文件夹路径下执行该语句
这时候,会在当前文件夹下生成devel,build这两个子文件夹,在devel文件夹下能看到几个setup.*sh文件。

设置环境变量有两种方法:
方法1.在桌面打开一个新终端,执行下面这行语句:
$ source devel/setup.bash
执行上面的这行语句的缺点是每次在电脑桌面打开一个新终端就要重新执行“ source devel/setup.bash ”,这样就显的有点麻烦,所以平时往往会采用方法2
方法2.在桌面打开一个新终端,执行下面这行语句:
$ echo “source ~/catkin_ws/devel/setup.bash” >> ~/.bashrc
可以执行 gedit ~/.bashrc命令来查看最后一行是否为下图这样的形式
在这里插入图片描述
创建一个ROS功能包(pachage)
切换到工作区:

$ cd ~/catkin_ws/src

创建一个名叫first_pkg的工程包,并依赖于roscpp

$ catkin_create_pkg first_pkg roscpp

这个时候src目录先就会出现一个叫做first_pkg的文件夹,这就是我们的功能包目录。
在这里插入图片描述

这个src文件夹就是我们放源文件的地方,现在我在src文件夹下新建一个空白文档,命名为hello.cpp,即在里面建立一个hello.cpp的源文件,
在这里插入图片描述

hello.cpp内容如下:
#include <ros/ros.h>

int main(int argc,char ** argv){
ros::init(argc,argv,“hello”);
ros::NodeHandle nh;
ROS_INFO_STREAM(“hello,ROS!”);
}

在first_pkg文件夹里面的src文件夹中打开一个新终端执行 ls命令,

此时将src里面的文件名全不显示出来,这里面只有hello.cpp一个文件,所以只显示这个文件,当显示的这个文件名为下图的白色时,说明该文件没有可执行授权,需要进行授权
在这里插入图片描述
执行 $ chmod +x hello.cpp 命令
再执行ls时显示为上图的绿色,

修改CmakeList.txt文件
注意修改的是first_pkg文件夹下的CmakeList.txt文件
只需在文件的末尾添加两句;
add_executable(hello ./src/hello.cpp)
target_link_libraries(hello ${catkin_LIBRARIES})

编译工作区
在桌面打开一个新终端执行下面语句
$ cd ~/catkin_ws
$ catkin_make

运行功能包
桌面打开一个新终端执行
$ roscore
重新打开一个新的终端执行:
$ rosrun first_pkg hello

结果显示:
[ INFO] [1626772287.181736861]: hello,ROS!

参考链接:https://blog.csdn.net/shaochuang1/article/details/98890222
参考链接:https://blog.csdn.net/sandalphon4869/article/details/102962595

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2021-07-20 的相关文章

  • Golang xml 使用

    解析和读取规则 golang对xml的解析和读取是通过stuct和refect实现的 对于struct中的tag以什么方式对应到xml的元素上 golang的文档中做了如下描述 结构体中的XMLName字段或者类型为xml Name的字段
  • Redis-stack 初体验

    一 安装方式 二 Docker安装流程 1 选择镜像 获取镜像 2 启动容器 一 安装方式 通过源码安装redis stack 通过docker安装redis stack 在Linux上安装redis stack 在MasOS上安装redi
  • 常用的台湾繁体字字体(轉)

    台灣繁體字常用的字體有 細明體 新細明體 標楷體 宋體 新宋體 仿宋體 最常用的是細明體和標楷體 其實 這些字體除前三者在中國不常使用外 其他的在中國也使用 字庫 http www font net cn 转载于 https www cnb
  • STM32中 嘀嗒定时器中 SysTick_CTRL_ENABLE的含义说明

    1 使能滴答定时器 SysTick gt CTRL SysTick CTRL ENABLE Msk 关闭滴答定时器 SysTick gt CTRL SysTick CTRL ENABLE Msk 2 宏定义的说明 define SysTic
  • 记忆网络之Dynamic Memory Networks模型介绍及代码实现

    记忆网络之Dynamic Memory Networks 今天我们要介绍的论文是 Ask Me Anything Dynamic Memory Networks for Natural Language Processing 这篇论文发表于
  • keil5报错解决方法

    include
  • MyEclipse的安装和使用

    目录 1 编写第一个Java程序 1 创建Java源程序 2 编译并运行 HelloWorld java 文件 1 1 4 Java跨平台原理 1 2 1 MyEclipse的安装和使用 1 下载MyEclipse软件 2 安装 破解MyE
  • python异常处理、爬虫介绍、模块(module)的导入及爬虫准备工作

    先看后赞 养成习惯 点赞收藏 人生辉煌 目录 1 错误与异常 1 1异常简介 1 2 作业 2 python爬虫 2 1 任务介绍 2 2 爬虫初始 2 3 基本流程 2 4 编码规范 2 5 引入模块 1 错误与异常 1 1异常简介 看如
  • PhpStorm 2020 JetBrains出品的高效智能PHP编程IDE

    PhpStorm深刻 理解您的代码 主流框架支持 PhpStorm 完美支持 Symfony Laravel Drupal WordPress Zend Framework Magento Joomla CakePHP Yii 等各种主流框
  • 用 nebula_dart_gdbc 在移动设备玩图数据库,泰酷辣!

    nebula dart gdbc 是访问 NebulaGraph 的 Dart 语言客户端 在 dart gdbc 的规范下进行开发 dart gdbc 是一套使用 Dart 语言定义的图数据库标准数据接口 整体思路参考了 JDBC 的规范
  • 【白水】对于markdown笔记与资料管理的思考与优化尝试【持续更新】

    关键词 markdown 笔记 文献管理 流程图 思路 爬虫 前言 读书笔记千万种 各大笔记思路几乎都是相似的 怎么才能用利用各种markdown编辑器 加上python的一些基础的代码逻辑完成文献管理 尽量高效快捷的完成 读书笔记流程 关
  • Qt5学习笔记基础篇(3)Qt中的字符串操作

    Qt中的字符串操作 3 1 概述 对于一个应用程序来说 文本操作几乎是无处不在的 无论是窗体应用还是控制台应用都难免要做诸如显示 输入 处理文本之类的操作 因此字符串作为文本的载体也就必不可少 大多数编程语言都直接或者间接的提供了字符串类型
  • 自定义Kettle数据库插件

    项目需要实现使用Kettle向神通数据库中写入数据 Kettle官方标准的数据库插件里面并没有对神通数据库的支持 因此需要自己写一个数据库插件 下面我们开始写一个数据库插件 1 在eclipse中创建一个maven项目 然后修改pom xm
  • 数据库-数据库安全性

    这篇博客内容有些琐碎繁杂 我整理的时候有很多上课时老师没有讲的 但我自己在看的时候看了看 感觉有必要再整理一下 跟考试等无关 就是多了解下关于数据库的 所以后面的理论性东西很多 大家看的时候根据目录看下有没有需要的 这篇实在有点多 我都写炸
  • 【读书笔记】周志华 机器学习 第二章 模型评估和选择

    第二章 模型评估和选择 1 欠拟合和过拟合 偏差和方差 1 1 欠拟合和过拟合 1 2 偏差和方差 2 评估方法 性能度量 2 1 评估方法 2 1 1 留出法 2 2 2 交叉验证法 2 2 3 自助法 2 2 性能度量 2 2 1 错误
  • linux内核参数优化

    linux内核参数查看与修改 Linux在系统运行时可以修改内核参数 proc sys或 etc sysctl conf 而无需重新引导系统 这个功能是通过 proc虚拟文件系统实现的 在 proc sys目录下存放着大多数的内核参数 并且
  • 【思考】java中xml文件得到的sql查询字段是如何与对象类中的属性字段对应的?有顺序要求吗?

    在Java中可以使用XML文件来配置数据库查询语句以及将查询结果映射到Java对象 通常 这样的任务可以使用框架如MyBatis或Hibernate来完成 以下是一个示例 演示如何使用MyBatis进行这样的操作 首先 需要创建一个XML文
  • Python变量和数据类型,类型转换

    a 变量的定义 把数据分别用一个简单的名字代表 方便在接下来的程序中引用 变量就是代表某个数据 值 的名称 变量就是用来存储数据的 将不同的数据类型存储到内存 b 变量的赋值 变量名 初始值 初始值 为了确定变量的类型 name Heygo
  • [PTA]:R7-6 队列操作 思路分享 [数据结构] [队列及其链式存储] [c++]

    目录 一 队列以及其链式存储的介绍 二 题目复现及分析 三 代码展示 c 一 队列以及其链式存储的介绍 1 队列 属于线性表的一种 它的特殊点在于具有先进先出的特点 只允许在表头删除元素 表尾进行插入元素 同样的 它也有两种存储方式 顺序存

随机推荐

  • JavaWeb_JSP

    目录 一 概述 二 入门 1 创建一个maven的web项目 2 搭建环境 3 创建jsp页面 4 编写代码 5 测试 三 JSP原理 四 JSP脚本 五 JSP缺点 六 EL表达式 1 概述 2 代码演示 3 域对象 七 JSTL标签 1
  • Maven仓库官网网址

    https mvnrepository com artifact commons httpclient commons httpclient 3 1 假如遇到缺少什么依赖的可以去这里面查找添加 请不要吝啬你发财的小手 点赞收藏评论 谢谢
  • mybatis json字段处理

    前言 最近遇到了使用mysql的json类型字段的解析问题 之前的开发的时候 刚开始用的就是mybatis 为了解决json字段的问题 有的同事是把json字段映射成Java里的String 手动在业务代码里转化 也有同事尝试用typeHa
  • 2023华为OD机试真题【猜字谜/排序】

    题目描述 小干设计了一人简单的清字谈游戏 游戏的迷面是一人错误的单词 比如nwes 玩家需要猜出谈底库中正确的单词 猜中的要求如 对于某个谜面和谜底单词 满足下面任一条件都表示猜中 1 变换顺序以后一样的 比如通过变换w和e的顺序 nwes
  • 跨时空的相遇~为她制作一个专属的QQ空间相册(附源代码)

    目录 一 实现的功能和展示 二 前期准备 三 源代码 QQ空间 html QQ空间 css QQ空间 js 一 实现的功能和展示 点击某个图片的时候 图片放大 实现图片的切换 当我们在第一张继续往左边点击的时候就会提示你这已经是第一张了 最
  • .Net Core WebApi + AutoFac简单使用

    安装AutoFac 在Nuget中引入AutoFac Autofac Extensions DependencyInjection Autofac的扩展 配置Program cs 实例化AutoFac工厂实例 替换默认容器工厂 UseSer
  • 从零开始搭建React+TypeScript项目

    主要的依赖 React16 12 TypeScript3 tslint5 react router5 react redux7 axios0 19 element ui1 4 SCSS4 13 环境版本要求 Node gt 8 10 npm
  • 零死角玩转stm32-高级篇之SDIO(4bit + DMA、支持SDHC、带协议分析)

    原文 http www it165 net embed html 201307 2324 html 十分不错的文章 简明扼要地介绍了如何初始化SDIO card和读写block 值得收藏和学习 实验描述 MicroSD卡 SDIO模式 测试
  • Spring Boot中Elasticsearch的连接配置、原理与使用

    Spring Boot中Elasticsearch的连接配置 原理与使用 引言 Elasticsearch是一种开源的分布式搜索和数据分析引擎 它可用于全文搜索 结构化搜索 分析等应用场景 在Spring Boot中 我们可以通过Elast
  • Android平台GB28181历史视音频文件检索规范探讨及技术实现

    技术背景 我们在做Android平台GB28181设备接入侧模块的时候 特别是执法记录仪或类似场景 系统除了对常规的录像有要求 还需要能和GB28181平台侧交互 比如实现设备侧视音频文件检索 下载或回放 本文假定记录仪或相关设备已经完成录
  • SpringBoot Jackson序列化JS精度丢失的解决方法分享

    转自 SpringBoot Jackson序列化JS精度丢失的解决方法分享 下文笔者讲述SpringBoot中JS精度丢失的解决方法分享 如下所示 问题出现的原因 例 数据库中使用bigint Java中使用Long 前端则出现JS精度丢失
  • 在配置包自动扫描后报错,错误提示为不能读Component。org.springframework.beans.factory.BeanDefinitionStoreException: Failed

    在配置包自动扫描后报错 错误提示为不能读Component org springframework beans factory BeanDefinitionStoreException Failed to read candidate co
  • 【VS】VSCode设置中英文模式

    Vscode是一款开源的跨平台编辑器 默认情况下 vscode使用的语言为英文 us 如何将其显示语言修改成中文 使用快捷键组合 Ctrl Shift p 在搜索框中输入 configure display language 点击确定后 修
  • 【C】时间复杂度和空间复杂度(详解,例题,OJ试题)

    前言 有了C语言的基础知识 但对于一个代码我们可以用算法和数据结构优化 如何优化我们后续再聊 本章我们需要学习衡量优化的标准是什么 我们知道 对于一个程序 衡量其好坏主要有他运行的时间和占用的空间两部分 下面我们来仔细的讨论一下 目录 1
  • C++中函数调用时的三种参数传递方式详解

    原文地址 http blog csdn net cocohufei article details 6143476 http blog chinaunix net uid 21411227 id 1826834 html 在C 中 参数传递
  • 深、浅色主题,PowerShell元支持,ARM升级,Python 3 升级,这样的Kali你会升级吗?

    号称黑客专用的Linux系统 Kali Linux迎来了 2020 2版本 的更新 虽然更新不多 但也确定解决了不少问题 值得一看 其主要的更新内容如下 KDE 桌面和登录界面的更新 PowerShell的支持 ARM 平台的升级 修改镜像
  • DBeaver导数据抛错 Java heap space

    从表中导出数据时报错 原因 DBeaver内存设置过小 需要调整 找到配置文件 安装目录 gt dbeaver init Xms为最小内存 默认 64M Xmx为最大内存 默认 1024M 调大此值即可 如10240M
  • 通讯软件016——分分钟学会Kepware OPC UA Client配置

    本文介绍如何配置Kepware OPC UA Client 通过本文可以对OPC UA的基本概念有所了解 掌握OPC UA的本质 相关软件请登录网信智汇 wangxinzhihui com 1 创建OPC UA 连接 1 右键 连接性 选择
  • OpenFeign 万字教程详解

    目录 一 概述 1 1 OpenFeign是什么 1 2 OpenFeign能干什么 1 3 OpenFeign和Feign的区别 1 4 FeignClient 二 OpenFeign使用 2 1 OpenFeign 常规远程调用 2 2
  • 2021-07-20

    一个简单的ROS工程项目搭建详细过程 适合新手 创建工作区 workspace mkdir p catkin ws src cd catkin ws src catkin init workspace 在catkin ws下的src文件夹路