ROS学习笔记_01:工作空间及功能包

1. ROS安装:

每个ROS版本对应一个Ubuntu版本

UBUNTUROSEnd of time
14.04 LTSindigo IglooApril,2019
16.04 LTSKinetic KameApril,2021
18.04 LTSMelodic MoreniaApril,2023
20.04 LTSNoetic Ninjemys
(Recommended)
April,2025

下一个ROS长期支持版本Humble Hawksbill将于2022年5月发布,对应Ubuntu 22.04 LTS。
官网:https://www.ros.org/

2. ROS构架:

ROS可以看作是一种中间件,沟通代码和真正的操作系统(如Linux)。
ROS由四部分组成:框架+工具+功能+社区

ROS中把进程或可执行文件称为节点(Node),如上图所示,有5个Node,通过节点管理器(master)进行通信。

3. ROS的工程结构:

一个典型的ROS工程结构如下图,包含 catkin workspace (Catkin 工作空间)package (功能包)
在这里插入图片描述
1. Catkin 工作空间

Catkin是ROS定制的编译构建系统,是对CMake的扩展,负责组织和管理功能包的文件夹,以catkin工具编译。在这里插入图片描述
目标文件包含:生成的头文件、动态链接库、静态链接库、可执行文件

其中,src是写代码的地方,是由我们自己创建的,可以放多个package,没有创建package前是空的。 在这里插入图片描述
2. package(功能包)

package(功能包) 是ROS的基本组织形式,也是Catkin的基本编译单元。一个package可以包含多个Node(节点)。Package的完整结构如下:
在这里插入图片描述

  • CMakeLists.txt(必须): 规定Catkin的编译规则

  • package.xml(必须): 自我描述,定义package的属性信息,如包名、版本、作者等。一般只需要改<build_depend>和<run_depend>就可以了。

  • scripts: 用于存放一些shell或python脚本

  • include: 源代码的头文件

  • src: 源代码,如cpp文件、py文件等

  • msg: 自定义消息格式,*.msg

  • srv: 自定义服务,*.srv

  • action: 自定义动作,*.action

  • config: 参数、设置文件等,如*.yaml

  • launch: 启动规则文件,*.launch,配合roslaunch命令可以一次运行多个可执行文件

3. ROS实践

1.创建工作空间

//打开终端
mkdir -p ~/catkin_ws/src  //创建~/catkin_ws/src目录
cd catkin_ws              //切换到工作空间根目录
catkin_make               //初始化工作空间

//作用:在当前bash环境下读取并执行FileName中的命令。
//这一步不要忘了,也可以添加到~/.bashrc,这样就不用每次打开都输入一遍
source ~/catkin_ws/devel/setup.bash

此时:

  • catkin_ws 目录下build、devel文件夹被创建
  • src 目录下CMakeLists.txt被创建

2.创建功能包 或 下载功能包

  • 创建功能包
cd src //切换到 src 目录下
//用法:catkin_create_pkg package depends
//例如,新建一个package叫做test_pkg,依赖roscpp、rospy、std_msgs(常用依赖)。
catkin_create_pkg test_pkg roscpp rospy std_msgs  //可按照需求加依赖

这样就会在当前路径下新建test_pkg功能包,包括:
├── CMakeLists.txt
├── include
│ └── test_pkg
├── package.xml
└── src
注:若不加依赖,则不会创建 include、src 目录
完成后,你就可以开始代码工作了

  • 代码完成后编译
cd catkin_ws              //切换到工作空间根目录
catkin_make               //编译
  • 下载功能包
    对于从Github上clone或下载下来的代码
 cd ~/catkin_ws/src
git clone https://github.com/DroidAITech/ROS-Academy-for-Beginners.git
cd ~/catkin_ws
// 安装工作空间下所有软件包的依赖项,kinetic要按你的ROS版本修改
// 可能报错,自行百度
rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y 
catkin_make
source ~/catkin_ws/devel/setup.bash    //再次强调,一般添加到~/.bashrc

4. package常用命令

在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值