ROS系列:工作空间及功能包创建

2023-05-16

前言

分享一下ROS开发的基础教程,全部自己手敲,希望能帮到正在学习的你。ROS在WIKI上也有教程,个人觉得太过臃肿,可以简化点,毕竟大家都赶着投胎,哈哈哈哈哈。
一、创建工作空间
1、创建工程目录

工作空间可以简单理解为工程目录,通过mkdir创建一个工作空间文件夹,这里我们命名为my_workspace,创建后进入该目录

    ~$ mkdir my_workspace   //在系统主目录下创建名为my_workspace的文件夹
    ~$ cd my_workspace   //进入该文件夹

在系统根目录下可以看到我们新创建的文件夹

2、创建src文件夹

在my_workspace目录下,创建一个src文件夹,用于存放代码文件。创建后进入该文件夹,执行工作空间初始化。执行初始化后可以看到文件夹内,多了一个CMakeLists.txt文件。

    $ mkdir src  //在my_workspace下创建src文件夹
    $ cd src  //进入src文件夹
    $ catkin_init_workspace  //工作空间初始化

3、编译工程项目

返回my_workspace目录,注意目录路径,不是在src内,利用catkin_make指令,执行工程项目编译,编译成功后会生成build、devel目录。

    $ cd ../     //返回上级目录
    $ catkin_make   //编译工程项目

输入catkin_make指令后会自动执行一串操作,最后看到build files have been xxxx,说明编译成功了。

 my_workspace目录多了两个文件夹

 4、创建功能包及依赖库

我们重新进入src文件夹,利用catkin_create_pkg指令创建test_pkg功能包,并添加roscpp(C++)、rospy(python)、std_msgs(话题消息)依赖。

    $ cd src   //进入src文件夹
    $ catkin_create_pkg test_pkg roscpp rospy std_msgs   //创建test_pkg功能包并添加3个依赖

执行catkin_create_pkg指令成功

src目录下多了一个test_pkg文件夹

 5、重新编译及环境变量检查

返回工程目录my_workspace,重新执行catkin_make执行编译

    $ cd ..  //返回my_workspace文件夹
    $ catkin_make  //执行编译

可以看到编译过程中,添加了test_pkg功能包

然后添加环境变量,使系统找到工作空间;再执行环境变量检查。

    $ source devel/setup.bash   //添加环境变量
    $ echo $ROS_PACKAGE_PATH   //检查环境变量,不允许同名功能包在同一个目录下。
————————————————
 

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

