系列文章目录
系列知识点参考赵虚左老师的课程进行总结
第一章:ROS_入门了解
前言
入门了解主要以:ROS的起源、文件结构、使用方法为主,使其对ROS开发有个大致了解
一、ROS是什么?
ROS全称Robot Operating System(机器人操作系统)
= 通信机制 + 开发工具 + 功能包 + 生态系统
具体来说:
通信机制:信息传输的原理,即控制机器人之间的信息如何传输,是ROS开发的基础。其最后通信落脚点是:Node——节点上。
开发工具:ROS也提供一些软件进行仿真开发。
功能包: 即ROS是一个开源平台,大家将一些功能封装成为模块,就是功能包,使用ROS开发即是调用功能包下面的节点进行组装开发。
生态系统:提供开源生态平台,给大家进行交流以及分享。
二、ROS的文件系统
ROS开发环境是在工作空间下,以节点为基础的开发方式.具体流程如下
1.创建工作空间并初始化
mkdir -p 自定义空间名称/src
cd 自定义空间名称
catkin_make
2.进入 src 创建 ros 包并添加依赖
cd src
catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs
3.进入 ros 包添加 scripts 目录并编辑 python 文件
cd ros包
mkdir scripts
4.为 python 文件添加可执行权限
chmod +x 自定义文件名.py
5.编辑 ros 包下的 CamkeList.txt 文件
catkin_install_python(PROGRAMS scripts/自定义文件名.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
6.进入工作空间目录并编译
cd 自定义空间名称
catkin_make
7.进入工作空间目录并执行
roscore
cd 工作空间
source ./devel/setup.bash
rosrun 包名 自定义文件名.py
最后得到如下图这样类似的目录结构:
WorkSpace — 自定义的工作空间
|--- build:编译空间,用于存放CMake和catkin的缓存信息、配置信息和其他中间文件。
|--- devel:开发空间,用于存放编译后生成的目标文件,包括头文件、动态&静态链接库、可执行文件等。
|--- src: 源码
|-- package:功能包(ROS基本单元)包含多个节点、库与配置文件,包名所有字母小写,只能由字母、数字与下划线组成
|-- CMakeLists.txt 配置编译规则,比如源文件、依赖项、目标文件
|-- package.xml 包信息,比如:包名、版本、作者、依赖项...(以前版本是 manifest.xml)
|-- scripts 存储python文件
|-- src 存储C++源文件
|-- include 头文件
|-- msg 消息通信格式文件
|-- srv 服务通信格式文件
|-- action 动作格式文件
|-- launch 可一次性运行多个节点
|-- config 配置信息
|-- CMakeLists.txt: 编译的基本配置
注意:
区分:功能包、可执行文件、节点
通信方式是以节点为基础单元进行通信的,节点是可执行文件生成的,可执行文件在功能包内。
总结
使用ROS进行开发前,首先对其工作环境,文件目录有初步了解,学会识别什么是功能包、什么是工作空间等