ROS 架构

Pursue

ROS安装目录

ROS默认安装在_/opt/ros/noetic_路径下。

bin文件夹 放置的是一些在终端可执行的命令
etc文件夹 存放ros和catkin配置文件
include文件夹 通过终端安装的功能包代码的头文件
lib文件夹 通过终端安装的一些可执行功能包的节点
share文件夹 cmake的配置文件、话题消息的具体格式、服务的接口信息等

ROS文件系统级

ROS工程文件组织方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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: 编译的基本配置

查看当前使用工作空间

1
echo $ROS_PACKAGE_PATH

显示:/opt/ros/noetic/share

创建工作空间

1
2
3
mkdir -p ~/catkin_ws/src		#在主文件夹下创建空文件夹
cd ~/catkin_ws/src #进入src文件夹
catkin_init_workspace #初始化工作空间

此时 src 文件夹下将生成一个 CMakeLists.txt 文件。

编译工作空间

1
2
cd ~/catkin_ws/							#回到工作空间,编译必须在此文件夹下
catkin_make #进行编译

把工作空间添加到ROS环境变量

1
2
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

在每次编译之后要使用source ~/catkin_ws/devel/setup.bash指令刷新 devel 目录下的setup.bash文件,将生成的文件手动刷新到系统环境中,将此指令加入~/.bashrc文件中,在终端启动时都会自动执行这个文件的命令,所以就不必在手动刷新环境。😅

创建ROS功能包

1
cd ~/catkin_ws/src

~~catkin_create_pkg test std_msgs rospy roscpp~~

使用catkin_create_pkg指令在src文件夹下创建一个名称为test的功能包,依赖于std_msgs rospy roscpp

编译ROS功能包

1
2
cd ~/catkin_ws/							#回到工作空间,编译必须在此文件夹下
catkin_make #进行编译

ROS计算图级

rqt_graph能够创建一个显示当前系统运行情况的动态图形。ROS 分布式系统中不同进程需要进行数据交互,计算图可以以点对点的网络形式表现数据交互过程。rqt_graph是rqt程序包中的一部分。

画板

ROS开源社区级

通过独立的网络社区,用户可以共享和获取知识、算法和代码。开源社区的大力支持使ROS得以快速成长。

  • 发行版(Distribution) ROS发行版是可以独立安装、带有版本号的一系列综合功能包。ROS发行版像Linux发行版一样发挥类似的作用。这使得ROS软件安装更加容易,而且能够通过一个软件集合维持一致的版本。
  • 软件库(Repository) ROS依赖于共享开源代码与软件库的网站或主机服务,在这里不同的机构能够发布和分享各自的机器人软件与程序。
  • ROS维基(ROS Wiki) ROS Wiki是用于记录有关ROS系统信息的主要论坛。任何人都可以注册账户、贡献自己的文件、提供更正或更新、编写教程以及其他行为。网址是http://wiki.ros.org/
  • Bug提交系统(Bug Ticket System) 如果你发现问题或者想提出一个新功能,ROS提供这个资源去做这些。
  • 邮件列表(Mailing list) ROS用户邮件列表是关于ROS的主要交流渠道,能够像论坛一样交流从ROS软件更新到ROS软件使用中的各种疑问或信息。网址是http://lists.ros.org/
  • ROS问答(ROS Answer) 用户可以使用这个资源去提问题。网址是https://answers.ros.org/questions/
  • 博客(Blog) 你可以看到定期更新、照片和新闻。网址是https://www.ros.org/news/,不过博客系统已经退休,ROS社区取而代之,网址是https://discourse.ros.org/。 为了便于理解,下图给出了ROS资源社区的组织形式。

几个学习网站


常用包管理指令

  1. rospack

查看某个 pkg 的地址:rospack fand [package_name]

  1. roscd

跳转到某个 pkg 路径下:roscd [package_name]

  1. rosls

列举某个 pkg 下的文件信息:rosls [package_name]

  1. rosed

编辑 pkg 中的文件:rosed [package_name] [file_name]

  1. catkin_create_pkg

创建一个 pkg:catkin_create_pkg [package_name] [deps]

  1. rosdep

安装某个功能包所需依赖:rosdep install [package_name]

评论