ROS系列:工作空间及功能包创建 的相关文章

  • QT重载keyPress焦点问题

    最近项目上需要用到键盘上的快捷键 xff0c 就重载了键盘的按下事件 xff0c 以为万事大吉 实际界面上有很多控件 xff0c 导致如果鼠标点击了其中一个不能接收焦点的控件 xff0c 就不知道焦点传到了什么地方 上网查大致两种思路 xf
  • QT实现地图或图片的细节图(抓取图片的细节,放大图片)

    最近由于项目上的要求 xff0c 需要实现一个细节图 xff0c 就是一个矩形框中加载一个大图 xff0c 右下或者左下方有一个小矩形框 xff0c 可以加载全图 xff0c 并显示大矩形框中图片在全图的位置 xff0c 有点拗口 xff0
  • centos7 搭建vtk7.1.1+Qt开发环境+运行编译工程

    一 CMAKE安装 vtk必须用cmake编译 xff0c 但是 xff0c 由于高版本的cmake没有支持qt5的gui xff0c 所以选择低版本的 xff0c 但是低版本的必须得依赖于qt4 xff0c 而qt4相较于qt5 xff0
  • centos搭建vtk开发环境

    一 OpenGL3 0 vtk有个硬性要求就是OpenGL3 0及以上版本 xff0c 由于笔者此前使用的是centos7 xff0c 照着网上的教程配置OpenGL xff0c 但是之后glxinfo grep OpenGL发现openg
  • 读取ugrid格式文件

    include lt iostream gt include lt vector gt include lt string gt include lt fstream gt using namespace std int main int
  • C语言:#define详解

    define定义标识符 语法 xff1a define name stuff tips xff1a 我们在define定义标识符的时候 xff0c 不建议在后面加上 xff1b xff0c 这样很容易出问题 比如说在以下的情况中 xff1a
  • FPGA学习-UART串口发送单字节(UART时序分析+真正的FPGA设计看图写代码)

    首先看UART发送时序图 xff1a 要发送一个完整字节 xff0c 需要 1位起始位 43 8位数据位 43 1位停止位 xff0c 图上的第11位 xff0c 是确认一个字节发送完的一位 重点是每一位之间的发送时间需要保持一致 xff0
  • STM32串口2初始化

    在STM32提供的官方库里只有串口一的初始化代码 xff0c 但当你需要用到两个以上的串口 xff0c 就得自己写相应的代码 xff0c 下面是串口2的 xff0c 其他的串口也差不多 usart2 c include 34 sys h 3
  • VINS-Fusion跑kitti stereo及stereo+GPS数据

    Stereo source vfusion devel setup bash roslaunch vins vins rviz launch source vfusion devel setup bash rosrun loop fusio
  • vue 配置代理,简单解决跨域问题

    开发环境下 xff0c 借助vue cli简单解决跨域问题 配置方式一 xff1a 在vue config js文件中添加以下代码 xff1a devServer proxy 39 被代理的基础路径 39 这种方式只能配置一个代理 xff0
  • Wireshark网络抓包疯狂聊天程序

    文章目录 一 疯狂聊天环境配置二 使用wireshark进行抓包三 分析抓包四 参考文献 一 疯狂聊天环境配置 下载好疯狂聊天软件后 xff0c 打开计算机管理 xff0c 设备管理器 网络适配器中需要禁用这几项 xff0c 否则无法双向通
  • 游戏客户端编程

    文章目录 一 代码框架二 新建项目三 演示效果 一 代码框架 本次实验使用的网游客户端框架来自课堂老师的资料 链接 xff1a https pan baidu com s 1WSkrRTFPuN1N34BsySkeaQ 提取码 xff1a
  • 数学图形与机器视觉基础(1)

    文章目录 一 图片处理及分析1 修改图片位数和颜色并进行分析2 修改图片格式并进行分析 二 用奇异值分解 xff08 SVD xff09 对一张图片进行特征值提取 xff08 降维 xff09 处理三 采用图像的开闭运算 腐蚀 膨胀 xff
  • STM32之串口通信

    文章目录 一 串口通信与USART二 程序编写输出Hello Windows三 GPIO波形参考链接 一 串口通信与USART 二 程序编写输出Hello Windows 串口通信 串口通信是一种设备间非常常用的串行通行方式 xff0c 其
  • 【FPGA】UART串口通信

    文章目录 一 通信方式1 串行通信2 并行通信 二 UART串口通信1 模块设计与时序图2 代码实现 三 测试结果1 仿真结果2 上板验证 一 通信方式 1 串行通信 串行通信是指利用一条传输线将数据一位位地顺序传送 xff08 也就是说串
  • 【FPGA】基于状态机实现自动售货机模拟

    文章目录 一 售货机功能二 售货机状态分析及模块划分三 代码实现四 上板验证 一 售货机功能 此自动售货机模拟基于EP4CE6F17C8开发板实现 xff0c 用按键 xff0c led灯 xff0c 数码管表示各个输入输出 功能 xff1
  • 【FPGA】中值滤波处理BMP图片

    文章目录 一 中值滤波二 BMP图片格式三 功能实现1 代码设计思路2 shift IP核3 代码实现 四 结果测试参考博客 一 中值滤波 中值滤波法是一种非线性平滑技术 xff0c 它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点
  • C++常用库

    以下是常用的 C 43 43 库的分类和列表 xff1a 1 标准库 iostream xff1a 提供输入和输出函数 xff0c 如 96 cout 96 和 96 cin 96 string xff1a 提供字符串类型和操作函数 xff
  • ideal使用maven时候发生org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException

    第一次使用maven创建web项目 xff0c 在访问servlet时发生错误 原因是maven默认是用的是tomcat6而项目的jdk为1 8 xff0c 二者并不支持 所以需要将maven的tomcat版本换为tomcat7或更高 在项
  • vue 项目 axios 响应拦截器 统一判断401 (登录)过期

    背景 xff1a 为了模拟token 过期 xff0c 专门把token 设置错误 xff0c 为401 界面 把axios 官网里的 复制到拦截器里 放置到request js 里 在响应器里进行判断4 5 状态码错误 以下为代码 引入a

