ROS2机器人操作系统

文章目录

  • ROS2机器人操作系统
  • 前言
  • 一、功能包是什么
  • 二、功能包的具体使用
    • 1.创建功能包
    • 2.编译功能包
    • 3.功能包的结构
      • C++功能包
      • Python功能包

前言

每个机器人可能有很多功能,比如移动控制、视觉感知、自主导航等,如果我们把这些功能的源码都放到一起当然也是可以的,但是当我们想把其中某些功能分享给别人时,就会发现代码都混合到了一起,很难拆分出来。

一、功能包是什么

举个例子,我们手上有很多红豆、绿豆、黄豆,假设都放在一个袋子里,如果只想把黄豆都拿出来,是不是得在五颜六色的豆子里一颗一颗都找出来,数量越多,你就越头疼;如果我们把不同颜色的豆子放在不同的三个袋子里,需要拿出某种豆子的时候,不就立刻可以找出来了么。

功能包就是这个原理,我们把不同功能的代码划分到不同的功能包中,尽量降低他们之间的耦合关系,当需要在ROS社区中分享给别人的时候,只需要说明这个功能包该如何使用,别人很快就可以用起来了。

所以功能包的机制,是提高ROS中软件复用率的重要方法之一。

二、功能包的具体使用

1.创建功能包

我们可以使用这个指令:

ros2 pkg create --build-type <build-type> <package_name>

ros2命令中:

**pkg:**表示功能包相关的功能;
**create:**表示创建功能包;
build-type:表示新创建的功能包是C++还是Python的,如果使用C++或者C,那这里就跟ament_cmake,如果使用Python,就跟ament_python;
**package_name:**新建功能包的名字。
比如在终端中分别创建C++和Python版本的功能包:

cd ~/dev_ws/src
ros2 pkg create --build-type ament_cmake learning_pkg_c       # C++
ros2 pkg create --build-type ament_python learning_pkg_python # Python

2.编译功能包

在创建好的功能包中,我们可以继续完成代码的编写,之后需要编译和配置环境变量,才能正常运行:

cd ~/dev_ws/src
colcon build   # 编译工作空间所有功能包
source install/local_setup.bash

3.功能包的结构

C++功能包

首先看下C++类型的功能包,其中必然存在两个文件:package.xml和CMakerLists.txt。

package.xml文件的主要内容如下,包含功能包的版权描述,和各种依赖的声明。

CMakeLists.txt文件是编译规则,C++代码需要编译才能运行,所以必须要在该文件中设置如何编译,使用CMake语法。

Python功能包

C++功能包需要将源码编译成可执行文件,但是Python语言是解析型的,不需要编译,所以会有一些不同,但也会有这两个文件:package.xml和setup.py。

package.xml文件的主要内容和C++版本功能包一样,包含功能包的版权描述,和各种依赖的声明。

setup.py文件里边也包含一些版权信息,除此之外,还有“entry_points”配置的程序入口

ROS2——功能包(六)相关推荐

  1. ROS2入门教程—创建ROS2功能包(C++版)

    ROS2入门教程-创建ROS2功能包(C++版) 1 ROS2中的功能包 2 创建功能包 3 编译功能包 4 设置环境变量 5 运行功能包 6 功能包中的内容 7 修改package.xml文件    ...

  2. 《动手学ROS2》3.5.1创建工作空间和功能包

    本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版权声明:如非允许禁止转载与商业用途. 3.4.1 创建工作空间和功能 ...

  3. 二十六、rosbag功能包

    文章目录 一.引言 二.命令行实现 2.1 启动ros相关节点,创建存储目录 2.2 开始录制 2.3 查看文件 2.4 回放文件 三.代码实现 3.1 C++实现 3.1.1 写bag 3.1.2 ...

  4. 原创 | R的基础及进阶数据可视化功能包介绍

    R 作为入门级编程语言,被经常运用在数据整理.数据可视化.以及机器学习中. 本篇文章将主要介绍在R中如何可视化数据 (基础+进阶). R绘图的原理 使用R绘图,我们需要在脑海中明确几个必要元素.首先, ...

  5. ROS 2 index翻译(七)——用Colcon编译功能包(package)

    这是一个用colcon如何创建和编译ROS工作区的简要教程.这是一个实用的教程,并非来替代核心文档. ROS 2 在Bouncy之前的发行版,使用的编译工具是ament_tools,这在ament教程 ...

  6. 蓝桥ROS机器人系统更新和功能包安装记录

    直接系统更新会有错误: ☞ ROS域名解析问题记录(蓝桥云课ros.asc) sudo apt update 使用ros.asc如下: -----BEGIN PGP PUBLIC KEY BLOCK- ...

  7. ROS Noetic入门笔记(二)ROS Noetic创建工作空间和功能包

    ROS Noetic入门笔记(一)在ubuntu20.04中安装ROS Noetic并简单测试 ROS Noetic入门笔记(二)ROS Noetic创建工作空间和功能包 ROS Noetic入门笔记 ...

  8. 机器人编程趣味实践18-他山之石(功能包)

    机器人操作系统功能包可以使用如下两种方式使用: sudo apt install xxx colcon build xxx 第一种是打包的安装文件,第二种是源代码编译. 如何自己编写功能包后续细说,本 ...

  9. ROS功能包在线把速腾聚创点云格式转为velodyne点云格式

    国外算法很多slam算法是基于velodyne_lidar开发的,对国内雷达型号不友好,在这里记录一下使用rs_to_velodyne功能包实时在线将速腾聚创点云转化为velodyne点云的过程 环境 ...

最新文章

  1. node-sass安装失败解决方法
  2. 【ios】Storyboard教程
  3. html清除溢出,深入理解CSS overflow:hidden——溢出,坍塌,清除浮动
  4. 【To Do 难点】最大搜索二叉树
  5. leetcode 221. Maximal Square 求一个数组中由1组成的最大的正方形面积 ---------- java...
  6. php薪资图表,加薪利器,老板再也不用担心生成图表图片了
  7. Lingo基础语法笔记
  8. php可以用cmd运行,用cmd运行php代码
  9. xp计算机硬盘东西不显示,XP系统中认不到移动硬盘怎么办?XP系统无法识别移动硬盘解决方法...
  10. 工业企业外购材料进项税额的会计处理
  11. matlab保存pgm图形,pgm格式文件及其在matlab中的读取存储方法(1)
  12. 关于MAC安装windows【支持老版本】 支持安装全系列windows
  13. 路由器WDS桥接教程
  14. (附源码)springboot社区养老医疗服务平台 毕业设计 041148
  15. 数据结构 —— ADT(抽象数据类型)
  16. 短网址dwz.cn批量注册
  17. APISpace 中文分词API
  18. markdown图片旋转
  19. 微信公众号前后端分离授权登录
  20. 和韩雪冬学到的网页设计点滴

热门文章

  1. 【IoT】NFC CPU 卡在实际产品中的应用
  2. iOS审核拒绝苹果官方原因详解
  3. 线性可编程电源是如何工作?设计原理是什么?
  4. 通过对射式红外传感器计次实验讲解EXTI中断
  5. ribbon源码分析之自定义配置、全局配置
  6. 来控制自己的力量和旋转
  7. c++builder 2010 [ILINK32 Error] Fatal: Unable to open file 'xxxxxx.OBJ'
  8. POI:从Excel文件中读取数据,向Excel文件中写入数据,将Excel表格中的数据插入数据库,将数据库中的数据添加到Excel表
  9. 编写一个函数,输入整数m和n,计算m的n次幂,用c语言实现
  10. 公司业务系统与呼叫中心系统的对接方式