ros的自身架构包含:文件系统、计算图和开源社区。作为初学者掌握ros的文件系统的大致分布、计算图大致关系理解即可
一、文件系统
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
32WorkSpace --- 自定义的工作空间 |--- 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: 编译的基本配置
CMakelists.txt
文件CMakeLists.txt是CMake构建系统的输入,用于构建软件包。任何兼容CMake的软件包都包含一个或多个CMakeLists.txt文件,这些文件描述了如何构建代码以及将代码安装到何处。
添加依赖、使用c++/python编写需要配置,则需要使用和修改CMakeLists.txt文件。
例如添加依赖后:
复制代码
1
2
3
4
5find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs )
使用c++后需要配置:
复制代码
1
2# 声明 C++ 可执行文件 add_executable(Hello_VSCode src/Hello_VSCode.cpp)
复制代码
1
2
3
4
5
6
7
8#添加可执行文件的 cmake 目标依赖 add_dependencies(Hello_VSCode ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) ## Specify libraries to link a library or executable target against #指定库、可执行文件的链接库 target_link_libraries(Hello_VSCode ${catkin_LIBRARIES} )
使用python后修改配置:
复制代码
1
2
3
4
5#设置用于安装的可执行脚本 catkin_install_python(PROGRAMS scripts/Hi.py DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
二、计算图
ROS 分布式系统中不同进程需要进行数据交互,计算图可以以点对点的网络形式表现数据交互过程。
rqt_graph能够创建一个显示当前系统运行情况的动态图形。rqt_graph是rqt程序包中的一部分。
启动终端,键入: rqt_graph 或 rosrun rqt_graph rqt_graph,可以看到类似下图的网络拓扑图,该图可以显示不同节点之间的关系。
最后
以上就是开放大侠最近收集整理的关于ROS系统自身架构的全部内容,更多相关ROS系统自身架构内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复