随机推荐

  • 异常和异常的处理方式

    异常 1 概述 异常是一些用来封装错误信息的对象 它由异常的类型 提示信息 报错的行号提示三部分组成 2 异常的继承结构 3 异常的处理方式 当程序中遇到了异常 通常有两种处理方式 捕获或者向上抛出 当一个方法抛出异常 调用位置可以不做处理
  • A1&AlienGo--通过realsense-viewer调用相机

    使用机器狗时 xff0c 有时需要通过NX 树莓派上的系统来查看调用相机 xff0c 可以通过realsense提供的realsense viewer来查看 但是机器狗自带的视觉程序会开机自启占用相机 xff0c 所以首先需要杀掉这个进程
  • 空管大数据分析平台——COSMOS

    产品简介 COSMOS是由ALTYS公司开发的专用于CNS ATM领域的一个灵活自适应航空大数据分析解决方案 xff0c 它将航空运输业带入了数字时代 系统利用飞机和地面CNS ATM系统以及其他航空系统生成的海量数据信息 xff0c 为用
  • 雷达采集卡/雷达信号采集单元 HPx-200

    产品简介 HPx 200是一款基于PCI的高性能雷达采集卡 雷达信号采集单元 xff0c 它可以捕获并处理一个到两个模拟或8比特的数字一次雷达视频 该卡可与板级支持库一起使用来采集基本的雷达信号 xff0c 或者与SPx程序库一起使用来满足
  • 雷达模拟器 SPx Radar Simulator

    产品简介 SPx Radar Simulator可产生模拟雷达视频数据 xff0c 还可以获得地形高程数据 xff0c 并利用这些数据计算模拟雷达回波 用户可自定义静态及动态目标 xff0c 将模拟雷达信号源置于某个静态位置或自定义运动轨迹
  • 无人机拉力测试台螺旋桨的正确安装方式

    在使用无人机拉力测试台测试螺旋桨的拉力 扭矩和效率时 xff0c 怎样正确安装螺旋桨才能得到最准确的测试结果 xff1f 下图示意了螺旋桨的正确安装方式 xff1a 这个测试台装置的背后理论 xff0c 经过实验验证由于测试台本身造成的障碍
  • 无人机设计过程中的计算和假设

    当我们想要设计一架新的无人机时 xff0c 首先要确定我们要设计一架什么样的无人机 xff0c 例如多大的起飞重量 几个旋翼 续航时间等 无人机工程过程通常作为 设计循环 运行 xff0c 指的是设计过程的循环性质 构建无人机的第一个版本依
  • 如何计算电机极数和无刷电机的Kv值?

    介绍 如果您正在制造无人机 遥控车或任何使用无刷直流 BLDC 电机的机器 xff0c 您可能会遇到电机极数和电机Kv值的概念 这两个参数对于表征您的电机和估计其性能都很有帮助 在本文中 xff0c 我们将介绍这些指标的含义 如何计算和衡量
  • 无人机拉力测试台:15kg级-Flight Stand 15

    产品简介 Flight Stand 15测试台是多年无人机动力系统开发经验和经历数千个用户使用反馈不断优化的成果 该测试台对无人机电机和螺旋桨的拉力 xff0c 扭矩 xff0c 转速 xff0c 电流 xff0c 电压 xff0c 温度
  • 教你编写Python抢购代码

    想买mate40 xff0c 但总是抢不到 xff0c 所以想试着能不能写个脚本代码 第一步 xff1a 把想要抢购的商品加进购物车 xff0c 注意 xff1a 脚本是对购物车内全部商品进行下单操作 xff0c 所以不够买的商品最好先从购
  • Linux C/C++UDP通信实现

    文章目录 一 UDP通信流程二 代码实现1 服务器2 客户端 一 UDP通信流程 二 代码实现 1 服务器 代码如下 xff08 示例 xff09 xff1a span class token macro property span cla
  • 无人机拉力测试台:75kg级-1780系列

    产品简介 1780系列测试台是专为无人机设计师的简化测试需求而设计 xff0c 同时配有易于使用的支持手动控制功能的操作软件 xff0c 并支持设计师使用定制的预编写脚本实现自动化测试 测量结果完成后可以实时保存并导出到 CSV格式文件 试
  • 无人机拉力测试台:5kg级-1580测试台

    产品简介 1580测试台对无人机动力系统的无刷电机和螺旋桨进行测试 xff0c 测量高达5kgf的拉力和2Nm的扭矩 xff0c 以及电压 xff0c 电流 xff0c 功率 xff0c 电机转速 xff0c 振动和效率 该测试台大大减少了
  • 共轴双旋翼无人机动力测试解决方案

    前言 与传统的多旋翼无人机架构相比 xff0c 共轴式多旋翼无人机具有结构紧凑 上下旋翼反转扭矩相消和良好的操控性等优势 xff0c 同时可以为整机提供更大的动力 xff0c 尤其在直升机领域 xff0c 共轴双旋翼的设计受到了越来越多军工
  • 航空数据链协议解析与仿真测试

    航空数据链概述 航空数据链通信是指飞机和地面站系统之间一种数字通信技术 该技术通过使用互连路由器和终端系统的航空电信网络 ATN xff0c 以及作为空中 地面数据链技术的VHF数字链路模式2 VDL mode 2 VDL2 来实现管制员与
  • 无人机拉力测试台研制&测试过程中的9个关键技术点

    随着近年来无人机行业的飞速迭代发展 xff0c 越来越多的相关从业人员选择使用拉力测试台来测试并优化无人机的动力系统 xff0c 本文尝试从无人机拉力测试台的研制和使用角度来阐述无人机拉力测试中的9个关键技术点 1 电磁干扰方面的考虑 测试
  • 无人机动力系统优化测试平台-15kg级-Flight Stand 15

    产品简介 通过Flight Stand 15测试台对电机和螺旋桨的拉力 xff0c 扭矩 xff0c 转速 xff0c 电流 xff0c 电压 xff0c 温度 xff0c 空速 xff0c 螺旋桨效率和电机效率的测量帮助您精准地描述和评估
  • 无人机飞行控制实验平台

    无人机在研制过程中需要不断地进行飞行测试 xff0c 而测试的过程不是万无一失的 xff0c 飞行过程中发生任何错误都有可能会导致无人机的损毁或破坏 xff0c 更严重地甚至会造成外界伤害 基于此我们推出了无人机的三旋转自由度 3 DOF
  • ADS-B教学实验方案

    ADS B教学系统是为了让学生学习ADS B原理 ADS B系统组成 ADS B信号处理技术 可以通过ADS B教学系统进一步研究分析ADS B位置的精度 准确性 稳定性 实时性 xff0c 设计基于ADS B的空中碰撞告警系统 xff0c
  • ROS系列:工作空间及功能包创建

    前言 分享一下ROS开发的基础教程 xff0c 全部自己手敲 xff0c 希望能帮到正在学习的你 ROS在WIKI上也有教程 xff0c 个人觉得太过臃肿 xff0c 可以简化点 xff0c 毕竟大家都赶着投胎 xff0c 哈哈哈哈哈 一