ROS = Plumbing + Tools + Capabilities + Ecosystem
- Plumbing: 通信机制,实现ROS不同节点之间的交互
- Tools:工具软件包,ROS中的开发和调试工具
- Capabilities:机器人高层技能,ROS中某些功能的集合,比如导航
- Ecosystem:生态
系统架构
应用层 | master | Node1, Node2, ... | ||
中间层 | TCPROS | UDPROS | Other API... | Nodelet API... |
os层 | Linux... |
ROS = 应用层 + 中间层
文件系统
workspace --- 自定义的工作空间
| --- devel:开发空间,development,存放编译后生成的目标文件,包括头文件、动静态链接库,可执行文件
| --- build:编译空间,存放CMake、catkin的缓存信息、配置信息和其他中间文件
| --- src:存放功能包
| --- CMakeList.txt:功能包编译的基本信息
| --- package:功能包,名字自定义
| --- package.xml:包信息。包名、版本、作者、依赖项……
| --- scripts:doc,存储python、shell文件
| --- include:doc,存放头文件
| --- msg:doc,消息通信格式文件
| --- srv:doc,服务通信格式文件
| --- action:doc,动作格式文件
| --- launch:doc,launch文件、可用于一次性运行多个节点
| --- src:doc,存储C++文件
| --- config:配置信息
| --- CMakeList.txt:cmake规则
ROS文件系统相关命令
点击查看代码
1、增
sudo apt install xxx >> 安装ROS xxx功能包
catkin_create_pkg customizePkgName dependsPkgList >> 创建新的ROS功能包
2、删
sudo apt purge xxx >> 删除ROS xxx功能包
3、查
rospack list >> 列出所有的功能包
rospack find pkgName >> 查找名为pkgName的功能包,若存在则返回安装路径
roscd pkgName >> 进入名为pkgName的功能包目录内
rosls pkgName >> 显示名为pkgName的功能包文件列表
apt search xxx >> 搜索xxx功能包
4、改
rosed pkgName fileName >> 修改名为pkgName功能包里的名为fileName的文件
5、执行
roscore >> ROS的系统先决条件节点和程序的集合,必须先运行roscore才能使ROS节点进行通信
rosrun pkgName NodeName >> 运行pkgName功能包里的名为NodeName的节点,需先运行roscore
roslaunch pkgName customizeLaunchName.launch >> 运行pkgName功能包里的launch文件。注:当roslaunch发现没有启动roscore时会自动启动